五子棋课程设计及源代码

五子棋

课程设计项目研究报告

一 项目简介

1.1 项目名称

简单的多用户五子棋游戏程序 1.2 开发人员 1.3 指导教师

二 项目设计要求

2.1 项目要求

通过课程设计完成一个五子棋游戏,程序中要实现GUI 图形界面的棋盘、黑子、白子功能,实现开始、重来、认输等功能,实现输赢自动判别算法,实现游戏对战。

2.2项目概述

五子棋是源于中国古代的传统黑白棋之一,五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助与修身养性。

本程序是一款棋类益智游戏程序,是采用Java 语言编写娱乐小游戏。该程序面向广大棋类游戏的爱好者,能够提供方便,实现基本智能控制的游戏环境。本程序可以实现人人对话,棋手可用鼠标来操作,点击界面退出按钮终止游戏。游戏开始后,选择模式,可进入相应界面,左方显示15*15的棋盘,右方会有游戏相关操作说明,本游戏由棋手自行选择黑白方,五子连珠者胜,程序会提示当前下棋的棋手,结束时会显示对战双方胜负情况。

2.3 开发平台

Java 是由Sun 微系统公司所发展出来的程序语言,它本身是一种对象导向(Object-Oriented )的程序语言。JAVA 目前在手机上应用最多的就是JAVA 游戏。

本文使用功能强大的Eclipse 开发工具和java 开发语言开发出一款拥有自己特色的五子棋小程序,

其中Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT )。

三 设计思路及功能

3.1设计思路

棋盘设计为15*15格,玩家选择黑白方后,点击“开始”,轮流落子,当一方连成五子或下满棋盘时,游戏结束(连成五子的一方获胜,下满棋盘为和棋)。当游戏一方胜利后显示胜利信息。从程序表面看,这是一个二维平面图,所以数据用二维数组来表示,数组两个下标可以表示棋盘上的位置,数组元素的值代表棋格上的状态,共有三种情况,分别是,0代表白棋,1代表黑棋。落子成功后,马上判断以该位置为中心的八个方向:上、下、左、右、左上、左下、右上、右下是否有相同颜色的棋子连成五子,如果连成五子,则游戏结束,输出相应的信息。

3.2 流程图

3.3 功能的规划

1 . 建立一个棋盘类,绘制棋盘的样式,在棋盘面板上添加各种按钮及相应胡触发事件。同时注意面板的设计,使面板设计的尽量胡的合理美观。

a. 棋盘的绘制

public void draw_qipan(Graphics G) //画棋盘 15*15{ G.setColor(Color.lightGray );

G.fill3DRect(10,10,300,300,true ); G.setColor(Color.black ); for (int i=1;i

G.drawLine(20,20*i,300,20*i); G.drawLine(20*i,20,20*i,300); }

}

b. 添加按钮与按钮胡规划

Button b1=new Button(" 开始" ); Button b2=new Button(" 重置游戏" ); Label lblWin =new Label(" ");

Checkbox ckbHB []=new Checkbox[3]; Button exist = new Button(" 退出" );

public void init(){

ckbHB [0]=new Checkbox(" 执白" , ckgHB , false ); ckbHB [1]=new Checkbox(" 执黑" , ckgHB , false ); ckbHB [2]=new Checkbox(" 观看" , ckgHB , false ); }

C. 鼠标棋子胡相应触发事件

public void mouseClicked(MouseEvent e) { Graphics g=getGraphics(); int x1,y1; x1=e.getX(); y1=e.getY();

if (e.getX()300 || e.getY()300) { return ; }

if (x1%20>10) { x1+=10; }

if (y1%20>10) { y1+=10; }

x1=x1/20*20; y1=y1/20*20; set_Qizi(x1,y1); }

d. 按钮的触发事件

public void actionPerformed(ActionEvent e) { Graphics g=getGraphics(); if (e.getSource()==b1) { Game_start(); }else{

Game_re(); }

if(e.getSource()==exist){ Game_re();

lblWin.setText(Get_qizi_color1(color_Qizi)+"输了!"); intGame_Start=0;

}

}

Public String Get_qizi_color1(int x) { if (x==0) {

return “白子”; } else {

Return “黑子”; } }

2. 编写一个功能判断落子的位置及画出相应的黑白棋子 public void set_Qizi(int x,int y) //落子{ }

3. 判断胜负

if (Game_win_1(x/20,y/20)) //判断输赢1{

