注册 登录
编程论坛 C语言论坛

求助!程序出错,一宿都没找到报错地方

Remained 发布于 2022-02-25 02:18, 904 次点击
程序代码:
//三子棋游戏:TIC-TAC-TOE

//#include<game.h>
#include<stdio.h>
#define ROW 3 //
#define COL 3 //
void Menu();//菜单函数申明
void OpenShow();//游戏开始函数申明
void OverShow();//游戏结束函数申明
void Game_Proc();//游戏处理函数申明
void Game();    //游戏函数申明
void Board_init(char Board[ROW][COL],int row,int col);//棋盘数据初始化函数申明
void Board_Display(char Board[ROW][COL],int row,int col);//棋盘打印函数申明
void Player_Turn(char Board[ROW][COL],int row,int col);//玩家操作函数申明

int main()
{
    Game_Proc();
   
}

void Game()    //游戏函数
{
        char Board[ROW][COL]={0};//定义棋盘数组
        
        Board_init(Board,ROW,COL);//棋盘初始化
                                                      
        Board_Display(Board,ROW,COL); //打印棋盘   
        while(1)    //下棋循环
        {
            //玩家下棋
                    Player_Turn(Board,ROW,COL);    //玩家回合:将子落到数组中去     
                    Board_Display(Board,ROW,COL); //打印棋盘
            
//电脑下棋   
        }
}

void Player_Turn(char Board[ROW][COL],int row,int col)    //玩家操作函数
{
    int x = 0;
    int y = 0;
   
    printf("请输入棋盘中你落子的坐标:例如1 2:表示第一行第2列\n");
   
    while(1)
    {
            scanf("%d %d",&x,&y);
        
            if(x>0&&x<=3&&y>0&&y<=3)//判断落子坐标是否已经下过
            {
                if(Board[x-1][y-1] == ' ')//如果合法
                {
                    Board[x-1][y-1]='*';break; //输入完就退出循环
                }
                else
                {
                    printf("坐标非法:当前坐标已落子\n请重新输入:\n");   
                }   
            }

            else
            {
                printf("坐标非法:超出棋盘坐标范围(行:1-3n列:1-3)\n请重新输入:\n");
            }
        
    }
   
void Board_init(char Board[ROW][COL],int row,int col)    //棋盘初始化函数,让每行每列填数据的地方为空格
{
    int i = 0;
    int j = 0;
    for(i = 0;i<row;i++)//row行
    {
        for(j = 0;j<col;j++)//col列
        {
            Board[i][j] = ' '; //把每行每列棋子输入的地方 都输入空格
        }
    }
}
void Board_Display(char Board[ROW][COL],int row,int col)//棋盘打印函数
{
    int i = 0;
    int j = 0;
    for(i = 0;i<row;i++)//row行
    {
        for(j = 0;j < col;j++)//col列 :
        {
            //打印一行的数据:数据|数据|数据
            
            printf(" %c ",Board[i][j]);//棋盘中每个格子都是:空格棋子空格  
            
            if(j < col-1) printf("|");//打印完棋子就打印|,最后一个|不打印,保持井字形
        }
            printf("\n");    //一行打印结束就换行
            
            
//打印分割行
            if(i < row-1)    //最后一行不打印   
            {
                for(j = 0;j < col;j++)//每列打印---
                {
                  printf("---");                    
               
                if( j < col-1 ) printf("|");//每列打印|,最后一列|不打印,保持井字形
               
                }
            printf("\n");    //一行打印完换行
            }
    }   
}


void Game_Proc()//游戏处理函数
{
    int input = 0;
    do
    {
        Menu();
        printf("请做出您的选择:>\n");
        scanf("%d",&input);
        switch(input)
        {
            case 1: OpenShow();Game();
            
                break;
               
            case 0: OverShow();
                break;
            default: printf("选择错误,请重新选择^-^\n");
            break;
            
        }
        
    }while(input);    //1执行下去,0 不执行退出
   
}

//界********************************************面显示函数********************************************//
void Menu()//菜单函数
{
    printf("***********************************\n");
    printf("*****                         *****\n");
    printf("*****    Welcome to  Here     *****\n");
    printf("*****         三子棋          *****\n");
    printf("*****      TIC-TAC-TOE        *****\n");
    printf("*****     输入1:开始游戏     *****\n");
    printf("*****     输入0:退出游戏     *****\n");
    printf("*****                         *****\n");
    printf("***********************************\n");
   
}
void OverShow()//游戏结束函数
{
    printf("***********************************\n");
    printf("*****         游戏退出        *****\n");
    printf("*****       ^_^ Bye-Bye!     *****\n");
    printf("***********************************\n");   
}
void OpenShow()//游戏开始函数
{
    printf("***********************************\n");
    printf("*****         游戏开始        *****\n");
    printf("*****       !^0^!  !^0^!      *****\n");
    printf("***********************************\n\n\n");   
}


报错内容:
[Error] expected declaration or statement at end of input

1 回复
#2
Remained2022-02-25 02:24
已经解决,是Player_Turn()少了一个大括号
1