C#解析错误,由于行不存在而找不到?
我正在用C编写一个井字游戏# 不管怎么说,我一直在第57行遇到这个解析错误,但是我没有第57行。 这是密码?有人能帮我吗 我的编译器使用mcs,下面是警告 game.cs(57,1): error CS8025: Parsing error Compilation failed: 1 error(s), 0 warnings cs(57,1):错误CS8025:解析错误编译失败:1个错误,0个警告 这就是代码。 托管在pastebin上 谁能告诉我怎么解决这个问题吗? 谢谢你的帮助! 还有,如果你发现其他问题,请告诉我C#解析错误,由于行不存在而找不到?,c#,parsing,mono,C#,Parsing,Mono,我正在用C编写一个井字游戏# 不管怎么说,我一直在第57行遇到这个解析错误,但是我没有第57行。 这是密码?有人能帮我吗 我的编译器使用mcs,下面是警告 game.cs(57,1): error CS8025: Parsing error Compilation failed: 1 error(s), 0 warnings cs(57,1):错误CS8025:解析错误编译失败:1个错误,0个警告 这就是代码。 托管在pastebin上 谁能告诉我怎么解决这个问题吗? 谢谢你的帮助! 还有,如
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";
你有一个大括号{所有这些线
编辑:
如果使用这一行,您可以删除所有这些:
board[ Math.Floor(i/3.0), (i%3) ] = "x";
我认为您缺少if语句的花括号: 如果(move==0){board[0,0]=“x”\clsoing括号在这里} 另外,最好不要以任何方式使用起始方括号,因为 语法: if(boolean)语句 或 if(布尔) 声明 无论如何都是有效的 有了这个变化,它应该编译并运行
类游戏
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
}
}
{//声明类
私有静态字符串[,]板=新字符串[3,3]{
{“”,“”},//顶行
{“”,“”},//中间行
{“”,“”}//最下面一行
};
私有静态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”,板[0,0],板[0,1],板[0,2]);
}
私有静态void calculateMoves()
{
System.Console.Write(“可能的移动是:”);
int n=1;//用于列出所有可能的移动。
对于(int i=0;i<3;i++)
{
对于(int j=0;j<3;j++)
{
如果(板[i,j]=“”)
{
System.Console.Write(“{0}”,n);
}
n++;
}
}//结束打印可能的移动。
System.Console.WriteLine();//转到下一行
}
静态void Main()
{//程序从主函数开始(这是一个方法声明)
System.Console.WriteLine(“\n欢迎来到Theeletnoob的简单井字游戏!”);
System.Console.WriteLine(“用C#编写,在GPL下发布”);
System.Console.WriteLine(“板是3乘3的,键入一个数字在那里移动”);
System.Console.WriteLine(“所以1是左下角,9是右上角,就像标准键盘一样。\n”);
int winner=0;//还没有赢家。
//写一篇
System.Console.WriteLine(“你是x”);
//创建董事会
int-move;
打印();
calculateMoves();
System.Console.Write(“请键入移动号码:”);
while(winner==0&&int.TryParse(Console.ReadLine(),out move))
{
移动--;
如果(移动==0)板[0,0]=“x”;
如果(移动==1)板[0,1]=“x”;
如果(移动==2)板[0,2]=“x”;
如果(移动==3)板[1,0]=“x”;
如果(移动==4)板[1,1]=“x”;
如果(移动==5)板[1,1]=“x”;
如果(移动==6)板[2,0]=“x”;
如果(移动==7)板[2,1]=“x”;
如果(移动==8)电路板[2,2]=“x”;
打印();
calculateMoves();
System.Console.Write(“请键入移动号码:”);
/**/
}//在循环结束时结束
}
}
虽然您需要进行验证检查等,但现在应该可以使用bool了。p.最好使用bool而不是数组中的字符串,同时使用bool作为while条件,因为它显示的错误是结束后的1行,可能是某个地方缺少了一个
}
?如果主要问题是答案,您需要检查答案是否正确。好的,这个问题得到了解决,谢谢你的帮助,然而,现在while循环经过两次,就像我输入输入一样,然后它在不要求输入的情况下再次经过,然后在第二个循环中,它再次要求输入。另外,我的代码应该编辑电路板并显示一个x,但它没有这样做,有什么原因吗?这是混乱的代码。(相同的粘贴编辑代码)不是这样的,我的问题是,即使在修复之后,代码在这里也不会显示x,它应该在下一个循环中显示。这是一个示例运行的输出。首先,它不会在第二次请求输入,也不会在第二次显示中间的X。知道为什么吗?