资源简介
5. 井字游戏(满分50分)
版本1:满分20分
井字游戏是一种在3*3格子上进行的连珠游戏,和五子棋比较类似。由分别代表O和X
的两个游戏者轮流在格子里留下标记(一般来说先手者为X)。最先在任意一条直线上(水平、垂直或者对角线)成功连接三个标记的一方获胜。当所有格子都被填满,双方都未获胜
时,为平局。
提示两个用户轮流输入X和O。当一个标记设置后,程序在控制台重新显示,并判断
游戏状态(赢家、平局、继续)。控制台程序运行示例:
版本2:满分10分
创建自定义面板Cell类用来显示X、O或者不显示。当绘制面板时,随机决定显示内
容。提示:使用Math.random()方法产生整数0、1或者2,对应于显示X、O或者不显示。
创建一个框架包含9个自定义面板,产生井字游戏界面。运行示例:
版本3:满分20分
创建可以用户交互的井字游戏。修改(2)中Cell类:初始时,所有格子为空;第一个
玩家使用X标记,第二个玩家使用O标记。当一个用户在格子上点击鼠标时,如果该格子
为空,就使用X或O填充;如果格子已经填充,则忽略用户操作。主程序面板TicTacToe
类包括9个Cell对象,可以创建对象数组Cell[3][3]存储;一个Button用于重新开始;一个
标签用于描述当前进行的玩家、赢家或者平局,运行示例:
代码片段和文件信息
package TTT;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.GridLayout;
import javax.swing.Jframe;
import javax.swing.JPanel;
import javax.swing.border.LineBorder;
public class Cell extends Jframe {
static int whoseTurn;
public Cell() {
setLayout(new GridLayout(3 3 0 0));
for(int i=0;i<9;i++){
whoseTurn = (int)(Math.random()*3);
add(new addCell(whoseTurn));
repaint();
}
}
public static void main(String[] args){
Jframe jf = new Cell();
jf.settitle(“版本二--井字游戏“);
jf.setSize(500 500);
jf.setVisible(true);
jf.setDefaultCloseOperation(Jframe.EXIT_ON_CLOSE);
}
class addCell extends JPanel{
int whoseTurn;
public addCell(int whoseTurn) {
// TODO Auto-generated constructor stub
this.whoseTurn=whoseTurn;
setBorder(new LineBorder(Color.blue 1));
}
@Override
protected void paintComponent(Graphics g){
super.paintChildren(g);
switch (whoseTurn) {
case 0:
g.drawLine(10 10 getWidth()-10 getHeight()-10);
g.drawLine(getWidth()-10 10 10 getHeight()-10);
break;
case 1:
g.drawOval(10 10 getWidth()-20 getHeight()-20);
break;
default:
break;
}
}
}
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 1238 2013-06-21 18:32 TTT\Cell.java
文件 4459 2013-08-31 21:20 TTT\TicTacToe.java
文件 3342 2013-06-21 18:32 TTT\TicTacToeV1.java
文件 1267 2013-05-29 11:34 TTT\TicTacToeV1.rar
目录 0 2013-08-31 21:17 TTT
----------- --------- ---------- ----- ----
10306 5
- 上一篇:统计字符串-课程设计
- 下一篇:GTK编程设计音乐播放器
评论
共有 条评论