井字棋

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);

}

}

}


 

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Java经典问题算法大全 /*【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子...
    赵宇_阿特奇阅读 1,894评论 0 2
  • 【程序1】 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔...
    叶总韩阅读 5,161评论 0 41
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,742评论 18 399
  • 背景 一年多以前我在知乎上答了有关LeetCode的问题, 分享了一些自己做题目的经验。 张土汪:刷leetcod...
    土汪阅读 12,768评论 0 33
  • 所有的情绪都在今天爆发了!因为中介拖欠了我的工资。对于一个文凭不高,年龄不大,社会经验不多,毫无存款的农村丫头而言...
    韩玉阅读 472评论 0 0