当前位置:文档之家› 四子棋的JAVA实现源代码

四子棋的JAVA实现源代码

四子棋的JAVA实现源代码
package package01;
import java.util.Scanner;
public class class03 {
static String DiskColour[]=new String[]{"Null","Red","Yellow"};
static String SimpleColour[]=new String[]{" ","R","Y"};//the two array strings are used to represent colours.
public static void main(String[] args)
{
Scanner input=new Scanner(System.in);//define a method that can read data from keyboard.
int Grid[][]=new int[6][7];
int x=0,y=0;//x, y represent the coordinate of the disks.
int judge=0;//0 means the game is not over and the game is to be continued;
1 means the game is drawn;
2 means there is a winner.
int colour=1;//0 means Null; 1 means Red; 2 means Yellow.
while(judge==0)//if the game is not over, this while-loop statement will be continued.
{ System.out.println("Please place a "+DiskColour[colour]+" disk at column(0-6)");
y=input.nextInt();
for(int i=5;i>=0;i--)
if(Grid[i][y]==0)
{
x=i;
Grid[x][y]=colour;
if(colour==1)
colour=2;
else
colour=1;break;
}
DrawGrid(Grid);
judge=Decide(Grid,x,y);
if(judge==2)
System.out.println("The "+DiskColour[Grid[x][y]]+" Wins!");
else if(judge==1)
System.out.println("The game is drawn!\nPlease try
again!");}
}
public static void DrawGrid(int Grid[][])
{
for(int i=0;i<=5;i++)
{
for(int j=0;j<=6;j++)
{
System.out.print("|"+SimpleColour[Grid[i][j]]);
}
System.out.println("|");
}
}
public static int Decide(int Grid[][],int x,int y)
{
int m=0;
for(int i=0;i<=5;i++)
for(int j=0;j<=6;j++)
if(Grid[i][j]==0)
m++;
int n1=1;
for(int i=y-1;i>=0;i--)
{
if(Grid[x][y]==Grid[x][i])
n1++;
else
break;}
for(int i=y+1;i<=6;i++)
{
if(Grid[x][y]==Grid[x][i])
n1++;
else
break;}
int n2=1;
for(int i=x+1;i<=5;i++)
{
if(Grid[x][y]==Grid[i][y])
n2++;
else
break;
}
int n3=1;
for(int i=1;x+i<=5&&y+i<=6;i++)
{
if(Grid[x][y]==Grid[x+i][y+i])
n3++;
else
break;
}
for(int i=-1;x+i>=0&&y+i>=0;i--)
{
if(Grid[x][y]==Grid[x+i][y+i])
n3++;
else
break;}
int n4=1;
for(int i=1;x-i>=0&&y+i<=6;i++)
{
if(Grid[x][y]==Grid[x-i][y+i])
n4++;
else
break;}
for(int i=-1;x-i<=5&&y+i>=0;i--)
{
if(Grid[x][y]==Grid[x-i][y+i])
n4++;
else
break;}
if(n1>=4||n2>=4||n3>=4||n4>=4)
return 2;
else
if(m==0)
{
return 1;
}
else
return 0;
}
}。

相关主题