一、题目简介
实现五子棋游戏,要求:使用图形用户界面,实现人人对战,人机对战。能够判断输赢,有“开局”按钮,当出现棋盘后,按此按钮进入对战状态。当有胜利者(垂直、水平、对角线连续5子),显示对话框,提示“胜利了”对话框。有“退出”按钮。可以选择退出。
1) 人机对弈模式:选择该模式可以实现人与电脑之间的对弈,电脑会智能的选择该在哪处下子,并会在每次下棋结束后判断是否有哪方已经获胜,如果获胜则结束本局游戏,并提示玩家游戏结束。
2) 人人对弈模式:选择该模式可以实现人与人之间的对弈,系统会提示哪方先下,然后玩家之间交替的下棋,同样系统会在下完每次棋后判断是否有哪方已经获胜,如果获胜则结束
3) 改变棋盘模式:可以使棋盘变大变小,方便下棋。
二、结对分工及过程
王曰芳 (结对人:李燕)201303014067 计科高职13-2 负责:
对MainPanel类、ChessWindowEvent类的代码编写及测试。
描述
1、MainPanel类
1、构建一个面板,在该面板上画上棋盘;
2、处理在该棋盘上的鼠标事件(如鼠标左键点击、鼠标右键点击、鼠标拖动等)
3、MainPanel类继承JPanel实现MouseListener,MouseMotionListener接口。
构造方法:
根据棋盘模式设定面板的大小
MainPanel(ChessModel mm){
cm=mm;
width=cm.getWidth();
height=cm.getHeight();
addMouseListener(this);
}
2、ChessWindowEvent类
响应退出窗口
构造方法:该构造方法为空。
ChessWindowEvent()
{
}
方法:(关闭窗口的方法)
public void windowClosing(WindowEvent e){
System.exit(0);
}
运行结果截图:
三、代码地址
https://github.com/wangyuefang/jiedui/blob/master/wuziqi
https://github.com/wangyuefang/jiedui/blob/master/wuziqiceshi
四、测试情况
测试代码及测试截图:
package wuziqi;
import static org.junit.Assert.*;
import org.junit.AfterClass;
import org.junit.BeforeClass;
import org.junit.Test;
public class FiveChessAppletDemoTest {
@BeforeClass
public static void setUpBeforeClass() throws Exception {
}
@AfterClass
public static void tearDownAfterClass() throws Exception {
}
@Test
public void testMain() {
Double expectedAnswer = Double.valueOf(12);
Double actualAnswer = Double.valueOf(2*6);
assertEquals(expectedAnswer, actualAnswer);
}
}
五、问题及心得
通过这次的结对,我发现分工与合作是很有必要的,因为合作可以取长补短,及时发现自己的问题所在,并加以改正。既增进同学之间的感情,又提高了效率。