lblWin .setText(Get_qizi_color(color_Qizi)+" 赢了!" ); intGame_Start=0; }

if (Game_win_2(x/20,y/20)) //判断输赢2{

lblWin .setText(Get_qizi_color(color_Qizi)+" 赢了!" ); intGame_Start=0; }

if (Game_win_3(x/20,y/20)) //判断输赢3{

if (intGame_Start==0) //判断游戏未开始{

return; }

if (intGame_Body[x/20][y/20]!=0) { return; }

Graphics g=getGraphics();

if (color_Qizi==1)//判断黑子还是白子{ g.setColor(Color.black); color_Qizi=0; } else{

g.setColor(Color.white); color_Qizi=1; }

g.fillOval(x-10,y-10,20,20);

intGame_Body[x/20][y/20]=color_Qizi+1;

}

lblWin .setText(Get_qizi_color(color_Qizi)+" 赢了!" ); intGame_Start=0; }

if (Game_win_4(x/20,y/20)) //判断输赢4{

lblWin .setText(Get_qizi_color(color_Qizi)+" 赢了!" ); intGame_Start=0; }

3.4 游戏程序缺陷:

在界面制作上有些简陋,不是很漂亮,操作上还不是很人性化,实现鼠标菜单操作,让游戏进行起来不方便,同时这个程序也有很多的缺陷,运行时也有一些小错误发生。不过,我们经历课设还会找时间对其进行一定完善,不让自己留有遗憾。

四 运行结果

4.1 进入游戏的界面

分析:游戏开始的界面有两个选择项,用户可以选择相应的角色,选择完毕后点击开始进入游戏。

4.2 选择角色,点击开始,开始下棋

分析:首先达到五个棋子连在一块的赢了,并在红色区域显示谁赢了!

4.3 下完后点击重新开始

分析:下完一盘后游戏停止,点击重新开始,界面回到初始界面,选择角色继续游戏

4.4 游戏过程中认输,自动判输

分析:在下棋的过程当中谁中途认输,即点击认输,系统自动判断谁输

五 课程设计项目进度表

六 课程设计任务分配表

七 设计体会与总结

这个课设题对我们来说有一定的挑战性,因为我们自己也不知道自己到底学到了一个什么样的境界。但可以肯定,这个课设题的要求绝对在我们的能力范围以上。之所以选择这个题目是想逼着自己去查更多的资料,学到更多的东西。

结果也确实是这样的,我们在这次设计中学到了不少东西,也理解了许多原来不理解的东西。尽管这个系统做的并不是那么的完善。

对于Java 中的图形用户界面等,开始我并不理解,也不知道怎样能实现相应的功能,但是真正的要用Java 去做一个东西不理解它是不行的。而且这个设计涉及到了Java 中的绝大多数的知识点,如Java 图形用户界面设计、Java 的异常处理机制、Java 中的多线程程序设计、Java 输入输出流,要应用这些东西更要求我去好好理解Java 的这些规则。

总结这次课设,我们还是收获不少。虽然界面也不是很美观,有点功能间的连接做的也不是特别的好,但是我们能认识到自己的不足,并且在跟同学的交流中也学到了一些他们的设计思路,也知道今后要加强哪些方面的知识。

八 参考文献

1. 吴其庆编著.Java 程序设计实例教程. 北京:冶金工业出版社 2. 柳西玲. 许斌编著.Java 语言应用开发基础. 北京:清华大学出版社

3. (美)CayS.Horsttmann Gary Cornell JAVA核心技术卷i :基础知识(原书第七版):

机械工业出版社 4.丁振凡 Java 语言实用教程 :北京邮电大学出版社 5. 张亦辉 java面向对象程序设计 :人民邮电出版社

源代码:

import java.io.*;

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

import java.applet.Applet;

import java.awt.Color;

