《C语言小游戏.1》三子棋游戏

news/2025/1/7 23:21:04/

利用函数链接

1.text.c(游戏进程代码)

#define _CRT_SECURE_NO_WARNINGS_1#include"game.h"
int c = 0;void menu()//菜单
{printf("你好欢迎进入三子棋游戏:");printf("\n----------------------\n");printf("   游戏准备开始:\n");printf("---------------------");printf("\n输入(1)开始游戏   输入(0)退出游戏");
}void game()//游戏流程代码
{char ret;char board[ROW][COL] = { 0 };Initboard(board, ROW, COL);//初始化棋盘displayboard(board, ROW, COL);//打印棋while (1){playermove(board, ROW, COL);displayboard(board, ROW, COL);ret = iswin(board, ROW, COL);if (ret != 'C')break;computermove(board, ROW, COL);displayboard(board, ROW, COL);ret = iswin(board, ROW, COL);if (ret != 'C')break;}if (ret == '*')printf("玩家赢!\n");else if (ret == '#')printf("电脑赢!\n");elseprintf("平局!\n");}void test()//判断是否进入游戏
{int intput = 0;srand((unsigned int)time(NULL));do{menu();printf("\n请选择:\n");scanf_s("%d", &intput);printf("\n  游戏开始,下图为棋盘(*代表玩家,#代表电脑)\n");switch (intput){case 1: game();case  0:printf("退出游戏\n"); break;default:printf("输入错误,请重新输入!"); break;}} while (intput);
}main()
{test();return 0;
}

2.game.c(游戏内容代码)

#include"game.h"
void Initboard(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)//打印棋盘
{int i = 0;for (i = 0; i < row; i++){int j = 0;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 = 0;int y = 0;printf("玩家走>\n");while(1){printf("请输入坐标:");scanf_s("%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;}elseprintf("该位置已经被占领");}elseprintf("坐标非法,请重新输入");}}
void computermove(char board[ROW][COL], int row, int col)//电脑走棋
{int x ;int y ;printf("电脑走:\n");while (1){x = rand() % ROW;y = rand() % COL;if (board[x - 1][y - 1] == ' '){board[x - 1][y - 1] = '#';break;}}}
char iswin(char board[ROW][COL], int row, int col)//判断胜利者
{int i = 0,c=0;for(i=0;i<ROW;i++)//横三行{if(board[i][0]== board[i][1]&& board[i][1] == board[i][2]&&board[i][1]!=' '){return board[i][1]; c++;}}for (i = 0; i < ROW; i++)//竖三行{if (board[0][i] == board[1][i] && board[1][i] == board[2][i] && board[1][i] != ' '){return board[1][i]; c++;}}//两个斜三行if (board[0][0] == board[1][1] && board[1][1] == board[2][2] && board[1][1] != ' '){return board[1][1]; c++;}if (board[2][2] == board[1][1] && board[1][1] == board[2][0] && board[1][1] != ' '){return board[1][1]; c++;}//是否平局if (1 == isfull(board, ROW, COL)){return 'Q';c++;}c++;return 'C';}int isfull(char board[ROW][COL], int row, int col)//判断是否平局
{int i , j ;//返回1,满了;返回0,没满。for (i = 0; i < ROW; i++){for (j = 0; j < COL; j++){if (board[i][j] == ' ')return 0;}}return 1;
} 

3.game.h(函数调用)

#define _CRT_SECURE_NO_WARNINGS_1
#pragma once
#include<stdio.h>
#define ROW 3
#define COL 3
#include<time.h>
#include<stdlib.h>void Initboard(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 iswin(char board[ROW][COL], int row, int col);
//返回四种状态
//玩家赢 ‘*’
//电脑赢  ‘#’
//平局   ‘Q’
//继续   ‘C’

打印输出

游戏输出 

 


http://www.ppmy.cn/news/381274.html

相关文章

【C语言基础】三子棋小游戏

目录 1、程序实现逻辑代码 2、菜单函数 3、游戏实现函数 3.1初始化棋盘 3.2打印棋盘 3.4电脑下棋 4.代码汇总 5.代码运行 1、程序实现逻辑代码 这里用 do while 语句实现玩家多次运行游戏 void test() {srand((unsigned int)time(NULL));//用于电脑下棋时生成随机…

C语言版,八数码小游戏实现,简单好玩

目录 一、问题描述 二、迟来的代码 三、简单分析 一、问题描述 3*3的方格棋盘上&#xff0c;摆放着1到8这八个数码&#xff0c;有1个方格是空。要求对空格执行空格左移、空格右移、空格上移和空格下移这四个操作使得棋盘从初始状态&#xff08;图左&#xff09;到目标状态&…

【C语言】实现三字棋小游戏

文章目录 game.hgame.ctest.c 创建三个文件&#xff1a; game.h实现函数的声明 game.c实现游戏逻辑 test.c实现游戏框架 game.h #pragma once#define ROW 3 #define COL 3 #include <stdio.h> #include <stdlib.h> #include <time.h>//初始化 void InitBo…

【c苑杂坛之小游戏系列】 三子棋游戏

【c苑杂坛之边学边玩】 三子棋游戏带你初识C语言 1.游戏说明2.效果展示3.游戏代码 1.游戏说明 三子棋游戏相信大家都知道&#xff0c;在这里不去讲述游戏背景&#xff0c;对本代码实现的三子棋游戏进行一定的说明。 博友们可以复制一下代码运行游戏&#xff01; 注意文件创建哦…

【娱乐大闯关】C语言实现猜数字小游戏

文章目录 1、打印菜单2、选择器3、猜数字——核心生成随机数 4、头文件5、主函数6、执行结果 猜数字游戏规则&#xff1a; 让电脑随机生成一个数字&#xff0c;然后玩家输入所猜的数&#xff0c;再让电脑进行比较&#xff0c;若比随机数大&#xff0c;则提示&#xff1a;猜大了…

三子棋小游戏——C语言版

三子棋—c语言版本 一、问题描述二、基本思路三、操作步骤1.打印菜单2.初始化棋盘3.打印棋盘4.玩家下棋5.电脑下棋5.判断胜负 四、全部代码1.game.h2.game.c3.test.c 一、问题描述 本次三子棋小游戏代码全部由C语言实现&#xff0c;运用了C语言的二维数组&#xff0c;循环&…

C语言 三子棋小游戏

因为代码有些多&#xff0c;所以使用了头文件来方便理解。 void initial(char arr[ROW][COL],int row,int col) //初始化棋盘函数 { for(row0;row<ROW;row) {for(col0;col<COL;col){arr[row][col] ;printf("%c",arr[row][col]);if(col<COL -1)printf(&qu…

C语言初级小游戏——三子棋

目录 前言 一、游戏的设计思路 1.游戏模式 2.设计模块 二、分层说明 1.game.h文件 1.1 在此文件中&#xff0c;我们对其它需要在此游戏中实现的功能所对应的函数库进行了包含 1.2 进行符号定义 1.3 函数声明 2.game.c文件 2.1 对二维字符数组进行初始化 2.2 展示棋盘…