「java的五子棋」java的五子棋游戏的设计实现报告
本篇文章给大家谈谈java的五子棋,以及java的五子棋游戏的设计实现报告对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:
java五子棋问题
你好:
我给你讲下思路吧。你可以用0表示没有 棋子,1代表黑棋,2代表白棋。然后"int [][] allChess = new int[19][19]; ",这个二维数组刚好表示空棋盘。你每下一个白棋,把该位置的值改为2,黑棋改为1。输赢判断,横向,如果allChess[x][y]的颜色跟allChess[x+i][y],i从1循环4,往左就减i。满足一个count++,count初始为一,因为从你点击的那个子开始算,至少有一个子连成一条线。关键来了,左上--右下方向 , 判断allChess[x][y]==allChess[x+i][y+i]?count++:count。
五子棋的Java算法
五子棋的算法是比较简单的。
把棋盘当作一个
2
维数组。
用2维数组来当作棋盘的坐标系
当落子
之后。
把落子,插入到
数组中
获得
棋盘
的数组,
循环刚才数组,
判断,
刚才
数组元素
的
横向坐标
-5
到刚才
数组元素坐标
+
5
是否都是
一个数字(黑子代表
1
,白子代表0)
只要其中
有连续
5个
都是
黑子,或者白子,
则黑子或白子
赢了。
判断,刚才元素
纵向坐标
-5
到
+
5
如上判断。
判断
右斜线。
判断
横向坐标
-5
y
-5
到
横向坐标
+
5
y
+
5
判断
y
+
5
x
+
5
到
y-5
x
-5
简单来说。
用2维数组
来代表
棋盘
,
每次在
界面上,
由白子,或黑子
落子之后,
在数组相应坐标,放入
1
或者0
。
然后循环数组判断,
数组横向
竖向
右斜线
左斜线
是否是
黑子或者白子
连续的。
如果是,则获胜。
用eclipse编写一个基于java的五子棋(与电脑对弈)
基于java的五子棋:
主要功能代码如下:
import java.awt.*;
import javax.swing.*;
import java.awt.event.*;
public class Main extends JFrame implements ActionListener{
private static final long serialVersionUID = 1L;
JButton[][] point=new JButton[40][40];
int[][] state=new int[40][40];
int[][] value=new int[40][40];
int[] place=new int[2];
public Main(){
this.setTitle("五子棋");
this.setBounds(100,10,1000,1000);
this.setLayout(new GridLayout(30,30));
int i,j;
for(i=0;i=39;i++){
for(j=0;j=39;j++){
state[i][j]=0;
value[i][j]=0;
}
}
for(i=5;i=34;i++){
for (j=5;j=34;j++){
point[i][j]=new JButton("");
this.add(point[i][j]);
point[i][j].addActionListener(this);
}
}
this.setVisible(true);
}
public void actionPerformed(ActionEvent e)
{
int i,j;
for(i=5;i=34;i++){
for(j=5;j=34;j++){
if(e.getSource()==point[i][j]){
point[i][j].setBackground(Color.RED);
state[i][j]=1;
point[i][j].setEnabled(false);
value[i][j]=0;
}
}
}
public static void main(String[] args)throws NullPointerException{
new Main();
}
else if(((state[i][j]==0)(state[i][j+1]==1)(state[i][j+2]==0))||
((state[i][j]==0)(state[i][j-1]==1)(state[i][j-2]==0))||
((state[i][j]==0)(state[i+1][j]==1)(state[i+2][j]==0))||
((state[i][j]==0)(state[i-1][j]==1)(state[i-2][j]==0))|| //空红空
((state[i][j]==0)(state[i+1][j+1]==1)(state[i+2][j+2]==0))||
((state[i][j]==0)(state[i+1][j-1]==1)(state[i+2][j-2]==0))||
((state[i][j]==0)(state[i-1][j+1]==1)(state[i-2][j+2]==0))||
((state[i][j]==0)(state[i-1][j-1]==1)(state[i-2][j-2]==0))||
((state[i][j]==0)(state[i][j+1]==1)(state[i][j+2]==1)(state[i][j+3]==2))||
((state[i][j]==0)(state[i][j-1]==1)(state[i][j-2]==1)(state[i][j-3]==2))||
((state[i][j]==0)(state[i+1][j]==1)(state[i+2][j]==1)(state[i+3][j]==2))||
((state[i][j]==0)(state[i-1][j]==1)(state[i-2][j]==1)(state[i-3][j]==2))|| //空红红蓝型
((state[i][j]==0)(state[i+1][j+1]==1)(state[i+2][j+2]==1)(state[i+3][j+3]==2))||
((state[i][j]==0)(state[i+1][j-1]==1)(state[i+2][j-2]==1)(state[i+3][j-3]==2))||
((state[i][j]==0)(state[i-1][j+1]==1)(state[i-2][j+2]==1)(state[i-3][j+3]==2))||
((state[i][j]==0)(state[i-1][j-1]==1)(state[i-2][j-2]==1)(state[i-3][j-3]==2))){
value[i][j]=2;
return value[i][j];
}
else if(((state[i][j]==0)(state[i][j+1]==2)(state[i][j+2]==0))||
((state[i][j]==0)(state[i][j-1]==2)(state[i][j-2]==0))||
((state[i][j]==0)(state[i+1][j]==2)(state[i+2][j]==0))||
((state[i][j]==0)(state[i-1][j]==2)(state[i-2][j]==0))||
((state[i][j]==0)(state[i+1][j+1]==2)(state[i+2][j+2]==0))||
((state[i][j]==0)(state[i+1][j-1]==2)(state[i+2][j-2]==0))||
((state[i][j]==0)(state[i-1][j+1]==2)(state[i-2][j+2]==0))||
((state[i][j]==0)(state[i-1][j-1]==2)(state[i-2][j-2]==0))||
((state[i][j]==0)(state[i][j+1]==2)(state[i][j+2]==2)(state[i][j+3]==1))||
((state[i][j]==0)(state[i][j-1]==2)(state[i][j-2]==2)(state[i][j-3]==1))||
((state[i][j]==0)(state[i+1][j]==2)(state[i+2][j]==2)(state[i+3][j]==1))||
((state[i][j]==0)(state[i-1][j]==2)(state[i-2][j]==2)(state[i-3][j]==1))||
((state[i][j]==0)(state[i+1][j+1]==2)(state[i+2][j+2]==2)(state[i+3][j+3]==1))||
((state[i][j]==0)(state[i+1][j-1]==2)(state[i+2][j-2]==2)(state[i+3][j-3]==1))||
((state[i][j]==0)(state[i-1][j+1]==2)(state[i-2][j+2]==2)(state[i-3][j+3]==1))||
((state[i][j]==0)(state[i-1][j-1]==2)(state[i-2][j-2]==2)(state[i-3][j-3]==1))){
value[i][j]=1;
return value[i][j];
}
else{
value[i][j]=0;
return value[i][j];
}
}
public int[] largestValue(int[][] value){
int max,i,j,l,k;
l=0;k=0;
max=0;
for(i=5;i34;i++){
for(j=5;j34;j++){
if(maxvalue[i][j]){
max=value[i][j];
place[0]=i;
place[1]=j;
}
}
}
return place;
}
}
运行结果如下图所示:
关于java的五子棋和java的五子棋游戏的设计实现报告的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。
发布于:2022-11-30,除非注明,否则均为
原创文章,转载请注明出处。