public class wuziqi extends Applet ActionListener,MouseListener,MouseMotionListener,ItemListener{ int color_Qizi=0;//旗子的颜色标识 0:白子 1:黑子

int intGame_Start=0;//游戏开始标志 0未开始 1游戏中

int intGame_Body[][]=new int[16][16]; //设置棋盘棋子状态

Button b1=new Button("开始");

Button b2=new Button("重置游戏");

Label lblWin=new Label(" ");

Checkbox ckbHB[]=new Checkbox[2];

Button exist = new Button("认输");

CheckboxGroup ckgHB=new CheckboxGroup();

public void init(){

setLayout(null);

addMouseListener(this);

add(b1);

b1.setBounds(330,50,80,30);

b1.addActionListener(this);

add(b2);

b2.setBounds(330,90,80,30);

b2.addActionListener(this); implements

ckbHB[0].setBounds(320,20,60,30); ckbHB[1]=new Checkbox("执黑",ckgHB,false); ckbHB[1].setBounds(380,20,60,30); add(ckbHB[0]); add(ckbHB[1]); ckbHB[0].addItemListener(this); ckbHB[1].addItemListener(this); add(lblWin); lblWin.setBounds(330,180,80,30); lblWin.setBackground(Color.red); lblWin.setText("胜利者!");//没有显示? add(exist); exist.setBounds(330,130,80,30); exist.addActionListener(this); } public void itemStateChanged(ItemEvent e){ } if (ckbHB[0].getState()) //选择黑子还是白子 { } else { } color_Qizi=1; color_Qizi=0; public void mousePressed(MouseEvent e){} public void mouseClicked(MouseEvent e){

int x1,y1; x1=e.getX(); y1=e.getY(); if (e.getX()300 || e.getY()300){ } return; if (x1%20>10){ } x1+=10; if(y1%20>10){ } y1+=10; x1=x1/20*20; y1=y1/20*20; set_Qizi(x1,y1); } public void actionPerformed(ActionEvent e){ Graphics g=getGraphics(); if (e.getSource()==b1){ } else{ } if(e.getSource()==exist){ Game_re(); lblWin.setText(Get_qizi_color1(color_Qizi)+"输了!"); intGame_Start=0; Game_re(); Game_start();

} } public String Get_qizi_color1(int x)

if (intGame_Body[x/20][y/20]!=0){ } return; public void set_Qizi(int x,int y){ //落子 if (intGame_Start==0) {//判断游戏未开始 } return; public void paint(Graphics g){ } draw_qipan(g); public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseDragged(MouseEvent e){} public void mouseMoved(MouseEvent e){} { } if (x==0) { } else { } return "黑子"; return "白子";

if (color_Qizi==1){//判断黑子还是白子 } else{ } g.setColor(Color.white); color_Qizi=1; g.setColor(Color.black); color_Qizi=0; g.fillOval(x-10,y-10,20,20); intGame_Body[x/20][y/20]=color_Qizi+1; if (Game_win_1(x/20,y/20)){ //判断输赢1 lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0; } if (Game_win_2(x/20,y/20)){ //判断输赢2{ } lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0; if (Game_win_3(x/20,y/20)){ //判断输赢3 } lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0; if (Game_win_4(x/20,y/20)){ //判断输赢4 lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0;

} public String Get_qizi_color(int x) { } if (x==0) { } else { } return "白子"; return "黑子"; public void draw_qipan(Graphics G){ //画棋盘 15*15 } G.setColor(Color.lightGray); G.fill3DRect(10,10,300,300,true); G.setColor(Color.black); for(int i=1;i

ckbHB[0].setState(true); } for (int i=0;i15){ } if (intGame_Body[x1+i][y1]==intGame_Body[x][y]){ t+=1; break;

else{ } break; } for (int i=1;i4){ } else{ } return false; return true; public boolean Game_win_2(int x,int y){ //纵向判断输赢 int x1,y1,t=1; x1=x; y1=y; for (int i=1;i

} if (intGame_Body[x1][y1+i]==intGame_Body[x][y]){ } else{ } break; t+=1; break; } for (int i=1;i4){ } else{ } return false; return true; public boolean Game_win_3(int x,int y){ //左斜判断输赢

x1=x; y1=y; for (int i=1;i15){ } if (intGame_Body[x1+i][y1-i]==intGame_Body[x][y]){ } else{ } break; t+=1; break; } for (int i=1;i4){ } else{ return true;

}

}

public boolean Game_win_4(int x,int y){ //左斜判断输赢

int x1,y1,t=1; x1=x; y1=y;

for (int i=1;i

if (x1>15){ }

if (intGame_Body[x1+i][y1+i]==intGame_Body[x][y]){ } else{ }

break; t+=1; break;

}

for (int i=1;i

if (x1

break;

}

if(intGame_Body[x1-i][y1-i]==intGame_Body[x][y]){ } else{ }

break; t+=1;

}

}

if (t>4){ } else{ }

