井字棋

2016-10-14  本文已影响0人  myz666

package newPaca;

import java.util.Scanner;

public class jingziqi {

/**

* @param args

*/

public static void main(String[] args) {

// TODO Auto-generated method stub

int qipan[][]=new int[3][3];

inItQiPan(qipan);

printQiPan(qipan);

gameStart(qipan);

}

public static void inItQiPan(int[][] qipan){//初始化棋盘

for(int i=0;i

for(int j=0;j

qipan[i][j]=0;

}

}

}

public static void printQiPan(int[][] qipan){//打印棋盘

String show[]={" ","X","O"};

for(int i=0;i

for(int j=0;j

System.out.print("|"+show[qipan[i][j]]);

}

System.out.print("|");

System.out.println();

}

}

public static int ifEnd(int[][] qipan){//判断游戏状况、是否结束

int i=0;

for(int b=0;b<3;b++){

if((qipan[b][0]==1&&qipan[b][1]==1&&qipan[b][2]==1)

||(qipan[0][b]==1&&qipan[1][b]==1&&qipan[2][b]==1)

||(qipan[0][0]==1&&qipan[1][1]==1&&qipan[2][2]==1)

||(qipan[0][2]==1&&qipan[1][1]==1&&qipan[2][0]==1)){i=1;}

else if((qipan[b][0]==2&&qipan[b][1]==2&&qipan[b][2]==2)

||(qipan[0][b]==2&&qipan[1][b]==2&&qipan[2][b]==2)

||(qipan[0][0]==2&&qipan[1][1]==2&&qipan[2][2]==2)

||(qipan[0][2]==2&&qipan[1][1]==2&&qipan[2][0]==2)){i=2;}

}

return i;

}

public static int e=1;

public static void gameStart(int[][] qipan){//游戏开始

Scanner input=new Scanner(System.in);

int r,l;

System.out.println("请第"+e+"位玩家输入下步棋X所在的行和列:");

r=input.nextInt();

l=input.nextInt();

ifGameOver(qipan,r,l);

}

public static int ifLocaltionTrue(int[][] qipan,int r,int l){//判断玩家输入的位置是否合法

if(qipan[r-1][l-1]!=0||r>3||l>3||r<1||l<1){

return 0;

}

else

{

return 1;

}

}

public static void ifGameOver(int[][] qipan,int r,int l){//控制游戏显示有无结束

Scanner input=new Scanner(System.in);

if(ifLocaltionTrue(qipan,r,l)==1) {

qipan[r-1][l-1]=e;

printQiPan(qipan);

if(ifEnd(qipan)==e){System.out.println("玩家"+e+"赢了!");}

else{e=3-e;gameStart(qipan);}

}

else {

System.out.println("您的输入有误!请重新输入:");

r=input.nextInt();

l=input.nextInt();

ifGameOver(qipan,r,l);

}

}

}

 

上一篇下一篇

猜你喜欢

热点阅读