儿童帽子的编织方法-
Java
设
计
报
告
书
课程名称:
JA
V
A
语言程序设计
设计题目:
五子棋小游戏
院
系
:
计算机科学与信息工程系
学生姓名:
学
号:
专业班级:
指导教师:
2010
年
12
月
31
日
目
录
一、题目描述
.......................... .................................................. ................................
3
二、设 计思路
........................................... .................................................. ...............
3
三、运行结果
.......... .................................................. ................................................
8
四、源代码
.
................. .................................................. ............................................
9
五、总结
.
.................. .................................................. .............................................
2
1
六、参考文献
:
................ .................................................. ......................................
2
1
一、题目描述:
五子棋是一种两人对弈 的纯策略型棋类游戏,
是起源于中国,
传统五子棋的棋
具与围棋相同,棋子分为黑白两 色,棋盘为
17×10,棋子放置于棋盘线交叉点
上。两人对局,各执一色,轮流下一子,先将 横、竖或斜线的
5
个或
5
个以上
同色棋子连成不间断的一排者为胜。
本课题的功能就是能按照五子棋的规则实
现人机对战,并能顺利结束棋局。
二、设计思路:
1
类图
:
2
说明:
表
1.1
java
源文件及其功能
序
号
1
2
文件名
Chess
Autoplay
主要功能
本程序的主函数
实现电脑可以自动下棋
备
注
初始化棋盘
分为
8
种情况
3
Scan
4
5
6
Sort
Judge
Evaluate
扫描整个棋盘记录连在一起的黑白
为判断胜负服务
棋子数
实现人与电脑有次序的下棋
黑棋白棋有序的下
判断人与电脑的胜负
电脑估计
可以在文本框中显示
胜负结果
为电脑下棋提供帮助
表
2.1
Chess
成
员变
量描
变
量
类
型
述
控
制
棋
子
颜
int
色
重新
开
局
Button
请
黑棋下子
TextField
请
白棋下子
TextField
这
是
第
TextField
步
表
2.2
Chess
方法名
ChessPad()
Void paint (Graphics g)
功能
备
注
名
称
i
Button
text_1
text_2
text_3
初始化棋
盘
设
置棋
盘颜
色,
对棋子等图像进行初
设置棋子大小,颜色等
始化
public
void
mousePressed(MouseEve
nt e)
public void paint(Graphics
g)
public
void
mousePressed(MouseEve
nt e)
public
void
mouseReleased(MouseEv
ent e)
public
void
mouseExited(MouseEvent
e)
public
void
mouseClicked(MouseEve
nt e)
鼠
标
的
实践监
听
画
出
图
像
单击实践
控制
图
像的大小范
围
处理按下鼠标的事件
选中下棋的位置
处理鼠标离开的事件
本步下棋结束
鼠标离开组件不实现任何事
件
处理鼠标离开棋盘时
处理发生单击的事件
实现下棋以及重新开始游戏
表
2.3
Autoplay
成
员变
量描述
统计
玩家的
连
起
来
的棋子
int
数
电脑
玩家的
连
起
来
的棋子
Int
数
表
2.4
Autoplay
方法名
功能
备
注
变
量
类
型
X
Y
名
称
void
autoPlay(int
分情
况实现电脑
自
动
使用
switch
语
句分
为8
种
情
chesspad[][],int a,int b)
下棋
况来
下棋
表
2.5
Scan
成
员变
量描述
统计
棋
盘种
五
个连
起
来
的
数组
棋子
数
控制行
数
int
控制列
数
表
2.6
Scan
int
变
量
类
型
名
称
int shape[][][]
i
j
方法名
功能
备
注
void
scan(int
判
断
棋
盘
上
连
在一起
chesspad[][],int
的黑白棋子
个数
。
colour){
表
2.7
Sort
成
员变
量描述
保存
临时变
量
表
2.8
Sort
方法名
public
void
shape[][][])
表
2.9
Judge
成
员变
量描述
控制行
数
int
变
量
类
型
i
j
flag
名
称
功能
备
注
变
量
类
型
int
名
称
temp
sort(int
实现
黑白棋子的交替
数组为参数
下
控制列
数
int
记录连
在一起的黑白棋子
int
数
表
2.10
Judge
方法名
功能
备
注
static
boolean
judge(int
判
断
玩家
与电脑
的游
使用< br>静态
函
数
,分多
钟
情
况
戏胜负
a[][],int color)
判
断
表
2.11
Evaluate
成
员变
量描述
玩家最可能下的棋子的行
数
玩家最可能下的棋子的列
数
保存最大可能下棋的位置
控制行
数
控制列
数
变
量
类
型
int
int
int
int
int
max_x
max_y
max
i
j
名
称
表
2.12
Evaluate
方法名
功能
备
注
public
void
evaluate(int
电脑
用于估
计
玩家下
shape[][][])
步棋的走法
三、运行结果:
四、源代码:
import .*;
import .*;
class ChessPad extends Panel implements MouseListener,ActionListener{
int array[][]=new int[19][19];
Scan scanp=new Scan();
Scan scanc=new Scan();
AutoPlay autoPlay=new AutoPlay();
Evaluate evaluatep=new Evaluate();
Evaluate evaluatec=new Evaluate();
Sort sort=new Sort();
int i=0;
int x=-1,y=-1,
棋子颜色
=1;
Button button=new Button(
重新开局
TextField text_1=new TextField(
请黑棋下子
text_2=new TextField(),
text_3=new TextField();
ChessPad(){
setSize(440,440);
setLayout(null);setBackground();
addMouseLis tener(this);add(button);nds(10,5,60,26);
ionListener(this);
add(text_1);
text_nds(90,5,90,24);
add(text_2);
text_nds(290,5,90,24);
add(text_3);
text_nds(200,5,80,24);
for(int i=0;i<19;i++)
for(int j=0;j<19;j++)
{array[i][j]=0;}
for(int i=0;i<19;i++)
for(int j=0;j<19;j++)
for(int h=0;h<5;h++)
{[i][j][h]=0;
[i][j][h]=0;}
text_table(false);
text_table(false);
}
public void paint(Graphics g){
for (int i=40;i<=400;i=i+20){
ne(40,i,400,i);
}
for(int j=40;j<=400;j=j+20){
ne(j,40,j,400);
}
al(97,97,6,6);
al(337,97,6,6);
al(97,337,6,6);
al(337,337,6,6);
al(217,217,6,6);
}
public void mousePressed(MouseEvent e){
int a=0,b=0;
if(ifiers()==1_MASK){
x=(int)();y=(int)();
ChessPoint_black chesspoint_black=new ChessPoint_black(this);
ChessPoint_white chesspoint_white=new ChessPoint_white(this);
i++;
text_t(
这是第
步
i f((x+5)/20<2||(y+5)/20<2||(x-5)/20>19||(y-5)/20>19 )
{}
else { a=(x+10)/20;b=(y+10)/20;
if(array[b-2][a-2]==0&&
棋子颜色
==1){
(chesspoint_black);
chesspoint_nds(a*20-9,b*20-9,18,18);
棋子颜色
=
棋子颜色
*(-1);
array[b-2][a-2]=1;
if ((array,1)){
text_t(
黑
棋
赢
!
棋
子
颜
色
儿童帽子的编织方法-
儿童帽子的编织方法-
儿童帽子的编织方法-
儿童帽子的编织方法-
儿童帽子的编织方法-
儿童帽子的编织方法-
儿童帽子的编织方法-
儿童帽子的编织方法-
本文更新与2021-01-27 06:06,由作者提供,不代表本网站立场,转载请注明出处:http://www.xapfxb.com/yuer/429898.html
-
上一篇:C++ 五子棋游戏论文
下一篇:基于Java的五子棋小游戏论文