return false; return true;

学校地址:福建省武夷山市武夷大道16号 设计单位:数学与计算机系 版本号:WyuKcsj Ver2010

五子棋

课程设计项目研究报告

一 项目简介

1.1 项目名称

简单的多用户五子棋游戏程序 1.2 开发人员 1.3 指导教师

二 项目设计要求

2.1 项目要求

通过课程设计完成一个五子棋游戏,程序中要实现GUI 图形界面的棋盘、黑子、白子功能,实现开始、重来、认输等功能,实现输赢自动判别算法,实现游戏对战。

2.2项目概述

五子棋是源于中国古代的传统黑白棋之一,五子棋不仅能增强思维能力,提高智力,而且富含哲理,有助与修身养性。

本程序是一款棋类益智游戏程序,是采用Java 语言编写娱乐小游戏。该程序面向广大棋类游戏的爱好者,能够提供方便,实现基本智能控制的游戏环境。本程序可以实现人人对话,棋手可用鼠标来操作,点击界面退出按钮终止游戏。游戏开始后,选择模式,可进入相应界面,左方显示15*15的棋盘,右方会有游戏相关操作说明,本游戏由棋手自行选择黑白方,五子连珠者胜,程序会提示当前下棋的棋手,结束时会显示对战双方胜负情况。

2.3 开发平台

Java 是由Sun 微系统公司所发展出来的程序语言,它本身是一种对象导向(Object-Oriented )的程序语言。JAVA 目前在手机上应用最多的就是JAVA 游戏。

本文使用功能强大的Eclipse 开发工具和java 开发语言开发出一款拥有自己特色的五子棋小程序,

其中Eclipse 是一个开放源代码的、基于 Java 的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括 Java 开发工具(Java Development Tools,JDT )。

三 设计思路及功能

3.1设计思路

棋盘设计为15*15格,玩家选择黑白方后,点击“开始”,轮流落子,当一方连成五子或下满棋盘时,游戏结束(连成五子的一方获胜,下满棋盘为和棋)。当游戏一方胜利后显示胜利信息。从程序表面看,这是一个二维平面图,所以数据用二维数组来表示,数组两个下标可以表示棋盘上的位置,数组元素的值代表棋格上的状态,共有三种情况,分别是,0代表白棋,1代表黑棋。落子成功后,马上判断以该位置为中心的八个方向:上、下、左、右、左上、左下、右上、右下是否有相同颜色的棋子连成五子,如果连成五子,则游戏结束,输出相应的信息。

3.2 流程图

3.3 功能的规划

1 . 建立一个棋盘类,绘制棋盘的样式,在棋盘面板上添加各种按钮及相应胡触发事件。同时注意面板的设计,使面板设计的尽量胡的合理美观。

a. 棋盘的绘制

public void draw_qipan(Graphics G) //画棋盘 15*15{ G.setColor(Color.lightGray );

G.fill3DRect(10,10,300,300,true ); G.setColor(Color.black ); for (int i=1;i

G.drawLine(20,20*i,300,20*i); G.drawLine(20*i,20,20*i,300); }

}

b. 添加按钮与按钮胡规划

Button b1=new Button(" 开始" ); Button b2=new Button(" 重置游戏" ); Label lblWin =new Label(" ");

Checkbox ckbHB []=new Checkbox[3]; Button exist = new Button(" 退出" );

public void init(){

ckbHB [0]=new Checkbox(" 执白" , ckgHB , false ); ckbHB [1]=new Checkbox(" 执黑" , ckgHB , false ); ckbHB [2]=new Checkbox(" 观看" , ckgHB , false ); }

C. 鼠标棋子胡相应触发事件

public void mouseClicked(MouseEvent e) { Graphics g=getGraphics(); int x1,y1; x1=e.getX(); y1=e.getY();

if (e.getX()300 || e.getY()300) { return ; }

if (x1%20>10) { x1+=10; }

if (y1%20>10) { y1+=10; }

x1=x1/20*20; y1=y1/20*20; set_Qizi(x1,y1); }

d. 按钮的触发事件

public void actionPerformed(ActionEvent e) { Graphics g=getGraphics(); if (e.getSource()==b1) { Game_start(); }else{

Game_re(); }

if(e.getSource()==exist){ Game_re();

lblWin.setText(Get_qizi_color1(color_Qizi)+"输了!"); intGame_Start=0;

}

}

Public String Get_qizi_color1(int x) { if (x==0) {

return “白子”; } else {

Return “黑子”; } }

2. 编写一个功能判断落子的位置及画出相应的黑白棋子 public void set_Qizi(int x,int y) //落子{ }

3. 判断胜负

if (Game_win_1(x/20,y/20)) //判断输赢1{

lblWin .setText(Get_qizi_color(color_Qizi)+" 赢了!" ); intGame_Start=0; }

if (Game_win_2(x/20,y/20)) //判断输赢2{

lblWin .setText(Get_qizi_color(color_Qizi)+" 赢了!" ); intGame_Start=0; }

if (Game_win_3(x/20,y/20)) //判断输赢3{

if (intGame_Start==0) //判断游戏未开始{

return; }

if (intGame_Body[x/20][y/20]!=0) { return; }

Graphics g=getGraphics();

if (color_Qizi==1)//判断黑子还是白子{ g.setColor(Color.black); color_Qizi=0; } else{

g.setColor(Color.white); color_Qizi=1; }

g.fillOval(x-10,y-10,20,20);

intGame_Body[x/20][y/20]=color_Qizi+1;

}

lblWin .setText(Get_qizi_color(color_Qizi)+" 赢了!" ); intGame_Start=0; }

if (Game_win_4(x/20,y/20)) //判断输赢4{

lblWin .setText(Get_qizi_color(color_Qizi)+" 赢了!" ); intGame_Start=0; }

3.4 游戏程序缺陷:

在界面制作上有些简陋,不是很漂亮,操作上还不是很人性化,实现鼠标菜单操作,让游戏进行起来不方便,同时这个程序也有很多的缺陷,运行时也有一些小错误发生。不过,我们经历课设还会找时间对其进行一定完善,不让自己留有遗憾。

四 运行结果

4.1 进入游戏的界面

分析:游戏开始的界面有两个选择项,用户可以选择相应的角色,选择完毕后点击开始进入游戏。

4.2 选择角色,点击开始,开始下棋

分析:首先达到五个棋子连在一块的赢了,并在红色区域显示谁赢了!

4.3 下完后点击重新开始

分析:下完一盘后游戏停止,点击重新开始,界面回到初始界面,选择角色继续游戏

4.4 游戏过程中认输,自动判输

分析:在下棋的过程当中谁中途认输,即点击认输,系统自动判断谁输

五 课程设计项目进度表

六 课程设计任务分配表

七 设计体会与总结

这个课设题对我们来说有一定的挑战性,因为我们自己也不知道自己到底学到了一个什么样的境界。但可以肯定,这个课设题的要求绝对在我们的能力范围以上。之所以选择这个题目是想逼着自己去查更多的资料,学到更多的东西。

结果也确实是这样的,我们在这次设计中学到了不少东西,也理解了许多原来不理解的东西。尽管这个系统做的并不是那么的完善。

对于Java 中的图形用户界面等,开始我并不理解,也不知道怎样能实现相应的功能,但是真正的要用Java 去做一个东西不理解它是不行的。而且这个设计涉及到了Java 中的绝大多数的知识点,如Java 图形用户界面设计、Java 的异常处理机制、Java 中的多线程程序设计、Java 输入输出流,要应用这些东西更要求我去好好理解Java 的这些规则。

总结这次课设,我们还是收获不少。虽然界面也不是很美观,有点功能间的连接做的也不是特别的好,但是我们能认识到自己的不足,并且在跟同学的交流中也学到了一些他们的设计思路,也知道今后要加强哪些方面的知识。

八 参考文献

1. 吴其庆编著.Java 程序设计实例教程. 北京:冶金工业出版社 2. 柳西玲. 许斌编著.Java 语言应用开发基础. 北京:清华大学出版社

3. (美)CayS.Horsttmann Gary Cornell JAVA核心技术卷i :基础知识(原书第七版):

机械工业出版社 4.丁振凡 Java 语言实用教程 :北京邮电大学出版社 5. 张亦辉 java面向对象程序设计 :人民邮电出版社

源代码:

import java.io.*;

import java.applet.*;

import java.awt.*;

import java.awt.event.*;

import java.applet.Applet;

import java.awt.Color;

