三子棋小游戏第二版(C++)

C语言入门小游戏—三子棋 三子棋又称为井字棋,相信大家都玩过这个小游戏,其规则就是哪一方先将相邻的的三枚棋子连在一起便获得胜那么今天就由我为大家讲解如何使用C语言实现简单的三子棋游戏吧。根据棋盘的样式,我们可以联想到三子棋棋盘应该有九个待输入数据(可存储),且形式为3*3,所以在这里。总结这是一个简单的三子棋游戏,还有部分功能可以实现,以及你自己的想法也可以添加进去;test.c测试三子棋游戏(实现游戏的大体逻辑和功能)平局的关键在于棋盘的空间状态,即判断棋盘是否满了。关键在于基础的函数应用和对二维数组的熟练使用。......... 阅读详情

  三子棋小游戏的第二版,后期续更!!!

#include<iostream>
#include<cstdio>
#include<windows.h>
#include<ctime>
using namespace std;
int checkerboard[4][4];

/*============== all class ==============*/

class chess {
	public:
		static void Game_game_pvp();
		static void Game_game_pvc();
};

/*============== all function ==============*/

int Game_init(){
	printf(
	"                  Three character chess game\n"
	"\n" 
	"             1.enter                       2.exit\n"
	);
	int retreat;
	scanf("%d",&retreat);
	return retreat;
}
void slow_o(string a,bool wrap){
	for(int i=0;i<a.size();i++){
		cout<<a[i];
		Sleep(50);
	}
	if(wrap){
		printf("\n");
	}
}
void Game_user(){
	printf(
	"            user interface\n"
	"            \n"
	"            1.Start the game!\n"
	"            \n"
	"            2.version\n"
	"            \n"
	"            3.What the author said"
	);
}
void Game_version(){
	slow_o("Version: 0.0.2",1);
	slow_o("Author:--",0);
}
void Game_author_said(){
	slow_o("  This is a three piece chess game that currently only has",1);
	slow_o("",1);
	slow_o("people vs people and people vs computer, and more versions",1);
	slow_o("",1);
	slow_o("will be published in the future.",0);
}
char convert(int a){
	if(a==0) return '?';
	if(a==1) return 'O';
	if(a==2) return 'X';
}
void round(){
	int i,j;
	do{
		i=rand()%3+1;
		j=rand()%3+1;
	}while(checkerboard[i][j]);
	cout<<i<<' '<<j;
	checkerboard[i][j]=2;
}
void Game_interface(){
	system("cls");
	system("color 1");
	Game_user();
	int x;
	while(x!=1){
		slow_o("",1);
		scanf("%d",&x);
		if(x==1){
			system("cls");
			return;
		}
		if(x==2){
			system("cls");
			Game_version();
		}else if(x==3){
			system("cls");
			Game_author_said();
		}
		Sleep(5000);
		system("cls");
		Game_user();
	}
}
void opt(){
	system("color 5");
	printf(
	"1.People vs. People(Normal mode)\n"
	"\n"
	"2.People vs. Computers(Expert mode)"
	);
}

