簡體   English   中英

(Java)初始化后打印Tic Tac Toe板

[英](Java) Printing Tic Tac Toe Board after Initialization

我正在創建一個簡單的井字游戲。 我已經聲明了我的三乘三板,並將每個游戲區域初始化為' '或一個空格字符。

但是,當我嘗試打印電路板以便得到類似以下內容的東西時:

   1   2   3
A    |   |    
   ----------
B    |   |   
   ----------
C    |   |   

什么都不會打印。

這是我的TicTacToe.java:

import java.util.Scanner;

public class TicTacToe{

    public static void main(String[] args) {
           new TicTacToe();
    }
    private char[][] board;
    private char player;

    public TicTacToe() {
    for(int i = 0; i < 3; i++)
    {
        for(int j = 0; j <3; j++)
         {
           board[i][j] = ' ';
         }
    }
     player = 'X';

    System.out.println(" 1 2 3");
    System.out.println("A" + board[0][0] + "|" + board[0][1] + "|" + board[0][2]);  
    System.out.println("-----");
    System.out.println("B" + board[1][0] + "|" + board[1][1] + "|" + board[1][2]);  
    System.out.println("-----");
    System.out.println("C" + board[2][0] + "|" + board[2][1] + "|" + board[2][2]);                        
    }

我從Murach的第4版中了解到,當執行該類時,構造函數也會執行,因此我假設將執行打印功能。

題:

我該如何在控制台上打印我的井字游戲板?

編輯:謝謝您的幫助。 原來我不得不調用構造函數,而不是自動執行它。 上面的代碼不包含解決方案。

當一個類被執行時,其main方法被執行。 您的main方法是空的,因此沒有任何反應。 如果要調用構造函數,則必須顯式調用。

public static void main (String[] args) {
    new TicTacToe();
}

什么都沒打印,因為您沒有實例化main()內部的任何內容。 在任何事情發生之前,您都必須在main()使用對象。

您的主要方法實際上沒有任何東西

import java.util.Scanner;

public class TicTacToe{

public static void main(String[] args) {
    // insert code to set up your tictactoe object  here
    TicTacToe ttt = new TicTacToe();
}
private char[][] board;
private char player; // 'X' or 'O'

public TicTacToe() {
for(int i = 0; i < 3; i++)
{
    for(int j = 0; j <3; j++)
     {
       board[i][j] = ' ';
     }
}
 player = 'X';

System.out.println(" 1 2 3");
System.out.println("A" + board[0][0] + "|" + board[0][1] + "|" + board[0][2]);  
System.out.println("-----");
System.out.println("B" + board[1][0] + "|" + board[1][1] + "|" + board[1][2]);  
System.out.println("-----");
System.out.println("C" + board[2][0] + "|" + board[2][1] + "|" + board[2][2]);                        
}

我對代碼進行了一些更改

public class TicTacToe {

    public static void main(String[] args) {
        new TicTacToe();
    }

    private char[][] board = new char[3][3];
    private char player;

    public TicTacToe() {
        for (int i = 0; i < 3; i++) {
            for (int j = 0; j < 3; j++) {
                board[i][j] = ' ';
            }
        }
        player = 'X';

        System.out.println(" 1 2 3");
        System.out.println("A" + board[0][0] + "|" + board[0][1] + "|"
                + board[0][2]);
        System.out.println("-----");
        System.out.println("B" + board[1][0] + "|" + board[1][1] + "|"
                + board[1][2]);
        System.out.println("-----");
        System.out.println("C" + board[2][0] + "|" + board[2][1] + "|"
                + board[2][2]);
    }
}

希望這會幫助你。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM