五子棋双人和人机
我,咕咕咕咕咕士奇又回来了!最近刚刚写完魔塔小游戏,虽然还有些粗糙(笑)。准备开始学通信和python了,所以在这段时间我会放放以前的代码(或者看情况边学边放最新的,同步一下)。
话说,我翻了一下以前的代码,发现,我居然不写注释!!我错了……
我咕士奇,就算饿死!!从这跳下去!!也绝对再也不会不写注释了!!!!
这个五子棋小程序比较简单,功能包括双人游戏,人机,认输,悔棋,重新开始
然后,我就直接贴代码啦
package mywuziqi;
import java.awt.Color;
import java.awt.Dimension;
import java.awt.FlowLayout;
import java.awt.Graphics;
import java.awt.event.ActionListener;
import javax.swing.ImageIcon;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
public class showappear extends JFrame implements tableInfo {
/**
* 这个类就是画出来选项和棋盘啦
*/
public void showUI(){
this.setTitle("我的魔性五子棋");
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
this.setLocationRelativeTo(null);
this.setLayout(new FlowLayout());
this.setResizable(false);
this.setSize(600,650);
DrawLinstener drawL=new DrawLinstener(this);
this.addMouseListener(drawL);
//设置按钮
String[] textarry={"重新开始","双人游戏","悔棋","认输","人机对战"};
JButton button;
for(int i=0;i<textarry.length;i++)
{
button=new JButton(textarry[i]);
this.add(button);
button.addActionListener(drawL);
}
this.setVisible(true);
}
public void paint(Graphics g)
{
super.paint(g);
drawTable(g);
}
public void drawTable(Graphics g)
{
for(int i=0;i<R;i++)
g.drawLine(X,Y+i*SIZE,X+(R-1)*SIZE,Y+i*SIZE);
for(int p=0;p<C;p++)
g.drawLine(X+p*SIZE, Y+(C-1)*SIZE, X+p*SIZE, Y);
for(int i=0;i<15;i++)
for(int j=0;j<15;j++)
{
if(Chess.tableInfo[i][j]==1)
{g.setColor(Color.black); g.fillOval(Chess.rTable[j]-15,Chess.cTable[i]-15, CHESS_SIZE,CHESS_SIZE);}
if(Chess.tableInfo[i][j]==2)
{g.setColor(Color.white);
g.fillOval(Chess.rTable[j]-15,Chess.cTable[i]-15, CHESS_SIZE,CHESS_SIZE);}
}
}
public static void main(String args[])
{
showappear UI=new showappear();
UI.showUI();
}
}
package mywuziqi;
public interface tableInfo {
/**
* 设置棋子大小,棋盘间隙大小
*/
public static final int X=35,Y=80,R=15,C=15,CHESS_SIZE=30,SIZE=35;
}
package mywuziqi;
import java.awt.Color;
import java.awt.Graphics;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;
public class DrawLinstener extends MouseAdapter implements tableInfo,ActionListener{
public showappear UI;
public Graphics g;
int flag=1,x,y,k;
String nametype;
winjframe ui;
int count=1;
int model;//双人还是人机
static boolean condition=true;//判断胜利后是否还要画子
public void actionPerformed(ActionEvent e){
String action=e.getActionCommand();
nametype=action;
if("认输".equals(nametype)) {
if(flag==1) {//黑棋认输
winjframe.showUIWhite();
}
else{
winjframe.showUIBlack();
}
}
if("双人游戏".equals(nametype)) {
condition=true;
}
if("人机对战".equals(nametype)) {
condition=true;
}
if("重新开始".equals(nametype)) {
restart();
}
if("悔棋".equals(nametype))
{
if(g==null)
{
g=UI.getGraphics();
}
if(Chess.num>0&&model==1) {
int thelast;
thelast=Chess.allChess[Chess.num-1];
Chess.num--;
int newr=0,newc=0;
newr=thelast/15;
newc=thelast%15;
Chess.tableInfo[newr][newc]=0;
newchoice();
if(Chess.num%2==0) flag=1;
else flag=0;
nametype="双人游戏";
}
if(Chess.num>0&&model==2) {
int thelastplayer;
int thelastcomputer;
thelastplayer=Chess.allChess[Chess.num-1];
thelastcomputer=Chess.allChess[Chess.num-2];
Chess.num-=2;
int newrplayer=0,newcplayer=0;
int newrcomputer=0,newccomputer=0;
newrplayer=thelastplayer/15;
newcplayer=thelastplayer%15;
Chess.tableInfo[newrplayer][newcplayer]=0;
newrcomputer=thelastcomputer/15;
newccomputer=thelastcomputer%15;
Chess.tableInfo[newrcomputer][newccomputer]=0;
newchoice();
flag=1;
}
}
}
public DrawLinstener(showappear UI) {
this.UI=UI;
}
public void mouseClicked(MouseEvent e){
}
public void mousePressed(MouseEvent e){
x=e.getX();
y=e.getY();
}
public void mouseReleased(MouseEvent e) {
if(g==null)
{
g=UI.getGraphics();
}
if("双人游戏".equals(nametype)&&condition){
model=1;
Chess.save();
if(flag==1) {
g.setColor(Color.black);
k=Chess.judge(x,y);
if(Chess.again()==0){
g.fillOval(Chess.Table[k][0]-14,Chess.Table[k][1]-17, CHESS_SIZE,CHESS_SIZE);
Chess.setChess(flag);
Chess.saveChess();
flag=0;
k=winandfail.winner();
if(k==0){}
else ui.showUIBlack();}
else flag=1;
}
else {
g.setColor(Color.white);
k=Chess.judge(x,y);
if(Chess.again()==0){
g.fillOval(Chess.Table[k][0]-15,Chess.Table[k][1]-15 , CHESS_SIZE,CHESS_SIZE);
Chess.setChess(flag);
Chess.saveChess();
flag=1;
k=winandfail.winner();
if(k==0){}
else ui.showUIWhite();
}
else flag=0;
}
}
if("人机对战".equals(nametype)&&condition)
{
model=2;
Chess.save();
g.setColor(Color.black);
k=Chess.judge(x,y);
if(Chess.again()==0)
{
g.fillOval(Chess.Table[k][0]-15,Chess.Table[k][1]-15 , CHESS_SIZE,CHESS_SIZE);
Chess.setChess(1);
Chess.saveChess();
k=winandfail.winner();
if(k==0){}
else ui.showUIBlack();
AI.recreate();
AI.create();
AI.gon(Chess.tableInfo);
AI.makeChess();
g.setColor(Color.white);
g.fillOval(Chess.rTable[AI.q]-15,Chess.cTable[AI.p]-15,CHESS_SIZE,CHESS_SIZE);
Chess.setChessAI();
Chess.saveChessAI();
k=winandfail.winner();
if(k==0){}
else ui.showUIWhite();
}
}
}
public void newchoice() {
Color backgroundcolor;
backgroundcolor=UI.getBackground();
g.setColor(backgroundcolor);
g.fillRect(0, 58, 600, 620);
g.setColor(Color.BLACK);
for(int i=0;i<R;i++)
g.drawLine(X,Y+i*SIZE,X+(R-1)*SIZE,Y+i*SIZE);
for(int p=0;p<C;p++)
g.drawLine(X+p*SIZE, Y+(C-1)*SIZE, X+p*SIZE, Y);
for(int i=0;i<15;i++)
{for(int j=0;j<15;j++)
{
if(Chess.tableInfo[i][j]==1)
{g.setColor(Color.black); g.fillOval(Chess.rTable[j]-15,Chess.cTable[i]-15, CHESS_SIZE,CHESS_SIZE);}
if(Chess.tableInfo[i][j]==2)
{g.setColor(Color.white);
g.fillOval(Chess.rTable[j]-15,Chess.cTable[i]-15, CHESS_SIZE,CHESS_SIZE);}
}
}
}
public void restart() {
Chess.num=0;
Color backgroundcolor;
backgroundcolor=UI.getBackground();
g.setColor(backgroundcolor);
g.fillRect(0, 58, 600, 620);
g.setColor(Color.BLACK);
for(int i=0;i<R;i++)
g.drawLine(X,Y+i*SIZE,X+(R-1)*SIZE,Y+i*SIZE);
for(int p=0;p<C;p++)
g.drawLine(X+p*SIZE, Y+(C-1)*SIZE, X+p*SIZE, Y);
}
}
package mywuziqi;
import java.lang.Math;
import java.lang.Double;
public class Chess implements tableInfo {
/**
* 棋子类
* tableinfo[][]存储所有棋子状态,0代表没有旗子,1代表黑棋,2代表白棋
* allchess[][]存储所有旗子的位置,根据行列换算成0-255之间的一个数
* table[][]存储,鼠标点击位置旁边的四个交叉点
*/
int min=0;
static int[] rTable=new int[15];
static int[] cTable=new int[15];
static int[][] Table=new int[4][2];
static int[] allChess=new int[225];
static int p=0,q=0,r=0,c=0;
static int num=0,time =0,k=0;
static int[][] tableInfo=new int[15][15];
public static void save()
{
int i,j;
for(i=0;i<15;i++)
{
rTable[i]=35+i*35;
cTable[i]=80+i*35;
}
}
public static void setChess(int flag)
{
if(flag==1)
tableInfo[r][c]=1;
if(flag==0)
tableInfo[r][c]=2;
}
public static void setChessAI()
{
tableInfo[AI.p][AI.q]=2;
}
public static int judge(int x,int y)//落在交叉点
{
int r1=0,r2=0,c1=0,c2=0;
double min=1000;
if(x<35||x>525||y<80||y>570) return 0;
for(int i=0;i<15;i++)
{
if(rTable[i]>x)
{
r1=rTable[i-1];
r2=rTable[i];
break;
}
}
for(int i=0;i<15;i++)
{
if(cTable[i]>y)
{
c1=cTable[i-1];
c2=cTable[i];
break;
}
}
Table[0][0]=r1;Table[0][1]=c1;Table[1][0]=r1;Table[1][1]=c2;
Table[2][0]=r2;Table[2][1]=c1;Table[3][0]=r2;Table[3][1]=c2;
for(int i=0;i<4;i++)
{
for(int j=0;j<2;j++)
{
if(j==0) p=Table[i][j];
if(j==1)
{ q=Table[i][j];
if(Math.sqrt((p-x)*(p-x)+(q-y)*(q-y))<min)
{min=Math.sqrt((p-x)*(p-x)+(q-y)*(q-y));k=i;}
}
}
}
for(int i=0;i<15;i++)
if(Table[k][0]==rTable[i]) c=i;
for(int j=0;j<15;j++)
if(Table[k][1]==cTable[j]) r=j;
return k;
}
//不让旗子落在一个点
public static int again()
{
if(tableInfo[r][c]==0) return 0;
else return 1;
}
public static void saveChess()
{
int memx=0,memy=0;
for(int i=0;i<15;i++)
{
if(Table[k][0]==rTable[i]) memx=i;
if(Table[k][1]==cTable[i]) memy=i;
}
allChess[num]=memy*15+memx;
num++;
}
public static void saveChessAI() {
//System.out.println("AIPQ="+p+" "+q);
//System.out.println("AIPQ="+" "+hang);
allChess[num]=AI.p*15+AI.q;
num++;
}
}
package mywuziqi;
import java.util.Arrays;
import java.util.HashMap;
public class AI {
/**
* 这个类就是人机对战(可能只能战胜新手)
* weightArry为权值记录数组,权值最大即为最优选择
*/
static HashMap<String, Integer> map = new HashMap<>();
static int weightArry[][] = new int[15][15];
static int m, p, q;
static int n;
static int max = 0;
public static void create() {
map.put(null, 0);
map.put("20", 100);// 自己一连
map.put("220", 200);// 自己二连
map.put("2220", 20000);// 自己三连
map.put("22220", 2000000);// 自己四联
map.put("10", 10);// 对方一连
map.put("110", 150);// 对方二连
map.put("1110", 15000);// 对方三连
map.put("11110", 1500000);// 对方四联
map.put("21", 70);//自己死一
map.put("221", 180);//自己死二
map.put("2221", 17000);//自己死三
map.put("22221", 1500000);//自己死四
map.put("12",5);//对方死一
map.put("112",130);//对方死二
map.put("1112",12000);//对方死三
map.put("11112",1200000);//对方死四
map.put("12", 70);
map.put("122", 180);
map.put("1222", 1700);
map.put("12222", 1500000);
/**
* 目前还不能实现
*/
map.put("1011",15000);//对方三连
map.put("1101", 15000);//对方三联
}
public static void recreate() {
for (int i = 0; i < 15; i++)
for (int j = 0; j < 15; j++)
weightArry[i][j] = 0;
}
public static void gon(int[][] tableInfo) {
int i, j = 0;
for (i = 0; i < tableInfo.length; i++)
for (j = 0; j < tableInfo[i].length; j++) {
if (tableInfo[i][j] != 0) {
continue;
}
left(i, j, tableInfo);
right(i, j, tableInfo);
up(i, j, tableInfo);
down(i, j, tableInfo);
lup(i, j, tableInfo);
rup(i, j, tableInfo);
ldowm(i, j, tableInfo);
rdowm(i, j, tableInfo);
}
makeChess();
}
private static void rdowm(int i, int j, int[][] tableInfo) {
String qiju = "";// 用012记录棋局
int chesscolor = 0;// 记录相邻的棋子的颜色
int k, l;
for (k = i + 1, l = j + 1; k < tableInfo.length && l < tableInfo.length; k++, l++) { // 如果相邻为空
if (k == i + 1 && l == j + 1 && tableInfo[k][l] == 0) {
break;
}
// 记录相邻的棋子颜色
if (k == i + 1 && l == j + 1) {
chesscolor = tableInfo[k][l];// 记录棋子的颜色
qiju += tableInfo[k][l];// 记录整个棋局
} else if (chesscolor == tableInfo[k][l]) // 棋子和左边的颜色一样
{
qiju += tableInfo[k][l];
} else if (chesscolor != tableInfo[k][l]) // 棋子和左边的亚瑟不一样
{
qiju += tableInfo[k][l];
break;
}
}
Integer weight = map.get(qiju);
if (weight != null) {
weightArry[i][j] += weight;
}
}
private static void ldowm(int i, int j, int[][] tableInfo) {
String qiju = "";// 用012记录棋局
int chesscolor = 0;// 记录相邻的棋子的颜色
int k, l;
for (k = i + 1, l = j - 1; k < tableInfo.length && l > -1; k++, l--) { // 如果相邻为空
if (k == i + 1 && l == j - 1 && tableInfo[k][l] == 0) {
break;
}
// 记录相邻的棋子颜色
if (k == i + 1 && l == j - 1) {
chesscolor = tableInfo[k][l];// 记录棋子的颜色
qiju += tableInfo[k][l];// 记录整个棋局
} else if (chesscolor == tableInfo[k][l]) // 棋子和左边的颜色一样
{
qiju += tableInfo[k][l];
} else if (chesscolor != tableInfo[k][l]) // 棋子和左边的亚瑟不一样
{
qiju += tableInfo[k][l];
break;
}
}
Integer weight = map.get(qiju);
if (weight != null) {
weightArry[i][j] += weight;
}
}
private static void rup(int i, int j, int[][] tableInfo) {
String qiju = "";// 用012记录棋局
int chesscolor = 0;// 记录相邻的棋子的颜色
int k, l;
for (k = i - 1, l = j + 1; k >-1 && l < tableInfo.length; k--, l++) { // 如果相邻为空
if (k == i - 1 && l == j + 1 && tableInfo[k][l] == 0) {
break;
}
// 记录相邻的棋子颜色
if (k == i - 1 && l == j + 1) {
chesscolor = tableInfo[k][l];// 记录棋子的颜色
qiju += tableInfo[k][l];// 记录整个棋局
} else if (chesscolor == tableInfo[k][l]) // 棋子和左边的颜色一样
{
qiju += tableInfo[k][l];
} else if (chesscolor != tableInfo[k][l]) // 棋子和左边的亚瑟不一样
{
qiju += tableInfo[k][l];
break;
}
}
Integer weight = map.get(qiju);
if (weight != null) {
weightArry[i][j] += weight;
}
}
private static void lup(int i, int j, int[][] tableInfo) {
String qiju = "";// 用012记录棋局
int chesscolor = 0;// 记录相邻的棋子的颜色
int k, l;
for (k = i - 1, l = j - 1; k >-1 && l > -1; k--, l--) { // 如果相邻为空
if (k == i - 1 && l == j - 1 && tableInfo[k][l] == 0) {
break;
}
// 记录相邻的棋子颜色
if (k == i - 1 && l == j - 1) {
chesscolor = tableInfo[k][l];// 记录棋子的颜色
qiju += tableInfo[k][l];// 记录整个棋局
} else if (chesscolor == tableInfo[k][l]) // 棋子和左边的颜色一样
{
qiju += tableInfo[k][l];
} else if (chesscolor != tableInfo[k][l]) // 棋子和左边的亚瑟不一样
{
qiju += tableInfo[k][l];
break;
}
}
Integer weight = map.get(qiju);
if (weight != null) {
weightArry[i][j] += weight;
}
}
private static void down(int i, int j, int[][] tableInfo) {
String qiju = "";// 用012记录棋局
int chesscolor = 0;// 记录相邻的棋子的颜色
int k;
for (k = i + 1; k <tableInfo.length; k++) { // 如果相邻为空
if (k == i + 1 && tableInfo[k][j] == 0) {
break;
}
// 记录相邻的棋子颜色
if (k == i + 1) {
chesscolor = tableInfo[k][j];// 记录棋子的颜色
qiju += tableInfo[k][j];// 记录整个棋局
} else if (chesscolor == tableInfo[k][j]) // 棋子和左边的颜色一样
{
qiju += tableInfo[k][j];
} else if (chesscolor != tableInfo[k][j]) // 棋子和左边的亚瑟不一样
{
qiju += tableInfo[k][j];
break;
}
}
Integer weight = map.get(qiju);
if (weight != null) {
weightArry[i][j] += weight;
}
}
private static void up(int i, int j, int[][] tableInfo) {
String qiju = "";// 用012记录棋局
int chesscolor = 0;// 记录相邻的棋子的颜色
int k;
for (k = i - 1; k >-1; k--) { // 如果相邻为空
if (k == i - 1 && tableInfo[k][j] == 0) {
break;
}
// 记录相邻的棋子颜色
if (k == i - 1) {
chesscolor = tableInfo[k][j];// 记录棋子的颜色
qiju += tableInfo[k][j];// 记录整个棋局
} else if (chesscolor == tableInfo[k][j]) // 棋子和左边的颜色一样
{
qiju += tableInfo[k][j];
} else if (chesscolor != tableInfo[k][j]) // 棋子和左边的亚瑟不一样
{
qiju += tableInfo[k][j];
break;
}
}
Integer weight = map.get(qiju);
if (weight != null) {
weightArry[i][j] += weight;
}
}
public static void right(int i, int j, int[][] tableInfo) {
String qiju = "";// 用012记录棋局
int chesscolor = 0;// 记录相邻的棋子的颜色
int k;
for (k = j + 1; k < tableInfo.length; k++) { // 如果相邻为空
if (k == j + 1 && tableInfo[i][k] == 0) {
break;
}
// 记录相邻的棋子颜色
if (k == j + 1) {
chesscolor = tableInfo[i][k];// 记录棋子的颜色
qiju += tableInfo[i][k];// 记录整个棋局
} else if (chesscolor == tableInfo[i][k]) // 棋子和左边的颜色一样
{
qiju += tableInfo[i][k];
} else if (chesscolor != tableInfo[i][k]) // 棋子和左边的亚瑟不一样
{
qiju += tableInfo[i][k];
break;
}
}
Integer weight = map.get(qiju);
if (weight != null) {
weightArry[i][j] += weight;
}
}
public static void left(int i, int j, int[][] tableInfo) {
String qiju = "";// 用012记录棋局
int chesscolor = 0;// 记录相邻的棋子的颜色
int k;
for (k = j - 1; k > -1; k--) { // 如果相邻为空
if (k == j - 1 && tableInfo[i][k] == 0) {
break;
}
// 记录相邻的棋子颜色
if (k == j - 1) {
chesscolor = tableInfo[i][k];// 记录棋子的颜色
qiju += tableInfo[i][k];// 记录整个棋局
} else if (chesscolor == tableInfo[i][k]) // 棋子和左边的颜色一样
{
qiju += tableInfo[i][k];
} else if (chesscolor != tableInfo[i][k]) // 棋子和左边的亚瑟不一样
{
qiju += tableInfo[i][k];
break;
}
}
Integer weight = map.get(qiju);
if (weight != null) {
weightArry[i][j] += weight;
}
}
public static void makeChess() {
max = weightArry[0][0];
/*for (m = 0; m < weightArry.length; m++)
System.out.println(Arrays.toString(weightArry[m]));
System.out.println(" ");*/
for (m = 0; m < weightArry.length; m++)
for (n = 0; n < weightArry[m].length; n++) {
// System.out.println("max="+max);
if (max < weightArry[m][n]) {
max = weightArry[m][n];
p = m;
q = n;
}
}
}
public static void main(String[] args){
int[][] arr = new int[7][7];
arr[1][3] = 1;
arr[2][3] = 1;
arr[3][3]=1;
arr[4][3]=1;
arr[5][3]=2;
AI ai = new AI();
AI.create();
ai.gon(arr);
}
}
package mywuziqi;
public class winandfail {
/**
* 判断胜负
* 每下一字,就判断一次
* @return
*/
public static int winner()
{
int i,j,thelast,m,base,count=0;
int newi,newj,newlast,thelasti,thelastj;
thelast=Chess.allChess[Chess.num-1];
i=thelast/15;
j=thelast%15;
while(true)//横着判断
{
newi=i;
newj=j-4;
//System.out.println("j="+j);
newlast=j+4;
if(newj<0)
newj=0;
if(newlast>14)
newlast=14;
//System.out.println("newlast="+newlast);
// System.out.println("newi="+newi+" "+"newj="+newj);
base=Chess.tableInfo[i][newj];
//System.out.println("base1="+base);
for(;newj<newlast;newj++)
{
if(base==Chess.tableInfo[newi][newj+1])
{
//System.out.println("base="+base);
count++;
// System.out.println("count="+count);
if(count==4)
{
return 1;
}
else
{
base=Chess.tableInfo[i][newj+1];
}
}
else
{
count=0;
base=Chess.tableInfo[i][newj+1];
}
}
break;
}
count=0;
while(true)
{
newi=i-4;
newj=j-4;
thelasti=i+4;
thelastj=j+4;
if(thelasti>14)
thelasti=14;
if(thelastj>14)
thelastj=14;
if(newj<0)
newj=0;
if(newi<0)
newi=0;
if(i-newi>j-newj)
newi=i-(j-newj);
if(j-newj>i-newi)
newj=j-(i-newi);
//System.out.println("newi="+newi);
//System.out.println(newi+" "+newj);
base=Chess.tableInfo[newi][newj];
for(;newi<thelasti&&newj<thelastj;newi++,newj++)
{
//System.out.println("base="+base);
if(base==Chess.tableInfo[newi+1][newj+1])
{
count++;
// System.out.println("count="+count);
if(count==4)
{
return 1;
}
else
{
base=Chess.tableInfo[newi+1][newj+1];
}
}
else
{
count=0;
base=Chess.tableInfo[newi+1][newj+1];
}
}
break;
}
count=0;
while(true)
{
newi=i+4;
newj=j-4;
thelasti=i-4;
thelastj=j+4;
if(newi>14)
newi=14;
if(newj<0)
newj=0;
if(newi-i>j-newj)
newi=i+(j-newj);
if(j-newj>newi-i)
newj=j-(newi-i);
if(newi>14)
newi=14;
if(newj<0)
newj=0;
thelastj=j+(i-thelasti);
if(thelasti<0)
thelasti=0;
if(thelastj>14)
thelastj=14;
//System.out.println("thelasti="+thelasti+"thelastj="+thelastj);
//System.out.println("newi="+newi+"newj="+newj);
base=Chess.tableInfo[newi][newj];
for(;newi>thelasti&&newj<thelastj;newi--,newj++)
{
if(base==Chess.tableInfo[newi-1][newj+1])
{
count++;
// System.out.println("count="+count);
if(count==4)
{
return 1;
}
else
{
base=Chess.tableInfo[newi-1][newj+1];
}
}
else
{
count=0;
base=Chess.tableInfo[newi-1][newj+1];
}
}
break;
}
count=0;
while(true)
{
newi=i-4;
newj=j;
thelast=i+4;
if(newi<0)
newi=0;
if(thelast>14)
thelast=14;
//System.out.println("newi="+newi+"newj="+newj+"thelast="+thelast);
base=Chess.tableInfo[newi][newj];
for(;newi<thelast;newi++)
{
//System.out.print("base="+base+" ");
if(base==Chess.tableInfo[newi+1][newj])
{
count++;
//System.out.println("count="+count);
if(count==4)
{
// System.out.println("return4");
return 1;
}
else
{
base=Chess.tableInfo[newi+1][newj];
}
}
else
{
count=0;
base=Chess.tableInfo[newi+1][newj];
}
}
break;
}
return 0;
}
}
package mywuziqi;
import java.awt.Dimension;
import java.awt.FlowLayout;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JOptionPane;
public class winjframe {
public static void showUIBlack()
{
DrawLinstener.condition=false;
JOptionPane.showMessageDialog(null, "恭喜啦!黑棋胜利","", JOptionPane.CANCEL_OPTION);
}
public static void showUIWhite()
{
DrawLinstener.condition=false;
JOptionPane.showMessageDialog(null, "恭喜啦!白棋胜利","", JOptionPane.CANCEL_OPTION);
}
}