public class wuziqi extends Applet ActionListener,MouseListener,MouseMotionListener,ItemListener{ int color_Qizi=0;//旗子的颜色标识 0:白子 1:黑子

int intGame_Start=0;//游戏开始标志 0未开始 1游戏中

int intGame_Body[][]=new int[16][16]; //设置棋盘棋子状态

Button b1=new Button("开始");

Button b2=new Button("重置游戏");

Label lblWin=new Label(" ");

Checkbox ckbHB[]=new Checkbox[2];

Button exist = new Button("认输");

CheckboxGroup ckgHB=new CheckboxGroup();

public void init(){

setLayout(null);

addMouseListener(this);

add(b1);

b1.setBounds(330,50,80,30);

b1.addActionListener(this);

add(b2);

b2.setBounds(330,90,80,30);

b2.addActionListener(this); implements

ckbHB[0].setBounds(320,20,60,30); ckbHB[1]=new Checkbox("执黑",ckgHB,false); ckbHB[1].setBounds(380,20,60,30); add(ckbHB[0]); add(ckbHB[1]); ckbHB[0].addItemListener(this); ckbHB[1].addItemListener(this); add(lblWin); lblWin.setBounds(330,180,80,30); lblWin.setBackground(Color.red); lblWin.setText("胜利者!");//没有显示? add(exist); exist.setBounds(330,130,80,30); exist.addActionListener(this); } public void itemStateChanged(ItemEvent e){ } if (ckbHB[0].getState()) //选择黑子还是白子 { } else { } color_Qizi=1; color_Qizi=0; public void mousePressed(MouseEvent e){} public void mouseClicked(MouseEvent e){

int x1,y1; x1=e.getX(); y1=e.getY(); if (e.getX()300 || e.getY()300){ } return; if (x1%20>10){ } x1+=10; if(y1%20>10){ } y1+=10; x1=x1/20*20; y1=y1/20*20; set_Qizi(x1,y1); } public void actionPerformed(ActionEvent e){ Graphics g=getGraphics(); if (e.getSource()==b1){ } else{ } if(e.getSource()==exist){ Game_re(); lblWin.setText(Get_qizi_color1(color_Qizi)+"输了!"); intGame_Start=0; Game_re(); Game_start();

} } public String Get_qizi_color1(int x)

if (intGame_Body[x/20][y/20]!=0){ } return; public void set_Qizi(int x,int y){ //落子 if (intGame_Start==0) {//判断游戏未开始 } return; public void paint(Graphics g){ } draw_qipan(g); public void mouseEntered(MouseEvent e){} public void mouseExited(MouseEvent e){} public void mouseReleased(MouseEvent e){} public void mouseDragged(MouseEvent e){} public void mouseMoved(MouseEvent e){} { } if (x==0) { } else { } return "黑子"; return "白子";

if (color_Qizi==1){//判断黑子还是白子 } else{ } g.setColor(Color.white); color_Qizi=1; g.setColor(Color.black); color_Qizi=0; g.fillOval(x-10,y-10,20,20); intGame_Body[x/20][y/20]=color_Qizi+1; if (Game_win_1(x/20,y/20)){ //判断输赢1 lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0; } if (Game_win_2(x/20,y/20)){ //判断输赢2{ } lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0; if (Game_win_3(x/20,y/20)){ //判断输赢3 } lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0; if (Game_win_4(x/20,y/20)){ //判断输赢4 lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!"); intGame_Start=0;

} public String Get_qizi_color(int x) { } if (x==0) { } else { } return "白子"; return "黑子"; public void draw_qipan(Graphics G){ //画棋盘 15*15 } G.setColor(Color.lightGray); G.fill3DRect(10,10,300,300,true); G.setColor(Color.black); for(int i=1;i

ckbHB[0].setState(true); } for (int i=0;i15){ } if (intGame_Body[x1+i][y1]==intGame_Body[x][y]){ t+=1; break;

else{ } break; } for (int i=1;i4){ } else{ } return false; return true; public boolean Game_win_2(int x,int y){ //纵向判断输赢 int x1,y1,t=1; x1=x; y1=y; for (int i=1;i

} if (intGame_Body[x1][y1+i]==intGame_Body[x][y]){ } else{ } break; t+=1; break; } for (int i=1;i4){ } else{ } return false; return true; public boolean Game_win_3(int x,int y){ //左斜判断输赢

x1=x; y1=y; for (int i=1;i15){ } if (intGame_Body[x1+i][y1-i]==intGame_Body[x][y]){ } else{ } break; t+=1; break; } for (int i=1;i4){ } else{ return true;

}

}

