五子棋算是我学习java一个月以来第一次做的一个项目,也算是小游戏。开始觉得五子棋遥不可及,后来在老师的指导下也一步步攻克难关,做了出来。
首先是最初的界面实现。用一个再寻常不过的JFrame窗体,并常规的设置属性。
不过在勾画棋盘时,我们第一次用到了对界面的重绘。代码是public void paint (Graphics g){}这个方法是重写原来默认的JFrame自带paint方法,在此方法中用循环的方式,画出一条条线,并需要精确计算,以保证能画出15*15的棋盘。当然重绘的不仅只有棋盘而已,在后来每下一个棋子,在最小化JFrame窗体界面后又会这些下的棋子会自动消失,这时就需要我们用重绘的方法将它们一一画出来。这个代码实现就相对难一些,后面再讨论。
接下来是画棋子,这里自然免不了添加MouseListener监听器。在Released操作中,在每次释放鼠标后便要在释放的位置最近的那个点画出一个棋子。我起初觉得这是一件很困难的事,并尝试用取余的方法分了四种情况一一讨论,也实现了目标。不过,在老师的指导下,我引入了行和列的关系,巧妙的给坐标加上20以后不用取余,得到我需要的行数和列数,进而画出想要的位置的棋子。而引入行数和列数,自然需要构建对接下来的事件很有必要的数组。因为棋盘和行列之分。所以只要构建两个变量相组合便能方便地记录棋盘上的每一个位置,而再没有比二维数组更有效的方式。
有了数组,除了实现画棋子,在前面提到了重绘方法上,也变得容易了,只要把画的棋子所对应的数组的位置传到前面,那么就能简单地画出每一个画过的棋子,并保存。除此以外,给画过黑棋和白棋的位置所对应的数组分别赋上一个值,这样也方便能在画过的地方不再重画。然后,采用计数器或者时间真假的方法,用循环的方式,来规定一次下黑棋一次下白棋。
最后,也是最难的地方,便是五子棋判断输赢的部分。起初觉得好像这部分的实现遥不可及。可仔细想想,五子棋判断输赢的方式也很简单啊。无非是有没有五个相同颜色的棋子横向或竖向或斜向连在一起。于是,在定义数组后这显得很简单了,我单独定义一个类用以判断输赢,每下一个棋子,就判断这个棋子在横向、竖向和两个斜向上是否有五子连在一起,然后调用这四个方向的判断方法,最终完成了判断输赢方法的编写。然后,在继承MouseListener的类中,下完棋子后,调用这个方法,以此判断输赢。最后,人人版的五子棋便大功告成了。
分享到:
相关推荐
【Java五子棋人人对战可悔棋】是一款基于Java编程语言实现的两人对弈的五子棋游戏,允许玩家在走错棋步时进行悔棋操作,为玩家提供了更加自由的游戏体验。该项目由个人独立完成,并获得了老师的高度评价,成绩A+。...
【Java五子棋人人对战】是一个基于Java编程语言实现的简单桌面游戏,它允许两位玩家在同一设备上进行对弈。这个项目可能是为一个IT课程的实验报告而创建的,但与作者之前的作品相比,其功能可能有所简化,因为描述中...
Java五子棋人人对战程序是一款使用Java编程语言开发的桌面游戏应用,它实现了玩家与玩家之间的实时对弈。此程序具有丰富的功能,包括开始新游戏、重新开始、悔棋等,满足了用户在游戏过程中的多种需求。此外,它还...
在本项目中,我们关注的是一个基于Java实现的五子棋游戏,专为"人人对战"模式设计。五子棋是一种古老的双人棋类游戏,目标是在棋盘上连成五个棋子以获胜。这个Java项目对于初学者来说特别有价值,因为它提供了简单...
【五子棋人人对战小游戏】是基于Java编程语言实现的一款经典桌面游戏,它通过简单的图形界面让两位玩家可以在线上或本地进行实时对战。这款游戏的代码结构清晰,易于理解,非常适合初学者学习和研究Java图形用户界面...
【描述】"这是一个五子棋小代码,只有人人对战,没有智能." 这句话揭示了这个项目的特点:它的代码量不大,专注于提供两个人之间的人工对战功能,即玩家与玩家之间的实时对弈,而没有包含AI(人工智能)对战模式。...
这款名为"五子棋人人对战"的程序充分利用了Java的AWT(Abstract Window Toolkit)和Swing库来创建图形用户界面(GUI),使得用户可以进行直观的人机对战。 **Java AWT和Swing** AWT是Java最早提供的GUI库,它提供...
《五子棋游戏详解:人人对战与人机对战技术》 五子棋,作为一项深受人们喜爱的传统智力游戏,其简洁的规则和深奥的策略性使其在电子游戏领域也有着广泛的适应性。本篇文章将围绕"五子棋 人人对战 人机对战"这一主题...
java五子棋的实现,适合学生的课程设计,希望能够帮到大家,实现人机对战,和人人对战功能模式,有时间统计
标题 "java实现的人人对战五子棋" 暗示了这是一个使用Java编程语言开发的五子棋游戏,允许两个玩家通过网络或同一设备进行对战。在五子棋游戏中,目标是先将五个棋子连成一线(水平、垂直或对角线)的玩家获胜。下面...
【标题】中的“java五子棋(人机对战、人人对战)”指的是一个用Java编程语言开发的五子棋游戏,它包含了两种模式:人机对战和人人对战。在人机对战模式中,玩家可以与计算机进行对抗;在人人对战模式下,两个玩家...
【安卓五子棋人人对战】是一个专门为Android平台设计的双人对弈应用,它允许两位玩家在同一设备上进行实时的五子棋游戏。这款应用的核心特性是利用自定义View来构建游戏界面,以实现更加灵活和高效的游戏交互。下面...
用Java实现的五子棋的对战小游戏,实现了人人网络对战,人机对战,拥有界面,在使用的时候记得将src下面的所有素材放到bin目录下方可正常运行,导入Eclipse即可运行。
五子棋是世界智力运动会竞技项目之一,是一种两人对弈的纯策略型棋类游戏,是世界智力运动会竞技项目之一,通常双方分别使用黑白两色的棋子,下在棋盘直线与横线的交叉点上,先形成5子连线者获胜。 棋具与围棋通用,...
本资源提供了一个完整的Java编程实现五子棋人人对战代码示例,涵盖了Java基础知识、数组、二维数组、逻辑控制语句、方法和函数、对象和类、游戏开发等知识点,对于需要学习Java编程的开发者具有很高的借鉴价值。
### 人人对战五子棋 Java 程序解析 #### 概述 这段代码实现了一个简单的五子棋游戏,采用 Java 编程语言完成。它允许两名玩家在同一个计算机上进行对战,通过鼠标点击放置棋子。下面将详细分析代码中的关键部分及其...
Java五子棋人机人人项目是一个利用Java编程语言实现的五子棋游戏,它支持人与人对战、人与计算机对战以及计算机与计算机之间的对战模式。在这个项目中,我们将探讨Java编程基础、图形用户界面(GUI)设计、算法实现...
【Java五子棋人人对战】项目是一个基于Java编程语言实现的简单对战型五子棋游戏。在本文中,我们将深入探讨这个项目的各个方面,包括它的核心概念、设计原理以及如何进行实际操作。 首先,我们要了解Java作为一种...
主要是一个五子棋游戏,利用java swing技术编写,总共只有一个类,两个内部类。人机对战
本文将详细讲解基于Java实现的五子棋人人对战代码的相关知识。对于初学者来说,这是一个很好的实践项目,能够帮助理解和应用基础的编程概念,尤其是针对游戏开发。 五子棋是一种双人对弈的策略棋类游戏,目标是先在...