java五子棋小程序.docx

上传人:b****8 文档编号:11209433 上传时间:2023-02-25 格式:DOCX 页数:23 大小:33.27KB
下载 相关 举报
java五子棋小程序.docx_第1页
第1页 / 共23页
java五子棋小程序.docx_第2页
第2页 / 共23页
java五子棋小程序.docx_第3页
第3页 / 共23页
java五子棋小程序.docx_第4页
第4页 / 共23页
java五子棋小程序.docx_第5页
第5页 / 共23页
点击查看更多>>
下载资源
资源描述

java五子棋小程序.docx

《java五子棋小程序.docx》由会员分享,可在线阅读,更多相关《java五子棋小程序.docx(23页珍藏版)》请在冰豆网上搜索。

java五子棋小程序.docx

java五子棋小程序

Java五子棋小程序

简介:

Java五子棋小程序,送给Java初学者学习提高兴趣与学习所用,希望能给大家带来一些帮助。

此程序用Java语言编写,采用swing技术开发界面,采用触发模式进行键盘事件监听,原本设计与台式机全键盘使用,所以白棋选手落子采用数字键盘0键,经过本人改进后,也可使用‘/’键进行落子。

如出现运行后无图案现象,请双击标题栏最大化后方可出现图案,然后再还原。

最后感谢大家支持!

1.程序运行效果

2.Myeclipse根目录

3.所有应用图片

1)black.png

2)white.png

3)space.gif

4)num0.gif

5)red.png

6)mbi_user.gif

7)mbi_D.gif

8)mbi_L.gif

9)mbi_R.gif

10)mbi_U.gif

11)qipan.jpg

4.所有类

1)运行类

package;

publicclassRunGame{

/**

*@paramargs

*/

publicstaticvoidmain(String[]args){

newGame();

"程序运行");

}

}

2)主程序类

package;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

import;

publicclassGameextendsJFrameimplementsKeyListener,ActionListener{

privateJPanelmainPanel=null;

privateJLabel[][]baizi=null;

privateJLabel[][]heizi=null;

privateMyLabelbiankuang=null;

privatePosition[][]pos=null;

privateJLabeluser=null;

privateJPanelrightPanel=null;

privateJLabelhei,heiU,heiD,heiL,heiR,heiC;

privateJLabelbai,baiU,baiD,baiL,baiR,baiC;

privateJLabeltimeL,time;//显示时间

privateTimertimer;

privateintmnt=0,scd=0;//分、秒

privateJMenuBarmenuBar;

privateJMenumenuE,menuH;

privateJMenuItemmenuItemCZ;

/**

*初始化主视窗

*

*/

privatevoidInitLabel(){

Containercon=this.getContentPane();

con.setLayout(null);

this.mainPanel=newMainPanel();

0,609,608);

;

con.add(this.mainPanel);

this.rightPanel=newJPanel();

0,180,608);

;

;

con.add(this.rightPanel);

this.user=newJLabel(newImageIcon("./img/mbi_user.gif"));

25,40,40);

;

/**

*初始化所有点

*给每个点上都放置一个黑子、一个白子,设置棋子为不可见

*/

this.pos=newPosition[13][13];

this.heizi=newJLabel[13][13];

this.baizi=newJLabel[13][13];

for(inti=0;i<13;i++){

for(intj=0;j<13;j++){

pos[i][j]=newPosition();

pos[i][j].setX(j);

pos[i][j].setY(i);

pos[i][j].setLabel_Status(0);

this.heizi[i][j]=newJLabel(newImageIcon("./img/black.png"));

this.heizi[i][j].setBounds(63+36*i,64+36*j,45,45);

this.heizi[i][j].setVisible(false);

;

this.baizi[i][j]=newJLabel(newImageIcon("./img/white.png"));

this.baizi[i][j].setBounds(63+36*i,64+36*j,45,45);

this.baizi[i][j].setVisible(false);

;

}

}

//添加边框

this.biankuang=newMyLabel();

280,45,45);

;

this.addKeyListener((KeyListener)this);

}

/**

*初始化右视窗

*

*/

privatevoidinitRightP(){

this.hei=newJLabel(newImageIcon("./img/black.png"));

20,40,40);

