Tic-Tac-Toe游戏的C语言二维数组为什么出错**

Tic-Tac-Toe游戏的C语言二维数组为什么出错*

第一个错误:8 22 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] use of parameter outside function body before ‘]’ token
第二个错误:35 22 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] ‘num’ was not declared in this scope

第三个错误:40 8 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] ‘a’ was not declared in this scope

#include <stdio.h>

/*Tic-Tac-Toe游戏,主函数输入一个棋盘规模大小,
然后接着输入目前棋盘的形态,
然后调用judge函数,判断游戏是否结束的简单小游戏程序。
主要考察二维数组和标记变量的知识点。*/

int judge(int num,int a[num][num]); //函数声明 

int main(void){
	int num;  //棋盘的大小
	while (scanf("%d", &num) != EOF)   //这是什么判断? 
	{
		
		int a[num][num];               //输入棋盘内的数字 
		for(int i=0; i<num; i++){
			for (int j=0; j<num; j++){
				scanf("%d",&a[i][j]);
			}
		}
		int over = judge(num,a);
		if (over){
			printf("Game Over!\n");
		} else{
			printf("Please Continue\n");
		}
	}
	return 0;
}


int judge(int num,int a[num][num])
{
	int over;                    //游戏结束的标志位
	for (int i = 0; i < num; i++)     //循环检查每一行的情况
	{
		int j;
		for (j = 1; j < num; j++)     //检查每一行和第一列是否匹配,不匹配跳出一层循环继续看下一行 
		{
			if (a[i][0] != a[i][j])	{  //判断第一个数字和其他几列数字是否相等,如果不等,后面的直接不用判断 
				over = 0;        //游戏还没有结束
				break;
			}
			
		}
		if (j == num)            //遍历完一行了,有相同的一行,游戏结束跳出循环
		{
			over = 1;
			break;
		}
	}
	if (!over){
		for (int j = 0; j < num; j++) //循环检查每一列的情况 
		{
			int i;
			for (i = 1; i < num; i++) //遍历行循环 
			{
				if (a[0][j] != a[i][j])
				{
					over = 0;
					break;
				}
			}
			if (i == num)
			{
				over = 1;
				break;
			}
		}
	}
	if (!over)                 //检查主对角线 
	{
		int i;
		for (i = 1; i < num; i++)
		{
			if (a[0][0] != a[i][i])
			{
				over = 0;
				break;
			}
		}
		if (i == num)
		{
			over = 1;
		}
	}
	if (!over)
	{
		int j;
		for (j = 0; j < num - 1; j++)
		{
			if (a[0][num - 1] != a[num - 1 - j][j])
			{
				over = 0;
				break;
			}
		}
		if (j == num - 1)
		{
			over = 1;
		}
	}
	if (!over)
	{
		return 0;
	}
	else
	{
		return 1;
	}

}

8 28 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] use of parameter outside function body before ‘]’ token
8 33 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] use of parameter outside function body before ‘]’ token
32 28 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] use of parameter outside function body before ‘]’ token
32 33 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] use of parameter outside function body before ‘]’ token
I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp In function ‘int judge(…)’:
35 22 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] ‘num’ was not declared in this scope
40 8 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] ‘a’ was not declared in this scope
53 23 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] ‘num’ was not declared in this scope
58 9 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] ‘a’ was not declared in this scope
74 19 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] ‘num’ was not declared in this scope
76 8 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] ‘a’ was not declared in this scope
82 12 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] ‘num’ was not declared in this scope
90 19 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] ‘num’ was not declared in this scope
92 8 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] ‘a’ was not declared in this scope
98 12 I:\C语言学习文件\学习\Tic-tac-toe游戏网上版.cpp [Error] ‘num’ was not declared in this scope

a 和num 在函数声明中都定义了int 类型了呀
为什么还会出错
**

tic-tac-toe是一种井字棋游戏,在一个3×3的棋盘上,两名玩家轮流在空白格中放置自己的棋子,先将3颗自己的棋子连成一条直线的一方获胜。 首先,我们需要定义一个tictactoe类。这个类应该具备以下功能:初始化游戏、显示棋盘、玩家行动和判断游戏是否结束。 我们可以在类的构造函数中初始化游戏。初始化时,我们可以使用一个二维字符数组来表示棋盘,将所有的格子都赋值为空白。另外,我们需要一个变量来表示当前玩家,初始值为玩家1。我们还可以定义一个变量来表示游戏是否结束,初始值为false。 接下来,我们可以编写一个方法来显示棋盘。该方法会遍历棋盘数组,并打印每个格子的状态,例如打印空白格为"-",玩家1的棋子为"X",玩家2的棋子为"O"。 然后,我们需要编写一个方法来实现玩家的行动。该方法需要接收玩家的坐标作为参数,在指定坐标上放置当前玩家的棋子。我们需要检查这个位置是否为空,如果为空则可以放置棋子并切换当前玩家。 接下来,我们需要编写一个方法来判断游戏是否结束。我们需要检查是否有任意一方已经获胜,也就是是否有一行、一列或一条对角线上存在连成一条直线的三个相同棋子。如果有,那么游戏结束,我们将结束变量置为true。另外,如果棋盘已经满了,即所有格子都被填满,且没有任何一方获胜,那么游戏也结束。 最后,我们可以在主函数中创建一个tictactoe对象,并循环执行游戏,直到游戏结束。每次轮到一个玩家行动时,我们可以要求玩家输入一个坐标,并调用行动方法。然后显示棋盘。如果游戏结束,我们可以显示获胜方或平局的消息。 这样,我们就完成了一个简单的tic-tac-toe游戏的Java编程。通过这个例子,我们了解了如何使用类和方法来设计和实现一个游戏
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值