int determine(){
	bool flag=0;
	if(checkerboard[1][1]==checkerboard[1][2]&&checkerboard[1][2]==checkerboard[1][3]){
		if(checkerboard[1][1]==1) return 1;
		if(checkerboard[1][1]==2) return 2;
	}
	if(checkerboard[2][1]==checkerboard[2][2]&&checkerboard[2][2]==checkerboard[2][3]){
		if(checkerboard[2][1]==1) return 1;
		if(checkerboard[2][1]==2) return 2;
	}
	if(checkerboard[3][1]==checkerboard[3][2]&&checkerboard[3][2]==checkerboard[3][3]){
		if(checkerboard[3][1]==1) return 1;
		if(checkerboard[3][1]==2) return 2;
	}
	if(checkerboard[1][1]==checkerboard[2][1]&&checkerboard[2][1]==checkerboard[3][1]){
		if(checkerboard[1][1]==1) return 1;
		if(checkerboard[1][1]==2) return 2;
	}
	if(checkerboard[1][2]==checkerboard[2][2]&&checkerboard[2][2]==checkerboard[3][2]){
		if(checkerboard[1][2]==1) return 1;
		if(checkerboard[1][2]==2) return 2;
	}
	if(checkerboard[1][3]==checkerboard[2][3]&&checkerboard[2][3]==checkerboard[3][3]){
		if(checkerboard[1][3]==1) return 1;
		if(checkerboard[1][3]==2) return 2;
	}
	if(checkerboard[1][1]==checkerboard[2][2]&&checkerboard[2][2]==checkerboard[3][3]){
		if(checkerboard[1][1]==1) return 1;
		if(checkerboard[1][1]==2) return 2;
	}
	if(checkerboard[1][3]==checkerboard[2][2]&&checkerboard[2][2]==checkerboard[3][1]){
		if(checkerboard[1][3]==1) return 1;
		if(checkerboard[1][3]==2) return 2;
	}
	for(int i=1;i<=3;i++){
		for(int j=1;j<=3;j++){
			if(convert(checkerboard[i][j])=='?'){
				flag=1;
			}
		}
	}
	if(flag==0){
		return 0;
	}
}
void stamp(){
	for(int i=1;i<=3;i++){
		for(int j=1;j<=3;j++){
			cout<<convert(checkerboard[i][j])<<' ';
		}
		cout<<endl;
	} 
}
void cls(){
	for(int i=0;i<4;i++){
		for(int j=0;j<4;j++){
			checkerboard[i][j]=0;
		}
	}
}
void chess::Game_game_pvp(){
	system("cls");
	cls();
	system("color F");
	int p1_x,p1_y;
	int p2_x,p2_y;
	for(int i=1;;i++){
		if(determine()==0){
			system("cls");
			MessageBox(GetForegroundWindow(),"  draw","The outcome has been divided",MB_OK);
			abort();
		}
		if(determine()==1){
			system("cls");
			MessageBox(GetForegroundWindow(),"  Player2 lost, you won","The outcome has been divided",MB_OK);
			abort();
		}
		if(determine()==2){
			system("cls");
			MessageBox(GetForegroundWindow(),"  Player1 lost, you won","The outcome has been divided",MB_OK);
			abort();
		}
		if(determine()==0){
			system("cls");
			MessageBox(GetForegroundWindow(),"  draw","The outcome has been divided",MB_OK);
			abort();
		}
		stamp(); 
		if(i%2==1){
			cout<<"Please input rows and columns for player 1 : ";
			cin>>p1_x>>p1_y;
			checkerboard[p1_x][p1_y]=1;
			system("cls");
			if(determine()==0){
				system("cls");
				MessageBox(GetForegroundWindow(),"  draw","The outcome has been divided",MB_OK);
				abort();
			}	
		}else{
			cout<<"Please input rows and columns for player 2 : ";
			cin>>p1_x>>p1_y;
			checkerboard[p1_x][p1_y]=2;
			system("cls");
			if(determine()==0){
				system("cls");
				MessageBox(GetForegroundWindow(),"  draw","The outcome has been divided",MB_OK);
				abort();
			}
		}
	}
}
void Game_mode(){
	chess np;
	int xz;
	opt();
	cin>>xz;
	if(xz==1){
		np.Game_game_pvp();
	}else if(xz==2){
		np.Game_game_pvc();
	}
}
void chess::Game_game_pvc(){
	system("cls");
	cls();
	system("color F");
	int p_x,p_y;
	int c_x,c_y;
	for(int i=1;;i++){
		c_x=rand()%3+1;
		c_y=rand()%3+1;
		if(determine()==1){
			system("cls");
			MessageBox(GetForegroundWindow(),"  computer lost, you won","The outcome has been divided",MB_OK);
			abort();
		}
		if(determine()==2){
			system("cls");
			MessageBox(GetForegroundWindow(),"  you lost, computer won","The outcome has been divided",MB_OK);
			abort();
		}
		if(i%2==1){
			stamp(); 
			cout<<"Please input rows and columns for player : ";
			cin>>p_x>>p_y;
			checkerboard[p_x][p_y]=1;
			system("cls");
		}else{
			stamp(); 
			cout<<"Please input rows and columns for computer : ";
			Sleep(1000);
			round();
			Sleep(950); 
			system("cls");
		}
		
	}
}

/*============== The game is about to begin ! ==============*/

