剛學java 要弄一個4連棋
要跟下圖一樣 完全不懂
內容:
Make sure you understand how to play the Four in a Line game. For simplicity, we use the letter ‘1’ represent the disc of player1 and ‘2’ represent the disc of player1.
Your program shows a seven-column, six-row vertically-suspended grid and use 0 to present the space of the grid and ask players to select a column to input their discs.
要跟下圖一樣 完全不懂
內容:
Make sure you understand how to play the Four in a Line game. For simplicity, we use the letter ‘1’ represent the disc of player1 and ‘2’ represent the disc of player1.
Your program shows a seven-column, six-row vertically-suspended grid and use 0 to present the space of the grid and ask players to select a column to input their discs.
解决方案 »
- java实现pos无驱打印,中文乱码望大侠解决
- 如何使用JAVA编写一个使用HTTP的文件服务器?
- 问一个比较简单的问题:互相调用和传值问题,代码逻辑非常清晰
- log4j配置文件问题
- 关于stringbuffer中append的使用
- 如何有鼠标事件获得JButton所在的JFrame? 急
- 一个简单的程序,书上的,有问题.
- 新手用 italic.addItemListener(this);出错
- 用JAVA怎么编---字符敏感型的下拉菜单
- [求助]Mac10.9.3下安装JDK8看不到,又没法卸载,求助!
- 寻用dtree.js实现的无限树性菜单(有复选框勾选)
- Java 文本域框内的 字符串分割 问题
算法:
每下一粒字,判断 左 右 上 下 左上 右上 左下 右下 8个方向
你也可以判断四个。我给你一段我的判断输赢的方法实现(我的是5子棋)我把当前下的那里子的位置给保存下来了 是就currX和currY
//判断是否有赢家
private boolean haveWinner(){
int x;
int y;
int sum;
//判断左,右
sum=0;
y=currY;
while(y > 1 && cb[currX][--y] == cb[currX][currY])
{
++sum;
}
y=currY;
while(y < cb[0].length-1 && cb[currX][++y] == cb[currX][currY])
{
++sum;
}
if(sum>=4)
return true; //判断上下
x=currX;
sum=0;
while(x > 1 && cb[--x][currY] == cb[currX][currY])
{
++sum;
}
x=currX;
while(x < cb.length-1 && cb[++x][currY] == cb[currX][currY])
{
++sum;
}
if(sum>=4)
return true; //判断右下,左上
x=currX;
y=currY;
sum=0;
while(x > 1 && y > 1 && cb[--x][--y] == cb[currX][currY])
{
++sum;
}
x=currX;
y=currY;
while(x < cb.length-1 && y < cb[0].length-1 && cb[++x][++y] == cb[currX][currY])
{
++sum;
}
if(sum>=4)
return true; //判断右上,左下
x=currX;
y=currY;
sum=0;
while(x > 1 && y < cb[0].length-1 && cb[--x][++y] == cb[currX][currY])
{
++sum;
}
x=currX;
y=currY;
while(x < cb.length-1 && y > 1 && cb[++x][--y] == cb[currX][currY])
{
++sum;
}
if(sum>=4)
return true;
//没人赢
return false;
}
public class IPgame {
public static void main( String args[] ) {
int array[][]={ {0,0,0,0,0,0,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0},
{0,0,0,0,0,0,0}};
int winer;
int x=0;
int play1,play2;
Scanner sc = new Scanner(System.in);
do{
drawBroad(array); //call array
System.out.print("player 1 type a column (0-6) or 9 to quit current game:");
play1 = sc.nextInt();// player 1 input unmber
{
if(play1 == 0&&array[0][0]==0)// column 0
array[0][0]=1; else if (play1 == 0&&array[1][0]==0)
array[1][0]=1;
else if (play1 == 0&&array[2][0]==0)
array[2][0]=1;
else if (play1 == 0&&array[3][0]==0)
array[3][0]=1;
else if (play1 == 0&&array[4][0]==0)
array[4][0]=1;
else if (play1 == 0&&array[5][0]==0)
array[5][0]=1;
else if (play1 == 0&&array[5][0]!=0)
System.out.print("please enter again, this Column is full! ");
else if(play1 == 1&&array[0][1]==0)// column 1
array[0][1]=1;
else if (play1 == 1&&array[1][1]==0)
array[1][1]=1;
else if (play1 == 1&&array[2][1]==0)
array[2][1]=1;
else if (play1 == 1&&array[3][1]==0)
array[3][1]=1;
else if (play1 == 1&&array[4][1]==0)
array[4][1]=1;
else if (play1 == 1&&array[5][1]==0)
array[5][1]=1;
else if (play1 == 1&&array[5][1]!=0)
System.out.print("please enter again, this Column is full! ");
else if(play1 == 2&&array[0][2]==0)// cloumn 2
array[0][2]=1;
else if (play1 == 2&&array[1][2]==0)
array[1][2]=1;
else if (play1 == 2&&array[2][2]==0)
array[2][2]=1;
else if (play1 == 2&&array[3][2]==0)
array[3][2]=1;
else if (play1 == 2&&array[4][2]==0)
array[4][2]=1;
else if (play1 == 2&&array[5][2]==0)
array[5][2]=1;
else if (play1 == 2&&array[5][2]!=0)
System.out.print("please enter again, this Column is full! ");
else if(play1 == 3&&array[0][3]==0)// cloumn 3
array[0][3]=1;
else if (play1 == 3&&array[1][3]==0)
array[1][3]=1;
else if (play1 == 3&&array[2][3]==0)
array[2][3]=1;
else if (play1 == 3&&array[3][3]==0)
array[3][3]=1;
else if (play1 == 3&&array[4][3]==0)
array[4][3]=1;
else if (play1 == 3&&array[5][3]==0)
array[5][3]=1;
else if (play1 == 3&&array[5][3]!=0)
System.out.print("please enter again, this Column is full! ");
else if(play1 == 4&&array[0][4]==0)// cloumn 4
array[0][4]=1;
else if (play1 == 4&&array[1][4]==0)
array[1][4]=1;
else if (play1 == 4&&array[2][4]==0)
array[2][4]=1;
else if (play1 == 4&&array[3][4]==0)
array[3][4]=1;
else if (play1 == 4&&array[4][4]==0)
array[4][4]=1;
else if (play1 == 4&&array[5][4]==0)
array[5][4]=1;
else if (play1 == 4&&array[5][4]!=0)
System.out.print("please enter again, this Column is full! ");
else if(play1 == 5&&array[0][5]==0)// cloumn 5
array[0][5]=1;
else if (play1 == 5&&array[1][5]==0)
array[1][5]=1;
else if (play1 == 5&&array[2][5]==0)
array[2][5]=1;
else if (play1 == 5&&array[3][5]==0)
array[3][5]=1;
else if (play1 == 5&&array[4][5]==0)
array[4][5]=1;
else if (play1 == 5&&array[5][5]==0)
array[5][5]=1;
else if (play1 == 5&&array[5][5]!=0)
System.out.print("please enter again, this Column is full! ");
else if(play1 == 6&&array[0][6]==0)// cloumn 6
array[0][6]=1;
else if (play1 == 6&&array[1][6]==0)
array[1][6]=1;
else if (play1 == 6&&array[2][6]==0)
array[2][6]=1;
else if (play1 == 6&&array[3][6]==0)
array[3][6]=1;
else if (play1 == 6&&array[4][6]==0)
array[4][6]=1;
else if (play1 == 6&&array[5][6]==0)
array[5][6]=1;
else if (play1 == 6&&array[5][6]!=0)
System.out.print("please enter again, this Column is full! ");
else if (play1== 9)
break;
else
System.out.print("Range of column should be (0-6)!");
}
drawBroad(array);
drawBroad(array);
System.out.println("player 2 type a column (0-6) or 9 to quit current game:");
play2 = sc.nextInt(); // player 2 input number
{
if(play2 == 0&&array[0][0]==0)// column 0
array[0][0]=2;
else if (play2 == 0&&array[1][0]==0)
array[1][0]=2;
else if (play2 == 0&&array[2][0]==0)
array[2][0]=2;
else if (play2 == 0&&array[3][0]==0)
array[3][0]=2;
else if (play2 == 0&&array[4][0]==0)
array[4][0]=2;
else if (play2 == 0&&array[5][0]==0)
array[5][0]=2;
else if (play2 == 0&&array[5][0]!=0)
System.out.print("please enter again, this Column is full! ");
else if(play2 == 1&&array[0][1]==0)// column 1
array[0][1]=2;
else if (play2 == 1&&array[1][1]==0)
array[1][1]=2;
else if (play2 == 1&&array[2][1]==0)
array[2][1]=2;
else if (play2 == 1&&array[3][1]==0)
array[3][1]=2;
else if (play2 == 1&&array[4][1]==0)
array[4][1]=2;
else if (play2 == 1&&array[5][1]==0)
array[5][1]=2;
else if (play2 == 1&&array[5][1]!=0)
System.out.print("please enter again, this Column is full! ");
else if(play2 == 2&&array[0][2]==0)// cloumn 2
array[0][2]=2;
else if (play2 == 2&&array[1][2]==0)
array[1][2]=2;
else if (play2 == 2&&array[2][2]==0)
array[2][2]=2;
else if (play2 == 2&&array[3][2]==0)
array[3][2]=2;
else if (play2 == 2&&array[4][2]==0)
array[4][2]=2;
else if (play2 == 2&&array[5][2]==0)
array[5][2]=2;
else if (play2 == 2&&array[5][2]!=0)
System.out.print("please enter again, this Column is full! ");
else if(play2 == 3&&array[0][3]==0)// cloumn 3
array[0][3]=2;
else if (play2 == 3&&array[1][3]==0)
array[1][3]=2;
else if (play2 == 3&&array[2][3]==0)
array[2][3]=2;
else if (play2 == 3&&array[3][3]==0)
array[3][3]=2;
else if (play2 == 3&&array[4][3]==0)
array[4][3]=2;
else if (play2 == 3&&array[5][3]==0)
array[5][3]=2;
else if (play2 == 3&&array[5][3]!=0)
System.out.print("please enter again, this Column is full! ");
else if(play2 == 4&&array[0][4]==0)// cloumn 4
array[0][4]=2;
else if (play2 == 4&&array[1][4]==0)
array[1][4]=2;
else if (play2 == 4&&array[2][4]==0)
array[2][4]=2;
else if (play2 == 4&&array[3][4]==0)
array[3][4]=2;
else if (play2 == 4&&array[4][4]==0)
array[4][4]=2;
else if (play2 == 4&&array[5][4]==0)
array[5][4]=2;
else if (play2 == 4&&array[5][4]!=0)
System.out.print("please enter again, this Column is full! ");
else if(play2 == 5&&array[0][5]==0)// cloumn 5
array[0][5]=2;
else if (play2 == 5&&array[1][5]==0)
array[1][5]=2;
else if (play2 == 5&&array[2][5]==0)
array[2][5]=2;
else if (play2 == 5&&array[3][5]==0)
array[3][5]=2;
else if (play2 == 5&&array[4][5]==0)
array[4][5]=2;
else if (play2 == 5&&array[5][5]==0)
array[5][5]=2;
else if (play2== 5&&array[5][5]!=0)
System.out.print("please enter again, this Column is full! ");
else if(play2 == 6&&array[0][6]==0)// cloumn 6
array[0][6]=2;
else if (play2 == 6&&array[1][6]==0)
array[1][6]=2;
else if (play2 == 6&&array[2][6]==0)
array[2][6]=2;
else if (play2 == 6&&array[3][6]==0)
array[3][6]=2;
else if (play2 == 6&&array[4][6]==0)
array[4][6]=2;
else if (play2 == 6&&array[5][6]==0)
array[5][6]=2;
else if (play2 == 6&&array[5][6]!=0)
System.out.print("please enter again, this Column is full! ");
else if (play2== 9)
break;
else
System.out.print("Range of column should be (0-6)!");
} }while(x!=1);
}
public static void drawBroad(int a[][]){ //function draw updata array
String output="";
for(int row1 = 5; row1>=0; row1--){
output+="\n" +row1+" |"+" ";
for(int col=0; col<a[0].length; col++){
output+=a[row1][col]+" ";
}}
System.out.println(output);
System.out.println(" "+"-------------"+"\n"+" 0 1 2 3 4 5 6");
} }
應該差不多了
就是判斷輸羸不懂弄
例如: 111"2"222判斷左右
當我下了"2" 的時候就看左右 的3個位子是否都等於2
但不懂怎寫和怎加上去 運行....
哪位大大能幫我看看上面 要怎麼弄輸羸!!