千家信息网

C语言实现三子棋实例代码怎么写

发表于:2026-10-31 作者:千家信息网编辑
千家信息网最后更新 2026年10月31日,这期内容当中小编将会给大家带来有关C语言实现三子棋实例代码怎么写,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。首先,我将该程序的实现分为3个板块,main,game
千家信息网最后更新 2026年10月31日C语言实现三子棋实例代码怎么写

这期内容当中小编将会给大家带来有关C语言实现三子棋实例代码怎么写,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

首先,我将该程序的实现分为3个板块,main,game.h,和game.c;

代码如下:

#define _CRT_SECURE_NO_WARNINGS#include"game.h" void menu(){        printf("****************************************\n");        printf("***********  1.play 0.exit  ************\n");        printf("****************************************\n");} void game(){        char board[ROW][COL] = {0};        Creatboard(board, ROW,COL);//创建棋盘        Displayboard(board,ROW,COL); //初始化棋盘        while (1)        {                PlayerMove(board,ROW,COL);//玩家移动                Displayboard(board, ROW, COL);//绘制                char i = Result(board, ROW, COL);//判断                switch (i)                {                case '*':                        printf("你赢了!");                        Sleep(2000);                        Creatboard(board, ROW, COL);                        break;                case '#':                        printf("你输了!");                        Sleep(2000);                        Creatboard(board, ROW, COL);                        break;                case 'p':                        printf("平局!");                        Sleep(2000);                        Creatboard(board, ROW, COL);                        break;                case 'c':;                }//我没用鹏哥讲的;用的switch好像更麻烦了                system("cls");//清屏                ComputerMove(board, ROW, COL);//电脑移动                Displayboard(board, ROW, COL);                switch (i)                {                case '*':                        printf("你赢了!");                        Sleep(2000);                        Creatboard(board, ROW, COL);                        break;                case '#':                        printf("你输了!");                        Sleep(2000);                        Creatboard(board, ROW, COL);                        break;                case 'p':                        printf("平局!");                        Sleep(2000);                        Creatboard(board, ROW, COL);                        break;                case 'c':;                }        }} void control(){        int n = 0;        do {                menu();//菜单页面                printf("请选择:>");                scanf("%d", &n);                switch (n)                {                case 0:                        printf("退出游戏\n");                        break;                case 1:                        game();                        break;                default:                        printf("输入错误,请重新输入\n");                        break;                }         } while (n);} int main(){        srand ((unsigned int)time(NULL));//时间戳        control();        return 0;}

这部分我用了switch之后比较麻烦,也没有结束游戏的退出程序,写的比较乱。

我将所用的头文件都放在了game.h里,着是鹏老师教的写大程序的方式,使程序结构一目了然。

#define ROW 3#define COL 3 #include#include#include//函数声明void Creatboard(char board[ROW][COL], int row,  int col);void Displayboard(char board[ROW][COL],int row, int col);void PlayerMove(char board[ROW][COL], int row, int col);void ComputerMove(char board[ROW][COL], int row, int col);char Result(char board[ROW][COL], int row, int col);

对函数的定义是主要事项,判断三子棋当前是否输赢或是平局,以及棋盘绘制的规律,都是在看了几遍后才明白,我这个比较粗糙,有能力的可以自行修改一下绘制的图案。

#define _CRT_SECURE_NO_WARNINGS #include"game.h" void Creatboard(char board[ROW][COL], int row,int col){        int i = 0, j = 0;        for (i = 0; i < row; i++)        {                for (j = 0; j < col; j++)                {                        board[i][j] = ' ';                }        }} void Displayboard(char board[ROW][COL], int row, int col)//绘制图案最好用循环,直接用printf按鹏哥的话说比较挫{        int i = 0, j = 0;        for (i = 0; i < row; i++)        {                for (j = 0; j < col; j++)                {                        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 PlayerMove(char board[ROW][COL], int row, int col)//下棋的位置是用坐标表示的{        int x, y;        printf("玩家请下棋:>\n");again:          scanf("%d %d", &x, &y);        if (board[x - 1][y - 1] == ' ')        {                board[x - 1][y - 1] = '*';        }        else        {                printf("非法位置,请重新输入\n");                goto again;        }}  void ComputerMove(char board[ROW][COL], int row, int col){        printf("电脑下棋中\n");        while (1)        {                int x = rand() % row;//生成0~2之间的随机数                int y = rand() % col;                if (board[x][y] == ' ')                {                        board[x][y] = '#';                        break;                }        }} int Full(char board[ROW][COL], int row, int col)//判定棋盘是否下满{        int i = 0, j = 0;        for (i = 0; i < row; i++)        {                for (j = 0; j < col; j++)                {                        if (board[i][j] == ' ')                                return 0;                }        }        return 1;} char Result(char board[ROW][COL], int row, int col){        int i = 0, j = 0;        for (i = 0; i < row; i++)//判断三行        {                if (board[0][i] == board[1][i] && board[1][i] == board[2][i] && board[0][i] != ' ')                        return board[0][0];        }        for (j = 0; j 

上述就是小编为大家分享的C语言实现三子棋实例代码怎么写了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。

j++ 棋盘 程序 三子 代码 平局 输入 实例 语言 内容 函数 图案 电脑 麻烦 分析 移动 粗糙 一目了然 中小 之间 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 湖北九亚互联网络科技有限公司 中国互联网科技股 互联网 科技公司 互联网金融与金融科技 狮子座互联网科技有限公司 广州紫鲸互联网科技 广西拼得多互联网科技有限公司 互联网之后的科技是什么 岳阳华臻互联网科技有限公司 青岛科技大学互联网大赛研究生 亳州好赞互联网科技有限公司 山东有哪些互联网科技公司 图游互联网科技 新氧科技和美国互联网有关系吗 艺电能源互联网科技有限公司招聘 互联网领先科技活动 三亚科技创新互联网基地 互联网金融金融科技 互联网科技大会大佬 科技互联网企业在行动 互联网络科技 百单网互联网科技有限公司 河南云网互联网络科技有限公司 高科技与互联网 撒么互联网科技公司 互联网科技汛 互联网与医疗科技 燊美集互联网科技有限公司 恒生互联网科技业指数调整周期 下一代互联网重大应用科技园
0