帮助基本的tic tac toe程序

Bil*_*ill 1 java

我的生活中从未如此沮丧过.甚至不能在这里做基础..只需要做一个简单的tic tac toe程序.我现在在这个世界上感到很孤独..我得到了基本的想法,但不能逻辑地把它放在一起.

类实例变量:

  • private char [] [] board; 私人信件
  • 玩家; //'X'或'O'

方法:

  • 公共TicTacToe()
  • public void print()
  • public boolean play(String s)
  • public boolean won()
  • public boolean stalemate()

这是我的代码:

import java.util.Scanner;

public class Six1
{
    public static void main(String[] args)
    {   
    TicTacToe ttt = new TicTacToe();
    ttt.TicTacToe();
    ttt.print();
    }

    static class TicTacToe
    {
        private char player; // 'X' or 'O'
        private char[][] board;

        // make board
        public TicTacToe()
        {
            // construct board
            board = new char[3][3];

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

        // print board
        public void print()
        {  
            for ( int i = 0; i < 3; i++)
            {
                System.out.println("  ");   
                for( int j = 0; j < 3; j++)
                {
                    System.out.print(board[i][j] + " ");
                }
                System.out.println("\n------");
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

Bra*_*ace 11

你还没有完成很多工作,但你所拥有的东西似乎最合理.使用内部类可能会使事情变得过于复杂.main如果你想要发生什么,你需要把东西放进去.

你不能一次编写整个程序.您既可以从顶部开始,也可以查看详细信息,或者处理细节,然后将它们组合成一个整体.

自上而下工作

如果您不确定从哪里开始,这可能是让事情发生变化的好方法.使用您希望存在的任何函数编写代码的主体.也许你会开始

public static void main(String[] args) {
    printBoard();

    while (!isWinner()) {
        readMove(); // get move from stdin and mark on board
        printBoard(); // redraw board
    }

    printWinner(); // say who won
}
Run Code Online (Sandbox Code Playgroud)

这些功能尚不存在,这没关系.获得主要级别后,开始实现这些组成的功能,必要时使用更多的组合功能.重复,直到你下到简单的功能,你知道如何实现.

如果要在不实现每个方法的情况下编译代码,可以将其throw new UnsupportedOperationException("not implemented");用作需要返回值的任何方法的主体.

自下而上工作

如果你知道你需要某些部件,但不确定它们如何组合在一起,那就从这个方法开始吧.

你知道你需要一些方法来询问用户他们想要做出什么样的举动.因此,创建一个能够执行此操作并在其上自行测试的函数.你知道你需要一种方法来检查是否有胜利者.将一些值硬编码board[]并测试您的isWinner()功能.一旦你有了一些工件,你可以将它们组装成越来越大的块,直到你有一个正常运行的程序.