Ошибка синтаксического анализа C #, не удается найти из-за отсутствия линии? - PullRequest
0 голосов
/ 13 июля 2011

Я кодирую игру Tic Tac Toe в C # В любом случае, я получаю эту ошибку синтаксического анализа для строки 57, однако у меня нет строки 57. вот код? кто-нибудь может мне помочь?

я использую mcs для моего компилятора, и вот предупреждение.

game.cs(57,1): error CS8025: Parsing error Compilation failed: 1 error(s), 0 warnings

и это код. размещено на pastebin http://pastebin.com/ft1FkDqU

Может кто-нибудь сказать мне, как это исправить? помощь приветствуется! Кроме того, если вы видите какие-либо другие проблемы, пожалуйста, сообщите мне?

Ответы [ 3 ]

8 голосов
/ 13 июля 2011
        if(move == 0){board[0, 0] = "x";
        if(move == 1){board[0, 1] = "x";
        if(move == 2){board[0, 2] = "x";
        if(move == 3){board[1, 0] = "x";
        if(move == 4){board[1, 1] = "x";
        if(move == 5){board[1, 1] = "x";
        if(move == 6){board[2, 0] = "x";
        if(move == 7){board[2, 1] = "x";
        if(move == 8){board[2, 2] = "x";

У вас есть открытая скобка {все эти строки.

Edit:

Вы можете удалить все эти IF в одной строке:

 board[ Math.Floor(i/3.0), (i%3) ] = "x";       
0 голосов
/ 14 июля 2011
class Game
{ // declares the class
    private static string[,] board = new string[3, 3]{
                                              {" ", " ", " "}, // top row
                                              {" ", " ", " "}, // middle row
                                              {" ", " ", " "}  // bottom row
                                          };


    private static void print()
    {
        System.Console.WriteLine("\n {0} | {1} | {2} ", board[2, 0], board[2, 1], board[2, 2]);
        System.Console.WriteLine("------------");
        System.Console.WriteLine(" {0} | {1} | {2} ", board[1, 0], board[1, 1], board[1, 2]);
        System.Console.WriteLine("------------");
        System.Console.WriteLine(" {0} | {1} | {2} \n", board[0, 0], board[0, 1], board[0, 2]);
    }

    private static void calculateMoves()
    {
        System.Console.Write("The possible moves are: ");
        int n = 1; // this is used to list all possible moves.
        for (int i = 0; i < 3; i++)
        {
            for (int j = 0; j < 3; j++)
            {
                if (board[i, j] == " ")
                {
                    System.Console.Write("{0} ", n);
                }
                n++;

            }
        } // end print possible moves.

        System.Console.WriteLine(); // go to next line

    }
    static void Main()
    { // the main function, the program starts from (this is a method declartion)
        System.Console.WriteLine("\nWelcome to theelitenoob's simple tic tac toe game!");
        System.Console.WriteLine("Written in C#, released under the GPL.");
        System.Console.WriteLine("The board is 3 by 3, Type a number to place a move there.");
        System.Console.WriteLine("So 1 is bottom left and 9 is top right, like a standard keypad.\n");
        int winner = 0; // there is no winner yet.
        // write players piece
        System.Console.WriteLine("You are x");
        // create the board

        int move;
        print();
        calculateMoves();
        System.Console.Write("Please type in a move number: ");
        while (winner == 0 && int.TryParse(Console.ReadLine() , out move) )
        {
            move--;
            if (move == 0) board[0, 0] = "x";
            if (move == 1) board[0, 1] = "x";
            if (move == 2) board[0, 2] = "x";
            if (move == 3) board[1, 0] = "x";
            if (move == 4) board[1, 1] = "x";
            if (move == 5) board[1, 1] = "x";
            if (move == 6) board[2, 0] = "x";
            if (move == 7) board[2, 1] = "x";
            if (move == 8) board[2, 2] = "x";

            print();
            calculateMoves();
            System.Console.Write("Please type in a move number: ");


            /**/
        } // end while loop
    }
}

Теперь это должно работать, хотя вам нужно проверять правильность и т.д. ... PS Лучше использовать bool вместо строки в массиве и bool для условия while

0 голосов
/ 13 июля 2011

Я думаю, вам не хватает фигурных скобок в операторах if:

if (move == 0) {board [0, 0] = "x"; \ закрывающая скобка здесь}

P.s, было бы лучше не иметь начальные фигурные скобки, так как синтаксис:

if (логическое) выражение;

или

if (булево)

заявление;

действует в любом случае ..

С этим изменением он должен компилироваться и запускаться

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...