;

this.heiU=newJLabel("W");

ImageIcon("./img/mbi_U.gif"));

60,40,40);

;

this.heiL=newJLabel("A");

ImageIcon("./img/mbi_L.gif"));

100,40,40);

;

this.heiD=newJLabel("S");

ImageIcon("./img/mbi_D.gif"));

100,40,40);

;

this.heiR=newJLabel("D");

ImageIcon("./img/mbi_R.gif"));

100,40,40);

;

this.heiC=newJLabel(newImageIcon("./img/space.gif"));

140,60,30);

;

this.bai=newJLabel(newImageIcon("./img/white.png"));

210,40,40);

;

this.baiU=newJLabel("↑");

ImageIcon("./img/mbi_U.gif"));

250,40,40);

;

this.baiL=newJLabel("←");

ImageIcon("./img/mbi_L.gif"));

290,40,40);

;

this.baiD=newJLabel("↓");

ImageIcon("./img/mbi_D.gif"));

290,40,40);

;

this.baiR=newJLabel("→");

ImageIcon("./img/mbi_R.gif"));

290,40,40);

;

this.baiC=newJLabel(newImageIcon("./img/num0.gif"));

330,60,30);

;

this.timeL=newJLabel("时间:

");

450,40,20);

;

this.time=newJLabel("00:

00");

;

450,60,20);

;

}

/**

*添加time监听对时间进行运算

*

*/

privatevoidinitTime(){

ActionListenerkeepTime=newActionListener(){

publicvoidactionPerformed(ActionEvente){

scd++;

/**

*对时间进行计算

*scd等于60秒时清零mnt加1

*/

if(scd>=60){

scd=0;

mnt++;

}

Stringstr="";

if(mnt<10){

str="0"+mnt+":

";

}else{

str=mnt+":

";

}

if(scd<10){

str=str+"0"+scd;

}else{

str=str+scd;

}

time.setText(str);

}

};

this.timer=newTimer(1000,keepTime);

;

}

//菜单初始化

privatevoidinitMenu(){

this.menuBar=newJMenuBar();

this.menuE=newJMenu("菜单(E)");

this.menuH=newJMenu("帮助(H)");

this.menuItemCZ=newJMenuItem("重置");

InputEvent.CTRL_MASK));

;

;

;

;

setJMenuBar(this.menuBar);

}

/**

*当从键盘得到响应时改变边框位置

*

*/

privatevoidsetBiankuang(){

+36*,

64+36*;

}

/**

*重新初始化,隐藏所有棋子,所有位置状态清零,边框回到原来位置

*

*/

privatevoidinitAll(){

this.mnt=0;

this.scd=0;

for(inti=0;i<13;i++){

for(intj=0;j<13;j++){

pos[i][j].setLabel_Status(0);

this.heizi[i][j].setVisible(false);

this.baizi[i][j].setVisible(false);

}

}

280,45,45);

;//边框初始化

25);

;//重新开始计时

}

/**

*胜利显示

*

*/