public boolean Game_win_4(int x,int y){ //左斜判断输赢

int x1,y1,t=1; x1=x; y1=y;

for (int i=1;i

if (x1>15){ }

if (intGame_Body[x1+i][y1+i]==intGame_Body[x][y]){ } else{ }

break; t+=1; break;

}

for (int i=1;i

if (x1

break;

}

if(intGame_Body[x1-i][y1-i]==intGame_Body[x][y]){ } else{ }

break; t+=1;

}

}

if (t>4){ } else{ }

return false; return true;

学校地址:福建省武夷山市武夷大道16号 设计单位:数学与计算机系 版本号:WyuKcsj Ver2010


相关内容

  • 五子棋课程设计
  • 德州学院信息管理学院 课程设计报告 实习名称 自主学习能力 设计题目 五子棋小游戏 实习时间 2015.04.01--2014.04.30 专业班级 14级计算机科学与技术 指导老师 曹金凤 教学单位 小组分工情况: 二〇一四年五月二十五日 i 目 录 1 实习目的 ................ ...

  • 五子棋程序设计报告
  • 宜宾学院 面向对象课程设计 学院:_计算机与信息工程学院_班级: 2014级6班 学生姓名: 郑亮学号:141106020 设计地点(单位)_________宜宾学院__________ 设计题目:____________双人五子棋_____________ 完成日期:2015年 12月 5日 目录 ...

  • N多毕业设计题目
  • 基于Ajax技术的WEB应用的设计 又快到毕业的时候了,大家该准备做毕业设计了.大学问问特意收集了一些毕业设计(论文)的题目,供大家选择. VB售楼管理系统 VB无纸化考试系统 VB小区物业管理系统 VB航空公司管理信息系统 VB计算机机房管理系统 VB房地产评估系统VB+SQL2000 VB光盘信 ...

  • 软件体系结构实验报告1
  • 学 生 实 验 报 告 课程名称:软件体系结构 学生学号: 所属院部:信息技术学院 专业班级: M11计算机科学与技术II班 1121117031 学生姓名: 赵慧 指导教师: 张家浩 2013--2014学年 第二学期 实验项目名称: 实验 五子棋人机对弈的架构实现 实验学时: 6 同组学生姓名: ...

  • 3.2.1信息的编程加工教案
  • 3.2信息的编程加工(第1课时) 实习老师 雷佩芬 一.教学内容分析 本节内容较为简练,是对上一节"信息加工的概述"的承接,主要是描述如何运用VB程序来进行编程,让学生了解一些简单的编程知识.在实际的教学中,教师可以灵活地安排教学内容,讲述的顺序.内容与教材所呈现的顺序.内容可以 ...

  • 大学计算机毕业论文
  • 目录 摘要......................................................................3 Abstract................................................................. ...

  • 五子棋课程纲要
  • 五子棋课程纲要 开发背景 五子棋有着悠久历史,其流传或许始于尧舜.下五子棋意在锻炼智慧,纯洁性情.随着社会的发展,给越来越多的孩子提供了接近五子棋的机会.也有越来越多的家长重视起五子棋对孩子成长所起的作用.社会也给予五子棋更多的关注,研究表明,五子棋是很好的素质教育工具.我们北台小学的办学理念正是为 ...

  • 校本课程介绍
  • 佟楼中学校本课程介绍 科技类: 航模 以培养学生动手动脑的能力,丰富学生的课余生活,陶冶学生的情操,促进学生全面发展为宗旨.对学生学习航空知识.增长实践创新能力.培养科学素养.团队合作意识.增强爱国主义精神都具有积极作用,是贯彻实施青少年学生素质教育的一个极好途径和载体. 电脑设计 为培养学生学习使 ...

  • web前端研发工程师-简历示例
  • 服桥 凛言苯挖喻仟 质剃魔泊哟 济虏振冶水妓 闭家铆雄饰 议阑糠惮掌牡 教绸矿弯故 涎蜡慢趋抗 彭冕陷蜜闭各 枕格凛西御 股尊拥席泞锥 搜智虫阔酸 跪曝遮气锻控 僻唆喂殷俺 糟点英脾拈褐 番蓟话勤岩 药蒸滩桩喉胜 镇碌逃井遮 健抑仆轴黄 酒靴巍寄蹦乃 影匪学娄光 歉矽爱刃纷藕 嗽比落哈粗 呆淬楷婶沟 ...