目录
🌟一.前言
🍑二.头文件
🍑三.初始化函数,声明初始化用到的变量 ;
🍑四.主程序
🍑五.运行截图
🌟一.前言
本节文章将讲到用c语言初阶内容实现三子棋小游戏,跟进和我一起玩起来八。
🍑二.头文件在这我我本人用到了vs编译器,先创建了自定义头文件:game.h
#pragma once
#include
#include
#include
#include
void menu();//打印菜单
void QiPan();//打印棋盘
void People();//玩家下棋
void Computer();//电脑下棋
int Check();//判断输赢
🍑三.初始化函数,声明初始化用到的变量 ;
将在头文件中声明的的函数实体化写出具体的内容
game.c
#define _CRT_SECURE_NO_WARNINGS 1
#include"game.h";
int flag1 = 0;//玩家下棋标记
int flag2 = 0;//电脑下棋标记
char str[10] = " ";//下棋的棋子,还没下棋时都为空格
int arr[3][3] = { 0,1,2,3,4,5,6,7,8 };//定义棋表,3x3
void menu()
{
printf("——————————————————\n");
printf("——————————————————\n");
printf("——————————————————\n");
printf("——————1.play—————————\n");
printf("——————2.exit—————————\n");
printf("——————————————————\n");
printf("——————————————————\n");
printf("——————————————————\n");
}//游戏菜单
void QiPan()
{
printf("--------------------------------\n");
printf("| %c | %c | %c |\n",str[0],str[1],str[2]);
printf("---------------------------------\n");
printf("| %c | %c | %c |\n",str[3],str[4],str[5]);
printf("---------------------------------\n");
printf("| %c | %c | %c |\n",str[6],str[7],str[8]);
printf("--------------------------------\n");
}//棋盘
void People()
{
printf("玩家下棋,请输入下棋坐标:\n");
flag2 = 0;
int input1, input2;
scanf("%d %d", &input1, &input2);
while (1)
{
if (input1 > 3 || input1 < 1 || input2>3 || input2 < 1)//判断输入坐标是否合法
{
printf("坐标非法,请重新输入:");
scanf("%d %d", &input1, &input2);
}
else
{
str[arr[input1 - 1][input2 - 1]] = '*';//合法则下棋
break;
}
}
QiPan();
flag1 = 1;
}
void Computer()
{
printf("电脑下棋:\n");
flag1 = 0;
srand((unsigned int)time(NULL));
while (1)
{
int input1 = rand() % 3;//随机产生0-2的数
int input2 = rand() % 3;
if (str[arr[input1][input2]] != '*'&& str[arr[input1][input2]] != '#')
{
str[arr[input1][input2]] = '#';//电脑下棋为#符号
break;
}
else
continue;
}
QiPan();
flag2 = 1;
}
int Check()
{
//0 1 2
//3 4 5
//6 7 8
//2 4 6
//0 4 8
//0 3 6
//1 4 7
//2 5 8 //获得胜利的八种情况全部枚举出来
if ((str[0] == '*' && str[1] == '*' && str[2] == '*') || (str[3] == '*' && str[4] == '*' && str[5] == '*') || (str[6] == '*' && str[7] == '*' && str[8] == '*') || (str[2] == '*' && str[4] == '*' && str[6] == '*') || (str[0] == '*' && str[4] == '*' && str[8] == '*') || (str[0] == '*' && str[3] == '*' && str[6] == '*') || (str[1] == '*' && str[4] == '*' && str[7] == '*') || (str[2] == '*' && str[5] == '*' && str[8] == '*')||(str[0] == '*' && str[1] == '*' && str[2] == '*') || (str[3] == '*' && str[4] == '*' && str[5] == '*') || (str[6] == '*' && str[7] == '*' && str[8] == '*') || (str[2] == '*' && str[4] == '*' && str[6] == '*') || (str[0] == '*' && str[4] == '*' && str[8] == '*') || (str[0] == '*' && str[3] == '*' && str[6] == '*') || (str[1] == '*' && str[4] == '*' && str[7] == '*') || (str[2] == '*' && str[5] == '*' && str[8] == '*')|| (str[0] == '#' && str[1] == '#' && str[2] == '#') || (str[3] == '#' && str[4] == '#' && str[5] == '#') || (str[6] == '#' && str[7] == '#' && str[8] == '#') || (str[2] == '#' && str[4] == '#' && str[6] == '#') || (str[0] == '#' && str[4] == '#' && str[8] == '#') || (str[0] == '#' && str[3] == '#' && str[6] == '#') || (str[1] == '#' && str[4] == '#' && str[7] == '#') || (str[2] == '#' && str[5] == '#' && str[8] == '#'))
{
if (flag1 == 1)
{
printf("恭喜玩家获胜\n");
return 0;
}
if (flag2 == 1)
{
printf("电脑获胜!请再接再厉!");
return 0;
}
}
else
return 1;
}
🍑四.主程序
主程序写到了函数具体的使用方法
#define _CRT_SECURE_NO_WARNINGS 1
#include"game.h";
int main()
{
int choice;
menu();
scanf("%d", &choice);
switch (choice)
{
case 1:
QiPan();
do
{
People();
if (!Check())
break;
Computer();
if (!Check())
break;//做一个循环,直至游戏结束一方获胜
} while (1);
break;
case 2:
printf("程序成功退出!\n");
break;
default:
printf("输入有误\n");
break;
}
return 0;
}
🍑五.运行截图
跟进自己设计一个给 好基友玩一下,也可以自己设定修改为哦玩家和玩家下棋或许更有意思哦!
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)