[c语言编程]三子棋(一)

简介: [c语言编程]三子棋

1:开始前的准备思路

游戏的规则:游戏分为双方对战,双方依次在9宫格棋盘上摆放棋子,率先将自己的三个棋子走成一条线就视为胜利,而对方就算输了,但是三子棋在很多时候会出现和棋的局面。

思考的过程(主函数-----菜单的创建--------棋盘的创建-------操作系统的实现--------胜负的判断)接下来我会按照这个思路逐渐将这个代码写完。

---------------------------------------------------------------------------------------------------------------------------------

2:主函数与菜单的创造

void menu()
{
    printf("************************************\n");                  
    printf("************************************\n");
    printf("********    1.play    **************\n");
    printf("********    0.exit    **************\n");
    printf("************************************\n");
    printf("************************************\n");
}
//菜单
int main(void)
{
    int input = 0;                                                          //用数字来进行选择
    srand((unsigned)time(NULL));                            //这一步先不用看,后面加的
    do
    {
        menu();
        printf("请选择:>");
        scanf_s("%d", &input);
        switch (input)                                                            当主函数的基础代码写完之后,要进行
        {                                                                                菜单的编程,一般来说游戏需要满足可以
        case 1:                                                                      退出,开始游戏,打完一把游戏之后
            game();                                                                 选择是否继续游戏这几个条件。所以
            break;                                                                    先打印菜单
        case 0:出菜单
            printf("退出游戏\n");
            break;
        default:
            printf("选择错误,重新选择\n");
        }
    } while (input);
    return 0;
}

//主函数

完成之后编译是这个图

 

---------------------------------------------------------------------------------------------------------------------------------

3:棋盘的创造

首先要打印出棋盘的格子,格子应该是这个样子

这里我们要用数组来实现

头文件的创造

//初始化棋盘---使之为空格

void initboard(char board[ROW] [COL], int row, int col);

//打印棋盘的函数

void displayboard(char boar[ROW] [COL], int row, int col);

初始化棋盘,使之为空格,这样之后数组里面的内容可以日后打印其他的字符

=========================================================================

我在这里先附上自己的三个文件(方便大家观看)

源1 就是指

 

源2就是指

=========================================================================

打印棋盘的实现

          放置到源文件中的准备中

     上面这两个图放置到源1文件中

---------------------------------------------------------------------------------------------------------------------------------

4:操作系统的实现

顾名思义,玩家输入坐标点,棋盘上打印出符号*,之后电脑在棋盘上打印出符号#,两者打印的地方不能一样,代码如下

=========================================================================

 

上面的放置到头文件中

这两张在源文件中

void playermove(char board[ROW][COL], int row, int col)

{
    printf("玩家走:>\n");
    int x = 0;
    int y = 0;
    while (1)
    {
        printf("请输入下棋的坐标:>");
        scanf("%d %d", &x, &y);
        if (x >= 1 && x <= row && y >= 1 && y <= col)
        {
            if (board[x - 1][y - 1] == ' ')
            {
                board[x - 1][y - 1] = '*';
                break;
            }
            else
            {
                printf("坐标被占用,请重新输入\n");
            }
        }
        else
        {
            printf("坐标非法,请重新输入\n");
        }
    }
}
//玩家走的实现
void computermove(char board[][COL], int row, int col)
{
    printf("电脑走:>\n");
    while (1)
    {
        int x = rand() % row;
        int y = rand() % col;
        if (board[x][y] == ' ')
        {
            board[x][y] = '#';
            break;
        }
    }
}

//电脑走的实现

这两段代码在源1文件中

========================================================================

5:胜负的判断

这里有四种情况

玩家赢了

电脑赢了

平局

游戏还在继续

所以每一种情况都要写,具体的代码如下

=========================================================================

 


目录
相关文章
|
1天前
|
存储 Serverless C语言
每天一道C语言编程(结构体的运用):这是一年的第几天?
每天一道C语言编程(结构体的运用):这是一年的第几天?
6 0
|
1天前
|
C语言
每天一道C语言编程(递归:斐波那契数,母牛的故事)
每天一道C语言编程(递归:斐波那契数,母牛的故事)
5 0
|
1天前
|
C语言
每天一道C语言编程(2^k进制数)
每天一道C语言编程(2^k进制数)
5 0
|
1天前
|
C语言
每天一道C语言编程(数组操作)
每天一道C语言编程(数组操作)
5 0
|
1天前
|
C语言
每天一道C语言编程(数字转字母,字母转数字)
每天一道C语言编程(数字转字母,字母转数字)
5 0
|
1天前
|
C语言
每天一道C语言编程(求PI)
每天一道C语言编程(求PI)
5 0
|
1天前
|
C语言 C++
每天一道C语言编程:(去掉:双斜杠注释,去掉空格)
每天一道C语言编程:(去掉:双斜杠注释,去掉空格)
4 0
|
1天前
|
C语言
每天一道C语言编程:Hanoi双塔问题
每天一道C语言编程:Hanoi双塔问题
9 0
|
1天前
|
C语言
每天一道C语言编程:求N以内的素数(普通方法+优化方法)
每天一道C语言编程:求N以内的素数(普通方法+优化方法)
5 0
|
1天前
|
测试技术 C语言
每天一道C语言编程:Cylinder(圆柱体问题)
每天一道C语言编程:Cylinder(圆柱体问题)
7 0

热门文章

最新文章