三字棋游戏JAVA

//6.28
import javax.swing.JOptionPane;
public class game {
    public static void main(String[]args){

        gamestart();

    }
    public static void gamestart(){
         String[][]youxi=new String[3][3];
         for(int i=0;i<3;i++){
             for(int j=0;j<3;j++){
                 youxi[i][j]=" ";
             }

         }
         int i;
        JOptionPane.showMessageDialog(null, "这个游戏是一个三子棋游戏,两个游戏者在3*3网格中轮流作标记,一个人用X,另一个人用O,如果一个游戏者在网格的水平、垂直或对角线上作了三个连续的标记,游戏就以这个游戏者胜利告终。","help",JOptionPane.INFORMATION_MESSAGE);
        JOptionPane.showMessageDialog(null,"请玩家通过确定行和列的位置来下棋,行有0 1 2 三行,列有0 1 2三列");
        showgame(youxi);
        for( i=0;i<9;){
            String sx=JOptionPane.showInputDialog("游戏还未结束,请第一个玩家输入X标志,请输入行数");
            String sy=JOptionPane.showInputDialog("请输入列数");
            int x=Integer.parseInt(sx);
            int y=Integer.parseInt(sy);
            i++;
            if(x>2||y>2)
                break;
            youxi[x][y]="X";
            showgame(youxi);
            gameover(youxi,i);
            if(i<9){
            String sx1=JOptionPane.showInputDialog("游戏还未结束,请第二个玩家输入O标志,请输入行数");
            String sy1=JOptionPane.showInputDialog("请输入列数");
            int x1=Integer.parseInt(sx1);
            int y1=Integer.parseInt(sy1);
            i++;
            if(x1>2||y1>2)
                break;
            youxi[x1][y1]="O";
            showgame(youxi);
            gameover(youxi,i);
            }

        }


    }
    public static void showgame(String[][]youxi){
        System.out.println("+------+");
        System.out.println("|"+youxi[0][0]+"|"+youxi[0][1]+"|"+youxi[0][2]+"|");
        System.out.println("+------+");
        System.out.println("|"+youxi[1][0]+"|"+youxi[1][1]+"|"+youxi[1][2]+"|");
        System.out.println("+------+");
        System.out.println("|"+youxi[2][0]+"|"+youxi[2][1]+"|"+youxi[2][2]+"|");
        System.out.println();
        System.out.println();
        System.out.println();


    }
    public static void gameover(String[][]youxi,int i){
        if(i>=9)
            JOptionPane.showMessageDialog(null, "平局");
        for(int j=0;j<3;j++){
            if(youxi[0][j].equals("X")&&youxi[1][j].equals("X")&&youxi[2][j].equals("X")||youxi[j][0].equals("X")&&youxi[j][1].equals("X")&&youxi[j][2].equals("X"))
                JOptionPane.showMessageDialog(null, "第一个玩家胜");
            if(youxi[0][0].equals("X")&&youxi[1][1].equals("X")&&youxi[2][2].equals("X")||youxi[2][0].equals("X")&&youxi[1][1].equals("X")&&youxi[0][2].equals("X"))
                JOptionPane.showMessageDialog(null, "第一个玩家胜");
            if(youxi[0][j].equals("O")&&youxi[1][j].equals("O")&&youxi[2][j].equals("O")||youxi[j][0].equals("O")&&youxi[j][1].equals("O")&&youxi[j][2].equals("O"))
                JOptionPane.showMessageDialog(null, "第二个玩家胜");
            if(youxi[0][0].equals("O")&&youxi[1][1].equals("O")&&youxi[2][2].equals("O")||youxi[2][0].equals("O")&&youxi[1][1].equals("O")&&youxi[0][2].equals("O"))
                JOptionPane.showMessageDialog(null, "第二个玩家胜");
           

        }

    }

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值