privatevoidshowOver(){

;

if(==1){

JOptionPane.showMessageDialog(this,"黑方获胜!

");

}elseif(==2){

JOptionPane.showMessageDialog(this,"白方获胜!

");

}

intflag=JOptionPane.showConfirmDialog(this,"再来一局吧!

","消息",JOptionPane.YES_NO_OPTION);

if(flag==JOptionPane.YES_OPTION){

this.initAll();

}else{

this.dispose();

}

}

/**

*判断游戏是否结束

*@paramx当前落子x坐标

*@paramy当前落子y坐标

*/

privatevoidgameOver(intx,inty){

intstaNum=0;

/**

*向右下方检查是否形成五连子↘

*/

for(inti=x-4,j=y-4;i

if(i>=0&&i<=12&&j>=0&&j<=12){

if(this.pos[i][j].getLabel_Status()=={

staNum++;

"↘staNum="+staNum);

if(staNum==5){

this.showOver();

//;

//if(this.pos[i][j].getLabel_Status()==1){

//JOptionPane.showMessageDialog(this,"黑方获胜!

");

//"↘黑子获胜!

");

//}

//if(this.pos[i][j].getLabel_Status()==2){

//JOptionPane.showMessageDialog(this,"白方获胜!

");

//"↘白子获胜!

");

//}

}

}else{

staNum=0;

}

}

}

/**

*向右方检查是否形成五连子→

*/

for(inti=x-4,j=y;i

if(i>=0&&i<=12&&j>=0&&j<=12){

if(this.pos[i][j].getLabel_Status()=={

staNum++;

"→staNum="+staNum);

if(staNum==5){

this.showOver();

//;

//if(this.pos[i][j].getLabel_Status()==1){

//JOptionPane.showMessageDialog(this,"黑方获胜!

");

//"→黑子获胜!

");

//}

//if(this.pos[i][j].getLabel_Status()==2){

//JOptionPane.showMessageDialog(this,"白方获胜!

");

//"→白子获胜!

");

//}

}

}else{

staNum=0;

}

}

}

/**

*向右上方检查是否形成五连子↗

*/

for(inti=x-4,j=y+4;i

if(i>=0&&i<=12&&j>=0&&j<=12){

if(this.pos[i][j].getLabel_Status()=={

staNum++;

"↗staNum="+staNum);

if(staNum==5){

this.showOver();

//;

//if(this.pos[i][j].getLabel_Status()==1){

//JOptionPane.showMessageDialog(this,"黑方获胜!

");

//"↗黑子获胜!

");

//}

//if(this.pos[i][j].getLabel_Status()==2){

//JOptionPane.showMessageDialog(this,"白方获胜!

");

//"↗白子获胜!

");

//}

}

}else{

staNum=0;

}

}

}

/**

*向下方检查是否形成五连子↓

*/

for(inti=x,j=y-4;j

if(i>=0&&i<=12&&j>=0&&j<=12){

if(this.pos[i][j].getLabel_Status()=={

staNum++;

"↓staNum="+staNum);

if(staNum==5){

this.showOver();

//;

//if(this.pos[i][j].getLabel_Status()==1){

//JOptionPane.showMessageDialog(this,"黑方获胜!

");

//"↓黑子获胜!

");

//}

//if(this.pos[i][j].getLabel_Status()==2){

//JOptionPane.showMessageDialog(this,"白方获胜!

");

//"↓白子获胜!

");

//}

}

}else{

staNum=0;

}

}

}

}

publicGame(){

initMenu();

InitLabel();

initRightP();

initTime();

this.setVisible(true);

this.setBounds(400,150,800,664);

this.setTitle("五子棋");

this.setDefaultCloseOperation(this.EXIT_ON_CLOSE);

}

publicvoidkeyPressed(KeyEvente){

//设置边框移动

if(==1){

switch(e.getKeyCode()){

caseKeyEvent.VK_W:

if(>0){

;

this.setBiankuang();

}

break;

caseKeyEvent.VK_S:

if(<12){

;

this.setBiankuang();

}

break;

caseKeyEvent.VK_A:

if(>0){

;

this.setBiankuang();

}

break;

caseKeyEvent.VK_D:

if(<12){

;

this.setBiankuang();

}

break;

caseKeyEvent.VK_SPACE:

if(this.pos[==0){

this.heizi[;

this.repaint();

this.pos[;

this.gameOver(,;

;

215);

}

break;

default:

break;

}

}elseif(==2){

switch(e.getKeyCode()){

caseKeyEvent.VK_UP:

if(>0){

;

this.setBiankuang();

}

break;

caseKeyEvent.VK_DOWN:

if(<12){

;

this.setBiankuang();

}

break;

caseKeyEvent.VK_LEFT:

if(>0){

;

this.setBiankuang();

}

break;

caseKeyEvent.VK_RIGHT:

if(<12){

;

this.setBiankuang();

break;

}

caseKeyEvent.VK_NUMPAD0:

if(this.pos[==0){

this.baizi[;

this.repaint();

this.pos[;

this.gameOver(,;

;

25);

break;

}

caseKeyEvent.VK_SLASH:

if(this.pos[==0){

this.baizi[;

this.repaint();

this.pos[;

this.gameOver(,;

;

25);

break;

}

default:

break;

}

}

}

publicvoidkeyReleased(KeyE

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 哲学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1