int main(){
	srand(time(nullptr));
	system("color 7");
	if(Game_init()==2){
		system("color 4"); return 0;
	}else Game_interface();
	chess myclass;
	Game_mode();
	return 0;
}
使用 Cadence ams 仿真器 对 混合信号电路 进行仿真 文章目录Cadence 基于ams仿真器的混合信号电路仿真建立数字(Digital)模块建立 Analog - Digital 混合仿真原理图建立 Analog - Digital 混合仿真config文件配置混合信号电路仿真环境针对混合信号电路demo进行仿真 Cadence 基于ams仿真器的混合信号电路仿真 你好,这里是一篇关于使用 Cadence 软件通过 ams 仿真器对混合信号电路(D... 阅读详情

相关推荐

右腿驱动电路设计:从共模干扰原理到生物电采集实战

在生物电信号采集领域,共模干扰是影响测量精度的核心挑战之一,其本质源于环境电磁场通过容性耦合在人体表面产生的感应电流。根据欧姆定律,由于人体组织阻抗的不均衡性,共模电流会在不同测量点产生差异化的压降,从而转化为难以滤除的差分噪声。为解决这一问题,右腿驱动技术应运而生,它通过负反馈原理主动抵消干扰,显著提升系统的共模抑制比。该技术广泛应用于心电图、脑电图等医疗电子设备中,是确保微弱生理信号质量的关键环节。本文结合工程实践,深入剖析了右腿驱动电路中的仪表放大器选型、反馈环路稳定性设计以及PCB布局布线要点,为高

weixin_31476015的博客 440

【C语言】三子棋小游戏详解

在用c语言实现三子棋小游戏之前,我们应当了解三子棋的游戏规则:在九宫格棋盘上,哪一方三个棋子连成一线(一行或一列或对角线)即判定哪一方胜利。 以下为源代码: 1.首先打印出菜单。 void menu() { printf("**********************************\n"); printf("**********************************\n"); printf("***** 0.play *************\n"); pr

weixin_45177279的博客 6608

Fusion 360嵌入式外壳建模实战:从草图到可装配结构

参数化三维建模是现代电子结构设计的核心能力,其本质是通过几何约束与特征驱动实现设计意图的精确表达和快速迭代。Fusion 360作为集成CAD/CAM/CAE的云端平台,以时间轴驱动的参数化工作流、基于基准面的草图约束机制和面向制造的特征操作逻辑,显著提升了嵌入式硬件的结构验证效率。该技术价值在于支持工程师在无专业机械背景前提下,独立完成PCB适配、散热布局、接口开孔与装配干涉检查等关键任务,广泛应用于3D打印原型、CNC加工外壳及IoT终端结构开发。本文以ESP32冰箱监控终端为实例,详解从基准定义、草图

weixin_35671843的博客 587

C语言实现三子棋小游戏

本文章介绍如何通过C语言实现三子棋小游戏

2401_84689376的博客 3193

nnU-Net v2实战:从零开始配置环境与训练自定义医学影像数据集

本文详细介绍了nnU-Net v2在医学影像分割中的实战应用,从环境配置到自定义数据集训练的全流程。重点讲解了Python 3.9+环境搭建、PyTorch安装技巧、医学影像数据预处理规范,以及五折交叉验证训练方法,帮助开发者快速掌握这一先进的医学影像分析工具。

weixin_28718487的博客 352

Flink CDC 1.18.1 Oracle 数据同步到postgresql

8、修改Flink的配置文件,主要是各种服务的绑定地址,默认为localhost,统统改为0.0.0.0,如:rest.address: 0.0.0.0 #localhost。将flink-sql-connector-oracle-cdc-3.0.1.jar复制到flink-1.18.1/lib目录中。6、下载 flink-connector-jdbc-3.1.1-1.17.jar,postgresql-42.7.3.jar。7、安装postgresql就不说了,相信你已经有了数据库了。

ynzhangyao的专栏 1799

C语言小游戏:三子棋

Hello,csdn的各位小伙伴你们好啊!这次小赵给大家带来的C语言小游戏是三子棋,三子棋也就是大家常玩的井字棋,这样的一个编程想必会让很多人都兴奋不已,好了好了那我们赶快开始吧。好了今天的分享就到这里了,大家等会可以试着去敲属于自己的三子棋C语言游戏哦!如果大家喜欢小赵的C语言游戏系列,也可以订阅小赵的C语言小游戏系列,如果大家对这个游戏代码有更好的改进完善方案也可以在评论区留言哦,小赵会一一回复的。!!

zcg3063126760的博客 1718

pytorchDataLoader中调整数据长度不一致问题(lstm等)

数据长度不一致 用pytorch做rnn的时候,如果输入数据不一样长,可以用两种方式解决。 一种是自定义collate方法, #自定义collate_fn dataloader.DataLoader(dataset,4,True,collate_fn=my_collate) 然后里面写数据和标签载入方式即可 def my_collate(batch): data = [item[0] for item in batch] target = [item[1] for item in batc

weixin_48174100的博客 7770

用C语言实现小游戏之——【三子棋】

用C语言实现一个傻乎乎的基础三子棋小游戏

m0_63099455的博客 3732

ch32v103xx 烧写

烧写方式 串口uart, usb,swd(wch link)但不建议按此使用,参官方说明。

qq_39239990的博客 637

基于注意力机制的行人重识别(Reld)模型论文解读----Relation-Aware Global Attention for Person Re-identification

任务概述:在多摄像头的复杂场景中,快速定位查找指定目标的所有结果。

qq_52053775的博客 1894

C语言实现三子棋(超详解版本)

c语言实现三子棋超详解

weixin_67900732的博客 9252

k230+CanMV+micropython环境下byte、int、hex、string之间的转换常用函数实测

【代码】k230+CanMV+micropython环境下byte、int、hex、string之间的转换常用函数实测。

weixin_47446386的博客 119

三子棋小游戏

三子棋小游戏三子棋游戏简介一、分析及实现1.棋盘2.落子3.判断输赢二、程序演示三.完整代码1.main.c2.game.c3.game.h总结 三子棋游戏简介 这是一个简单的三子棋小游戏,估计大家小时候都玩儿过,只要能连成三个,无论是行,列还是对角线,就可以胜利了。是不是很简单呢,那我们来尝试一下用C语言来写一个简单的三子棋游戏。 一、分析及实现 1.棋盘 想要玩游戏,那首先应该有一个棋盘吧。因为我们玩儿的是三子棋,所以来说一个3X3的棋盘应该可以满足要求。这里使用了一个三行三列的二维数组来模拟三子棋

weixin_44614083的博客 4548

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

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

我们刚开始一定需要一个棋盘,然后就是将它初始化,初始化以后我们要打印一下,让玩家看到棋盘,接下来就是下棋了,下棋肯定是一个重复的过程,一人下一次,因此下棋的逻辑肯定要用循环来表示,每一次下棋以后都要判断是否有人赢,以及棋盘是否满了,如果都不满足,游戏才继续,等游戏结束后我们要打印谁赢了还是平局,所以这里我们可以用ret 来当做一个标识。while循环来实现,我们还需要一个菜单来提示我们的玩家,所以我们应该需要一个菜单函数,我们就可以在main函数中先把大体的框架搭建起来。这是我们需要一个函数来初始化棋盘。

bushibrnxiaohaij的博客 690

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

用数组实现三子棋小游戏——纯C

⚡⚡⚡三子棋小游戏🌟写在前面Ⅰ.游戏规则Ⅱ.游戏逻辑Ⅲ.游戏具体代码实现ⅰ.编写代码前的准备ⅱ.打印菜单ⅲ.开始或退出游戏ⅳ.初始化棋盘ⅴ.打印棋盘ⅵ.玩家下棋并打印棋子ⅶ.电脑下棋并打印棋子ⅷ.判断输赢Ⅳ.游戏完整代码ⅰ.test.c内代码ⅱ.game.c内代码ⅲ.game.h内代码Ⅴ.该三子棋存在的缺陷🌟写在最后 作者:Shining-point 作者的博客主页:Shining-point的博客 如果觉得博主的博客写的不错或者有所收获的话,希望大家多多🚀点赞 🚀评论🚀收藏。你们的支持是我的最大动力

Shining-point的博客 1604

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

【C语言】三子棋小游戏

哈喽,大家好,今天我们要利用之前所学习的C语言知识来写一个三子棋小游戏。

m0_73648729的博客 880

【万字讲解C语言入门小游戏】——三子棋

C语言三子棋游戏讲解,小小的优化了电脑的落子方式。

杨同学的博客 5290

三子棋小游戏——C实现

文章目录一、效果展示二、游戏功能实现(详细版)1.棋盘初始化2.打印棋盘3.玩家下棋4.电脑下棋5.判断游戏输赢6.判断游戏是否平局三.test.c四.game.c五.game.h ☀️☀️☀️ 今天学习一个自制实现三子棋小游戏 一、效果展示 ☀️☀️☀️ 我们可以用纯C实现三子棋小游戏,与电脑进行对弈,效果如下: 二、游戏功能实现(详细版) 1.棋盘初始化 void InitBoard(char board[ROW][COL], int row, int col) { int

buhuisuanfa的博客 2071

【C语言】——三子棋小游戏的实现详解

要成功实现三子棋,要做好前期准备工作,在实际应用软件中,往往会有数以万计行代码甚至更多,为提升效率也为增加代码的可读性就要通过功能分解实现函数的模块化思想实现程序设计,这里我们将代码分别写到game.h,game.c,test.c里面去,game.h专门用来声明我们定义的函数,game.c里实现我们各个函数的功能,test.c来测试我们的游戏代码,这种分块思想也方便大家理解。这里我们将运用c语言中的二维数组,循坏控制语句,函数封装的内容,过程中为大家详细解释最后为大家附上整个游戏实现的代码,那就开始吧!

2301_78987066的博客 1550

童年小游戏三子棋(C语言数组实现)

目录认识游戏游戏框架游戏实现基本构思棋子棋盘下棋判断输赢效果展示全部代码游戏效果 认识游戏 三子棋是黑白棋的一种。三子棋是一种民间传统游戏,又叫九宫棋、圈圈叉叉、一条龙、井字棋等。将正方形对角线连起来,相对两边依次摆上三个双方棋子,只要将自己的三个棋子走成一条线,对方就算输了。但是,有很多时候会出现和棋的情况。 一说大家应该都不陌生,童年上学无聊肯定玩过,随时随地,都可以玩,只需要一张纸画一个棋盘,然后两个人就可以进行快乐的玩耍了! 游戏规则 游戏规则很简单,只要行,列,对角线,任意自己的三个棋子走成

bug郭的博客 1328

【C语言】三子棋及多子棋

C语言实现三子棋及多子棋

m0_62531913的博客 872

三子棋小游戏(C语言)

对有一个游戏程序本身来说,需要很多的函数调用,这样才能有条不紊的写好游戏代码,所以对这个三子棋小游戏而言,我选择多文件编写,主要分为头文件、源文件、和主源文件。很显然,头文件则是去包含本次编程所用到的所有头文件以及函数和变量的声明等,源文件则是去定义并且编写各种函数,主源文件简单的说,就是去玩这个游戏。 接下来,我们就开始本次代码之旅 #ifndef _chess_h #define -chess...

库蒂尼奥的博客 2003

C语言编写三子棋小游戏

打印完棋盘,准备写玩家下棋的函数,在输入玩家坐标时应让系统判断输入的坐标是否在所打印的棋盘范围之内,再判断该玩家所在的位置是否已经被占满,如果被占满则提醒坐标被占用,不能下棋,同时如果输入的格式不正确或错误,则提醒输入错误。,对玩家的选择进行判断是否进行游戏,如果进行则进行game()函数,退出则结束程序,输入错误则提示玩家选择错误并重新打印菜单供玩家选择,同时在玩家游戏结束时也应该重新打印游戏菜单,让玩家选择是否重新开一局。然后是电脑下棋的函数,用随机函数生成位置即可,但要判断生成的点是否已经被占用。

2201_75728939的博客 942

【C语言】小游戏系列——三子棋(保姆级教程)

我相信三子棋大家并不陌生,小时候经常玩,深受大家的喜欢。今天我们用c语言来编写一个简单的三子棋。本文由游戏规则,游戏思路.,游戏菜单设置,游戏实现步骤,完整代码游戏构成

m0_71659028的博客 3666

C语言小游戏--三子棋

C语言小游戏–三子棋 三子棋 (图片来自百度)

知识分享与学习笔记总结,欢迎指点 1556
上一篇: 三子棋游戏(C++)
下一篇: 三子棋小游戏(C++)
186-38
博客等级 码龄4年 30粉丝 30原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值