`

用Java编写的五子棋小程序

 
阅读更多

import java.applet.*;
import java.awt.*;
import java.awt.event.*;
import java.applet.Applet;
import java.awt.Color;

public class wu7ziqi extends Applet implements ActionListener,MouseListener,MouseMotionListener,ItemListener
{
int color_Qizi=0;//旗子的颜色标识 0:白子 1:黑子
int intGame_Start=0;//游戏开始标志 0未开始 1游戏中
int intGame_Body[][]=new int[16][16]; //设置棋盘棋子状态 0 无子 1 白子 2 黑子

Button b1=new Button("游戏开始");
Button b2=new Button("重置游戏");
Label lblWin=new Label(" ");
Checkbox ckbHB[]=new Checkbox[2];
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);
ckbHB[0]=new Checkbox("白子先",ckgHB,false);
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,130,80,30);

Game_start_csh();
}

public void itemStateChanged(ItemEvent e)
{
if (ckbHB[0].getState()) //选择黑子先还是白子先
{
color_Qizi=0;
}
else
{
color_Qizi=1;
}
}

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

public void mousePressed(MouseEvent e){}

public void mouseClicked(MouseEvent e)
{
Graphics g=getGraphics();
int x1,y1;
x1=e.getX();
y1=e.getY();
if (e.getX()<20 || e.getX()>300 || e.getY()<20 || e.getY()>300)
{
return;
}

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

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

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

}

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){}

public void paint(Graphics g)
{
draw_qipan(g);
}

public void set_Qizi(int x,int y) //落子
{
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;


if (Game_win_1(x/20,y/20)) //判断输赢
{
lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");
intGame_Start=0;
}

if (Game_win_2(x/20,y/20)) //判断输赢
{
lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");
intGame_Start=0;
}

if (Game_win_3(x/20,y/20)) //判断输赢
{
lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");
intGame_Start=0;
}

if (Game_win_4(x/20,y/20)) //判断输赢
{
lblWin.setText(Get_qizi_color(color_Qizi)+"赢了!");
intGame_Start=0;
}
}

public String Get_qizi_color(int x)
{
if (x==0)
{
return "黑子";
}
else
{
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<16;i++)
{
G.drawLine(20,20*i,300,20*i);
G.drawLine(20*i,20,20*i,300);
}
}

public void Game_start() //游戏开始
{
intGame_Start=1;
Game_btn_enable(false);
b2.setEnabled(true);
}

public void Game_start_csh() //游戏开始初始化
{

intGame_Start=0;
Game_btn_enable(true);
b2.setEnabled(false);
ckbHB[0].setState(true);

for (int i=0;i<16 ;i++ )
{
for (int j=0;j<16 ;j++ )
{
intGame_Body[i][j]=0;
}
}
lblWin.setText("");
}

public void Game_re() //游戏重新开始
{
repaint();
Game_start_csh();
}

public void Game_btn_enable(boolean e) //设置组件状态
{
b1.setEnabled(e);
b2.setEnabled(e);
ckbHB[0].setEnabled(e);
ckbHB[1].setEnabled(e);
}

public boolean Game_win_1(int x,int y) //判断输赢 横
{
int x1,y1,t=1;
x1=x;
y1=y;

for (int i=1;i<5 ;i++ )
{
if (x1>15)
{
break;
}
if (intGame_Body[x1+i][y1]==intGame_Body[x][y])
{
t+=1;
}
else
{
break;
}

}

for (int i=1;i<5 ;i++ )
{
if (x1<1)
{
break;
}

if(intGame_Body[x1-i][y1]==intGame_Body[x][y])
{
t+=1;
}
else
{
break;
}
}

if (t>4)
{
return true;
}
else
{
return false;
}
}

public boolean Game_win_2(int x,int y) //判断输赢 竖
{
int x1,y1,t=1;
x1=x;
y1=y;

for (int i=1;i<5 ;i++ )
{
if (x1>15)
{
break;
}
if (intGame_Body[x1][y1+i]==intGame_Body[x][y])
{
t+=1;
}
else
{
break;
}

}

for (int i=1;i<5 ;i++ )
{
if (x1<1)
{
break;
}

if(intGame_Body[x1][y1-i]==intGame_Body[x][y])
{
t+=1;
}
else
{
break;
}
}

if (t>4)
{
return true;
}
else
{
return false;
}
}

public boolean Game_win_3(int x,int y) //判断输赢 左斜
{
int x1,y1,t=1;
x1=x;
y1=y;

for (int i=1;i<5 ;i++ )
{
if (x1>15)
{
break;
}
if (intGame_Body[x1+i][y1-i]==intGame_Body[x][y])
{
t+=1;
}
else
{
break;
}

}

for (int i=1;i<5 ;i++ )
{
if (x1<1)
{
break;
}

if(intGame_Body[x1-i][y1+i]==intGame_Body[x][y])
{
t+=1;
}
else
{
break;
}
}

if (t>4)
{
return true;
}
else
{
return false;
}
}

public boolean Game_win_4(int x,int y) //判断输赢 左斜
{
int x1,y1,t=1;
x1=x;
y1=y;

for (int i=1;i<5 ;i++ )
{
if (x1>15)
{
break;
}
if (intGame_Body[x1+i][y1+i]==intGame_Body[x][y])
{
t+=1;
}
else
{
break;
}

}

for (int i=1;i<5 ;i++ )
{
if (x1<1)
{
break;
}

if(intGame_Body[x1-i][y1-i]==intGame_Body[x][y])
{
t+=1;
}
else
{
break;
}
}


if (t>4)
{
return true;
}
else
{
return false;
}
}
}

分享到:
评论

相关推荐

    JAVA编写五子棋游戏

    【JAVA编写五子棋游戏】 在Java编程领域,开发一款五子棋游戏是一个经典的学习项目,它涵盖了事件处理、图形用户界面(GUI)设计以及基本的算法应用等核心概念。这款个人编写的Java五子棋游戏是初学者提升技能、...

    Java五子棋小程序

    【Java五子棋小程序】是一个基于Java编程语言开发的小型游戏应用,主要目的是提供一个娱乐性的五子棋对战平台。这个小程序设计简洁,易于上手,适合初级和中级Java开发者学习和研究。 在Java中,开发这样的五子棋...

    java编的五子棋小程序

    Java编写的五子棋小程序是一个非常适合初学者入门的项目,它涵盖了基础的编程概念和Java语言特性。在本文中,我们将深入探讨这个项目的相关知识点,包括Java编程基础、图形用户界面(GUI)设计、事件处理以及游戏...

    用java编写的简单五子棋小程序

    简单 五子棋的客户端部分程序 //chessClient.java:客户端主程序。 //userPad.java:客户端的界面。 //chessPad.java:棋盘的绘制。 //chessServer.java:服务器端。 //可同时容纳50个人同时在线下棋,聊天。 import ...

    java写的小程序五子棋

    在Java编程语言中,开发一个五子棋小程序涉及到多个核心知识点。下面将详细解析这些关键概念和步骤: 1. **基础语法与环境搭建**:Java是面向对象的编程语言,编写程序前需安装JDK(Java Development Kit)并设置...

    java编写的五子棋的程序

    本程序是一个使用Java语言实现的五子棋游戏,主要涉及图形用户界面(GUI)的设计和事件处理。程序基于AWT库,利用JFrame类创建窗口,并通过MouseListener、MouseMotionListener和ItemListener接口来实现用户交互。 ...

    JAVA小程序,JAVA五子棋小游戏

    【JAVA小程序:JAVA五子棋小游戏】 JAVA是一种广泛使用的编程语言,特别适合开发桌面应用程序,如小游戏。五子棋是一款简单而有趣的双人对战游戏,非常适合初学者进行编程实践。在这个项目中,我们将深入探讨如何用...

    使用java编写简易版五子棋小游戏

    在本项目中,"使用Java编写简易版五子棋小游戏"是一个典型的计算机编程实践,它主要涉及以下几个核心知识点: 1. **Java编程语言**: Java是一种跨平台、面向对象的编程语言,广泛应用于软件开发,包括游戏开发。在...

    Java编写的五子棋游戏

    Java编写的五子棋小游戏,附有完整的代码,还有详细分步的程序说明

    java五子棋游戏程序

    【描述】:“这是一个用Java编程语言实现的五子棋游戏小程序。它的存在主要是为了供学习和交流之用,让大家能够了解并研究其内部逻辑,以此来提升自己的编程技能。” 【标签】:“java” - Java是一种广泛使用的...

    JAVA编写的简单的五子棋程序

    从给定的文件信息来看,这是一个使用Java语言编写的五子棋程序,主要涉及了Java图形用户界面(GUI)编程的基础知识,包括事件处理、组件使用以及游戏逻辑的实现。下面将详细介绍这些知识点: ### 1. Java GUI编程...

    java实现五子棋小游戏

    【Java实现五子棋小游戏】是一个适合初学者的项目,旨在帮助那些正在学习Java编程的人提升技能并理解面向对象编程的基本概念。这个小游戏是通过Java语言编写的,它提供了两个玩家之间的互动,允许他们在虚拟棋盘上...

    java_五子棋 实习报告

    【Java五子棋实习报告】主要探讨了使用Java编程语言设计和实现五子棋游戏的过程,包括人机对战和玩家间的联网对战功能。在报告中,作者详细阐述了五子棋游戏的背景和历史,以及选择Java作为开发语言的原因。Java因其...

    五子棋 java 小程序

    【五子棋 Java 小程序】是一个基于Java编程语言实现的简单游戏应用,它允许用户在计算机上玩经典的五子棋游戏。这个程序已经完成了编译过程,用户可以直接运行而无需进行额外的编译步骤,这大大简化了用户体验。不仅...

    java编写的简单五子棋

    【标题】"java编写的简单五子棋"揭示了这个项目是使用Java编程语言实现的一个五子棋游戏。五子棋是一种双人对弈的策略型棋类游戏,玩家通过在棋盘上交替放置黑白棋子,目标是先形成连续五颗同色棋子的直线(水平、...

    java 小程序.(五子棋_)

    用java编写的五子棋........................

    java入门五子棋代码

    java编写五子棋的代码,成功运行。整体代码结构是,画棋盘,插背景,添响应事件,加逻辑规则,比较简单。 注意要改背景图片的相对路径!

Global site tag (gtag.js) - Google Analytics