返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >基于C语言实现三子棋游戏的代码怎么写
  • 450
分享到

基于C语言实现三子棋游戏的代码怎么写

2023-07-02 18:07:12 450人浏览 薄情痞子
摘要

这篇“基于C语言实现三子棋游戏的代码怎么写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于C语言实现三子棋游戏的代码怎么写

这篇“基于C语言实现三子棋游戏的代码怎么写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于C语言实现三子棋游戏的代码怎么写”文章吧。

1.创建文件 

test.c (游戏的测试逻辑)game.c(游戏的实现逻辑)gane.h(游戏实现函数的声明)

game.c 和game.h属于游戏实现 test.c属于游戏测试

test.c 源文件(源文件添加)——game.c 源文件(源文件添加)——game.h(头文件添加)

三个文件 

2.首先在test.c文件写一个主函数,主函数里面有一个测试函数,测试函数里面写菜单、进入游戏、退出游戏

代码展示:

void menu(){    printf("***************************\n");    printf("********  1.play   ********\n");    printf("********  0.exit   ********\n");    printf("***************************\n");} void test(){    int input = 0;    do    {        menu();        printf("请选择:->");        scanf("%d", &input);        switch (input)        {        case 1:            printf("三子棋\n");            break;        case 0:            printf("退出游戏\n");            break;        default:            printf("选择错误\n");            break;        }    } while (input);} #include <stdio.h>int main(){    test();    return 0;}

注意:

(1)一般用do while (游戏可能会玩很多次,最少一次)

(2)先打印一个菜单

(3)switch语句,要记得break,要记得default

接下来 把printf("三子棋\n")  改成 game(); 然后开始写游戏部分。 

3.三子棋代码

思路:(\n 不要忘记写)

(1)棋盘用数组

(2)假设玩家走用' * ',电脑走用' # ',所以用字符类型的数组(3*3的)

row 中文意思是行 column 中文意思是列   init 英文最初的简写

引用自己写的文件 把#include < >改成 #include " "

(3)棋盘初始化

函数的声明在头文件里

(4)打印棋盘 (打印数据、分割行),把数据行和分割行看做一大部分,最后一部分没有分割行而已。

(5)玩家下棋,打印棋盘,电脑下棋,打印棋盘。

(6)每下一步棋后,会有四种结果 玩家赢,电脑赢,平局,继续玩 。所以要进行判断。

玩家赢 &lsquo;*&rsquo;,电脑赢&lsquo;#&rsquo;,平局&lsquo;Q&rsquo;,继续 &lsquo;C&rsquo;

game.h 部分代码展示

#pragma once#include <stdio.h>#include <time.h>#include <stdlib.h> #define ROW 3#define COL 3 //初始化棋盘void Initboard(char board[ROW][COL], int row, int col);//define 定义的ROW,COL是常量,而这里的row,col都是变量,所以不能替代void Displayboard(char board[ROW][COL], int row, int col);//打印棋盘void player_move(char board[ROW][COL], int row, int col);//玩家下棋void computer_move(char board[ROW][COL], int row, int col);//电脑下棋 char is_win(char board[ROW][COL], int row, int col);//判断输赢以及平局和继续玩

game.c代码展示

#include "game.h"  void Initboard(char board[ROW][COL], int row, int col){    int i = 0;    int 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){    int i = 0;    int j = 0;    for (i = 0; i < row; i++)    {        //打印数据        //printf(" %c | %c | %c \n", board[i][0], board[i][1], board[i][2]);//固定的数字0,1,2 会把棋盘给固定住,所以不能这样写        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");        }    }    } int is_full(char board[ROW][COL], int row, int col){    int i = 0;    int j = 0;    for (i = 0; i < row; i++)    {        for (j = 0; j < col; j++)        {            if (board[i][j] == ' ')            {                return 0;            }        }    }    return 1;} void player_move(char board[ROW][COL], int row, int col){    int x = 0;    int y = 0;    printf("请输入坐标:->");    while (1)    {        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 computer_move(char board[ROW][COL], int row, int col){    int x = 0;    int y = 0;    printf("电脑下棋\n");    while (1)    {        x = rand() % row;        y = rand() % col;        if (board[x][y] == ' ')        {            board[x][y] = '#';            break;        }    }}//判断每一步棋后是输赢,还是平局,还是继续玩char is_win(char board[ROW][COL], int row, int col){    int i = 0;    for (i = 0; i < row; i++)    {        if (board[i][0] == board[i][1] && board[i][1] == board[i][2] && board[i][0] != ' ')        {            return board[i][0];        }    }    for (i = 0; i < col; i++)    {        if (board[0][i] == board[1][i] && board[1][i] == board[2][i] && board[0][i] != ' ')        {            return board[0][i];        }    }    if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[1][1] != ' ')    {        return board[0][0];    }    if (board[0][2] == board[1][1] && board[1][1] == board[2][0] && board[1][1] != ' ')    {        return board[1][1];    }    int a = is_full(board, row, col);    if (1 == a)    {        return 'Q';    }    return 'C';}

