| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 635 人关注过本帖
标题:求助!程序出错,一宿都没找到报错地方
只看楼主 加入收藏
Remained
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2022-2-21
结帖率:100%
收藏
 问题点数:0 回复次数:1 
求助!程序出错,一宿都没找到报错地方
程序代码:
//三子棋游戏: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

搜索更多相关主题的帖子: int void 函数 ROW printf 
2022-02-25 02:18
Remained
Rank: 1
等 级:新手上路
帖 子:12
专家分:0
注 册:2022-2-21
收藏
得分:0 
已经解决,是Player_Turn()少了一个大括号
2022-02-25 02:24
快速回复:求助!程序出错,一宿都没找到报错地方
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.025380 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved