【问题标题】:Tic Tac Toe board printing incorrectly in JavaTic Tac Toe 板在 Java 中打印不正确
【发布时间】:2015-05-28 14:53:58
【问题描述】:

我正在用 Java 创建一个井字游戏,我要做的第一步是制作棋盘。

由于循环,棋盘应该是 3x3。谁能帮我吗?代码如下:

package myProject;

import java.util.Scanner;

public class TicTacDoe {

    public static int row,col;
    public static Scanner scan = new Scanner(System.in);

    public static char[][] board = new char[3][3];
    public static char turn = 'X';

    public static void main(String[] args) {

        for(int i = 0;i < 3; i++) {
            for(int j = 0;j < 3;j++){
                board[i][j] = '_';
            }
            PrintBoard();
        }

    }

    public static void Play() {

    }

    public static void PrintBoard() {
        for(int i = 0;i < 3; i++) {
            System.out.println();
            for(int j = 0;j < 3;j++) {
                if(j==0)
                    System.out.println("| ");
                System.out.print(board[i][j] + " | ");
            }
        }
    }

    public boolean GameOver(int rMove, int cMove) {
        return false;
    }
}

感谢您的宝贵时间!

【问题讨论】:

  • 我想你只是想让你的println("| ") 成为print("| ")
  • 现在看起来好多了,但是太长了。这就像 5x3 而不是 3x3
  • 尝试将您的 Printboard() 方法调用移出 for (int i = ...) 循环
  • 谢谢!现在真是太棒了

标签: java


【解决方案1】:

试试这个:

import java.util.Scanner;

public class TicTacToe {

    public static int row,col;
    public static Scanner scan = new Scanner(System.in);

    public static char[][] board = new char[3][3];
    public static char turn = 'X';

    public static void main(String[] args) {

        for(int i = 0;i < 3; i++) {
            for(int j = 0;j < 3;j++){
                board[i][j] = '_';
            }

        }
        PrintBoard();
    }

    public static void Play() {

    }

    public static void PrintBoard() {
        for(int i = 0;i < 3; i++) {
            System.out.println();
            for(int j = 0;j < 3;j++) {
                if(j==0)
                    System.out.print("| ");
                System.out.print(board[i][j] + " | ");
            }
        }
    }

    public boolean GameOver(int rMove, int cMove) {
        return false;
    }
}

将 PrintBoard() 移出嵌套的 for 循环,并将 if(j==0) 更改为 System.out.print

给出输出

| _ | _ | _ | 
| _ | _ | _ | 
| _ | _ | _ | 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-09-03
    相关资源
    最近更新 更多