test.c 部分代码展示

#include "game.h" void menu(){    printf("***************************\n");    printf("********  1.play   ********\n");    printf("********  0.exit   ********\n");    printf("***************************\n");} void game(){    char board[ROW][COL] = { 0 };    Initboard(board, ROW, COL);//棋盘初始化,内容为空格    Displayboard(board, ROW, COL);//打印棋盘    char ret = 0;    //下棋    while (1)    {        player_move(board, ROW, COL);        Displayboard(board, ROW, COL);        ret = is_win(board, ROW, COL);        if (ret != 'C')        {            break;        }        computer_move(board, ROW, COL);        Displayboard(board, ROW, COL);        ret = is_win(board, ROW, COL);        if (ret != 'C')        {            break;        }    }    if (ret == '*')    {        printf("恭喜你,取得胜利!\n");    }    else if (ret == 'Q')    {        printf("平局\n");    }    else    {        printf("你输了\n");    }} void test(){    int input = 0;    srand((unsigned int)time(NULL));    do    {        menu();        printf("请选择:->");        scanf("%d", &input);        switch (input)        {        case 1:            game();            break;        case 0:            printf("退出游戏\n");            break;        default:            printf("选择错误\n");            break;        }    } while (input);}  int main(){    test();    return 0;}

基于C语言实现三子棋游戏的代码怎么写

以上就是关于“基于C语言实现三子棋游戏的代码怎么写”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网其他教程频道。

--结束END--

本文标题: 基于C语言实现三子棋游戏的代码怎么写

