井字棋

作者: myz666 | 来源:发表于2016-10-14 17:52 被阅读0次

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

}

}

}

 

相关文章

  • 井字棋

    package newPaca; import java.util.Scanner; public class j...

  • Vue井字棋

    v-on:click="onClidkCell(0, $event)有v-on:click的绑定事件,有$even...

  • 井字棋源码

  • 设计井字棋

    1、前言 一般的系统设计题都有主体、input、output。但是游戏设计题可能有点违反常规,它主要有以下几点:玩...

  • C++实现的基于α-β剪枝算法的井字棋游戏

    一、井字棋游戏规则 “井字棋”游戏(又叫“三子棋”),是一款十分经典的益智小游戏,操作简单,娱乐性强。两个玩家,一...

  • 多维数组怎么学?看这一篇就够了,带你在游戏中学习。

    tic-tac-toe 游戏 (井字棋游戏) 大家小时候应该都玩过井字棋吧,下课之余和同学来上一把,是多么开心。今...

  • JavaScript新手练习——井字棋

    井字棋是一个很简单的游戏,通过穷举,我们轻易的记录井字棋所有可能的走法。因此我们的AI可以实现的能力是 先手:尽可...

  • R写的三子棋(井字棋)程序

    我家小朋友最近迷上了井字棋,每天都要拉着大人玩两盘,这两天恰好有闲,写个井字棋程序练练手,同时看看能否提起小朋友对...

  • 9.井字棋

    题目内容:嗯,就是视频里说的那个井字棋。视频里说了它的基本思路,现在,需要你把它全部实现出来啦。你的程序先要读入一...

  • Java 井字棋小结

    1.井字棋获胜的四种情况 横行全为同一符号竖行全为同一符号斜对角线为同一符号反对角线为同一符号 2.编程思路 构建...

网友评论

      本文标题:井字棋

      本文链接:https://www.haomeiwen.com/subject/xcqnyttx.html