本文链接: https://lsjlt.com/news/343696.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • 基于C语言实现三子棋游戏的代码怎么写
    这篇“基于C语言实现三子棋游戏的代码怎么写”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“基于C语言实现三子棋游戏的代码怎么写...
    99+
    2023-07-02
  • 基于C语言实现三子棋游戏
    说到三子棋,我想大家一定不陌生吧,它也是我童年中的一部分,今天我们用C语言来实现一下简易版的三子棋。 首先,介绍一下游戏规则: 1.在一个九宫格上进行下棋; 2.玩家两名,双方先后落...
    99+
    2024-04-02
  • 基于C语言实现三子棋游戏的示例代码
    1.创建文件  test.c (游戏的测试逻辑)game.c(游戏的实现逻辑)gane.h(游戏实现函数的声明) game.c 和game.h属于游戏实现 test.c属于...
    99+
    2024-04-02
  • C语言实现三子棋小游戏的代码怎么写
    本篇内容介绍了“C语言实现三子棋小游戏的代码怎么写”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!基本思路:1.创建一个游戏选择面板.2.创建...
    99+
    2023-06-08
  • 基于C语言实现三子棋小游戏
    在写三子棋之前,我们要先了解三子棋的一个大概的图形,以便于我们整理思路。          ...
    99+
    2024-04-02
  • 基于C语言实现简易三子棋游戏
    用C语言写三子棋的具体代码,供大家参考,具体内容如下 1、头文件 #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> ...
    99+
    2024-04-02
  • C语言版三子棋游戏实现代码
    本文实例为大家分享了C语言版三子棋游戏的具体代码,供大家参考,具体内容如下 实现一个三子棋小游戏 下面是实现步骤: 总共有需要三个文件 第一,test.c 我们要在这个文件里面实现游...
    99+
    2024-04-02
  • C语言代码实现简易三子棋游戏
    本文实例为大家分享了C语言代码实现简易三子棋游戏的具体代码,供大家参考,具体内容如下 1. 三子棋游戏规则 是黑白棋的一种。三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙、井...
    99+
    2024-04-02
  • C语言代码实现简单三子棋游戏
    三子棋是我们小时候经常玩的游戏,今天就分享一下如何用c语言简单实现三子棋吧 编译软件VS2019 c语言实现三子棋运用到了二维数组的知识,在编写三子棋程序时用到了多文件编译(不是必须...
    99+
    2024-04-02
  • C语言三子棋游戏实现代码解析
    本文实例为大家分享了C语言三子棋游戏的具体代码,供大家参考,具体内容如下 编程环境:Visual Studio 2019 (一)创建文件  为了逻辑清晰的编程,我们先创建一...
    99+
    2024-04-02
  • C语言实现三子棋游戏的示例代码
    目录1. 前言2. 准备工作3. 使用二维数组存储下棋的数据4. 初始化棋盘为全空格5. 打印棋盘6. 玩家下棋7. 电脑下棋8. 判断输赢9. 效果展示10. 完整代码game.h...
    99+
    2022-11-13
    C语言三子棋游戏 C语言三子棋 C语言 游戏
  • C语言怎么实现三子棋游戏
    这篇文章主要讲解了“C语言怎么实现三子棋游戏”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“C语言怎么实现三子棋游戏”吧!很多人从小都玩过三子棋,相信很多人都对这个游戏的实现有所疑问。那么今天...
    99+
    2023-06-20
  • C语言实现三子棋游戏
    本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下 game.h 设置头文件 #define ROW 3 #define COL 3 #include&...
    99+
    2024-04-02
  • C语言实现三子棋游戏含完整代码
    目录一、text.c源文件部分1、main函数部分2、game函数部分二、game.h头文件部分三、game.c源文件部分运行 三子棋是大家小时候和同桌在纸上都玩过的简单小游戏,这个...
    99+
    2024-04-02
  • C语言三子棋的实现代码怎么写
    这篇文章主要介绍“C语言三子棋的实现代码怎么写”,在日常操作中,相信很多人在C语言三子棋的实现代码怎么写问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言三子棋的实现代码怎么写”的疑惑有所帮助!接下来,请跟...
    99+
    2023-07-05
  • C语言实现三子棋小游戏的示例代码
    目录一、三子棋1.演示效果2.完整代码二、代码解析1.初始化棋盘2.打印棋盘3.玩家下棋4.电脑下棋5.判断输赢6.游戏主体函数7.菜单函数8.头文件及主函数一、三子棋 三子棋小游戏...
    99+
    2022-11-13
    C语言三子棋游戏 C语言三子棋 C语言 游戏
  • C语言怎样实现三子棋游戏
    这篇文章给大家分享的是有关C语言怎样实现三子棋游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。思路:main函数结构部署game函数功能的实现①创建存储空间②初始化存储空间为空格③打印棋盘④实现玩家下棋⑤实现电...
    99+
    2023-06-25
  • 怎么用c语言实现三子棋游戏
    这篇文章给大家分享的是有关怎么用c语言实现三子棋游戏的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。C语言是什么C语言是一门面向过程的、抽象化的通用程序设计语言,广泛应用于底层开发,使用C语言可以以简易的方式编译、...
    99+
    2023-06-14
  • C语言怎么实现三子棋小游戏
    这篇文章主要介绍“C语言怎么实现三子棋小游戏”,在日常操作中,相信很多人在C语言怎么实现三子棋小游戏问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”C语言怎么实现三子棋小游戏”的疑惑有所帮助!接下来,请跟着小编...
    99+
    2023-06-17
  • 用C语言实现三子棋游戏
    本文实例为大家分享了C语言实现三子棋游戏的具体代码,供大家参考,具体内容如下 初始工作,通过#define 定义一个标识符来表示一个常量(棋盘的横纵坐标) (因为在代码的编写中,会有...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作