C语言占领游戏

news2024/9/23 16:11:55

目录

  • 开头
  • 程序
  • 程序的流程图
  • 程序的效果
  • 结尾

开头

大家好,我叫这是我58。

程序

#define _CRT_SECURE_NO_WARNINGS 1
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#include <Windows.h>
void printmap(const char strmap[10][10]) {
	int ia = 0;
	int ib = 0;
	for (ia = 0; ia < 10; ia++) {
		for (ib = 0; ib < 10; ib++) {
			printf("\033[3%sm%c\033[0m", '*' == strmap[ia][ib] ? "2;1" : '-' == strmap[ia][ib] ? "1;1" : "6", strmap[ia][ib]);
		}
		printf("\n");
	}
}
void change(char* cp, char* cpa) {
	char chan[10] = { 0 };
	const int arr[9] = { -11, -10, -9, -1, 0, 1, 9, 10, 11 };
	const char chana[3] = "-|";
	int i = 0;
	int ia = 0;
	int ib = 0;
	int ic = 0;
	char* ccp = chan;
	for (; i < 9; i++) {
		('*' != *(cp + arr[i]) && (*ccp++ = *(cp + arr[i]), ('-' == *(cp + arr[i]) && ia++, '|' == *(cp + arr[i]) && ib++))), ('*' == *(cp + arr[i]) && ic++);
	}
	if (ia == ib) {
		 *ccp = chana[rand() % 2];
	}
	else if (ia < ib) {
		 *ccp = '|';
	}
	else {
		 *ccp = '-';
	}
	*cpa = chan[(i = rand() % (10 - ic))];
}
int main() {
	float fspd = 1.0f;
	char stw[9] = "color 0";
	srand((unsigned int)time(NULL));
	char strmap[10][10] = {
		'*','*','*','*','*','*','*','*','*','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','*','*','*','*','*','*','*','*','*'
	};
	char strmapa[10][10] = {
		'*','*','*','*','*','*','*','*','*','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','-','-','-','-','|','|','|','|','*',
		'*','*','*','*','*','*','*','*','*','*'
	};
	int i = 1;
	int ia = 1;
	int iw = 0;
	printf("这次游戏的倍速为多少?(0倍速自动转为1倍速) -> ");
	scanf("%f", &fspd);
	0 == fspd && (fspd = 1.0f);
	system("cls");
	while (!iw) {
		for (i = 1; i < 9; i++) {
			for (ia = 1; ia < 9; ia++) {
				change(&strmap[i][ia], &strmapa[i][ia]);
			}
		}
		for (i = 1; i < 9; i++) {
			for (ia = 1; ia < 9; ia++) {
				strmap[i][ia] = strmapa[i][ia];
			}
		}
		printmap(strmap);
		'-' == strmap[1][1] && (iw = 1), '|' == strmap[1][1] && (iw = -1);
		for (i = 1; i < 9; i++) {
			for (ia = 1; ia < 9; ia++) {
				if (iw > 0) {
					if ('|' == strmap[i][ia]) {
						iw = 0;
						goto g;
					}
				}
				else {
					if ('-' == strmap[i][ia]) {
						iw = 0;
						goto g;
					}
				}
			}
		}//判断
	g:
		Sleep(1000 / fspd);
		system("cls");
	}
	strcat(stw, iw > 0 ? "C" : "9");
	system(stw);
	printf("“%c”赢了", iw > 0 ? '-' : '|');
	return 0;
}//占领游戏(我随便取的):改变 打印 判断-->改变(概率:(←↑→↓↖↗↘↙)?本+多数)

程序的流程图

开始
把宏_CRT_SECURE_NO_WARNINGS定义为1
导入stdio.h
导入stdlib.h
导入string.h
导入time.h
导入Windows.h
定义printmaze函数
定义change函数
定义单精度浮点型fspd为1.0
把有9个字符的字符串stw初始化为“color 0”
把随机数的种子设为现在的时间戳
定义有10行10列的二维字符数组strmap为下面的图片

判断
清屏
等待1除以fspd秒,等待好后就清屏
否(等待1除以fspd秒,等待好后就清屏)
'-' == strmap[1][1]?
把iw设为1
'|' == strmap[1][1]?
把iw设为负1
设i为1
i < 9?
设ia为1
ia < 9?
iw > 0?
'|' == strmap[i][ia]?
设iw为0
转到g标签
'-' == strmap[i][ia]?
ia自增1
i自增1
把有10行11=0列的二维字符数组strmapa初始化为上面的图片
定义整型i为1
定义整型ia为1
定义整型iw为0
输出“这次游戏的倍速为多少?(0倍速自动转为1倍速)”
把fspd设为你输入的单精度浮点数
0 == fspd?
把fspd设为1.0
!iw?
设i为1
i < 9?
设ia为1
ia < 9?
执行change函数,参数有二维字符数组strmap第i行第ia列的地址和二维字符数组strmapa第i行第ia列的地址
ia自增1
i自增1
设i为1
i < 9?
设ia为1
ia < 9?
把二维字符数组strmap第i行第ia列的元素设为二维字符数组strmapa第i行第ia列的元素
ia自增1
i自增1
执行printmap函数,参数有二维字符数组strmap
g
如果iw大于0,就把stw连接上一个字符“C”,否则就把stw连接上一个字符“9”
执行cmd命令,命令为字符串stw
输出““%c”赢了”(如果iw大于0,那么“%c”就代字符“-”,否则就代“|”)
结束
设iw为0
转到g标签
占领游戏(我随便取的):改变 打印 判断-->改变(概率:(←↑→↓↖↗↘↙)?本+多数)
printmap函数
结束
开始
定义整型ia为0
定义整型ib为0
设ia为0
ia < 10?
设ib为0
ib < 10?
输出“\​033[3%sm%c\​033[0m”(如果字符“*”为二维字符数组strmap第ia行第ib列的元素,那么“%s”就代“2;1”,否则如果字符“-”为二维字符数组strmap第ia行第ib列的元素,那么“%s”就代“1;1”,否则就代“6”,“%c”则代二维字符数组strmap第ia行第ib列的元素)
ib自增1
输出“\​n”
ia自增1
change函数
结束
开始
把有10个字符的字符串chan全都初始化为0
把有9个整型的常量整型数组arr分别初始化为-11,-10,-9,-1,0,1,9,10和11
把有3个字符的常量字符串chana初始化为“-|”
定义整型i为0
定义整型ia为0
定义整型ib为0
定义整型ic为0
定义字符指针ccp为chan
i < 9?
'*' != *(cp + arr[i])?
把解引用的ccp设为解引用的某一个结果,其中这个结果就是cp加上arr的第i项的结果,并把ccp向右移动一位
'-' == *(cp + arr[i])?
ia自增1
'|' == *(cp + arr[i])?
ib自增1
'*' == *(cp + arr[i])?
ic自增1
i自增1
ia == ib?
把解引用的ccp设为常量字符串chana第随机值模2的值项的结果
把解引用的cpa设为字符串chan的第随机值模上10减ic的差的值项,并把这个值赋给i
ia < ib?
把解引用的ccp设为字符“|”
把解引用的ccp设为字符“-”

程序的效果

「占领游戏」

结尾

你觉得我这次做的游戏好吗?如果你觉得我这次做的游戏不好的话,就可以评论一下我这次做的游戏不好的原因吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2068075.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C语言 自定义类型-结构体 #结构体类型的声明 #结构体的自引用 #结构体内存对齐 #结构体位段的实现

文章目录 前言 一、结构体类型的声明 1、结构体的基础知识 2、结构体的声明 3、特殊声明 二、结构体的自引用 三、结构体变量的定义和初始化 1、结构体的定义分为两类 2、结构体的初始化 四、结构体内存对齐 1、结构体在内存中是怎样存放的呢&#xff1f; 2、结构体的对齐规则&…

数字卫星:「超实时仿真」实现处理器性能5倍提升

01.数字孪生in卫星 卫星及其附属系统在航天领域具有十分重要的意义。近年来&#xff0c;卫星产业发展迅猛&#xff0c;数字化、网络化、智能化、服务化转型升级需求日益增长。为进一步完善星务软件验证工作、获取在轨卫星模拟数据&#xff0c;“数字卫星”成为当下主流趋势。 …

考研数学快9月了才开始强化,《660》《880》哪本优先?

快9月了&#xff0c;如果你刚开始强化&#xff0c;那要抓点紧了&#xff01; 很多使用660880这两本习题册的同学提问&#xff1a;《660》《880》哪本优先&#xff1f; 其实&#xff0c;不管先做那本&#xff0c;都一样&#xff0c;做题的目的是为了查缺补漏&#xff0c;而不是…

一起学Java(5)-[起步篇]教你掌握本协作项目中的Gralde相关配置文件(下)

接上篇《一起学Java(4)-java-all-in-one协作项目相关文件研究&#xff08;Gradle篇-上&#xff09;》&#xff0c;本文继续研究项目中Gradle相关文件。 全文详见个人独立博客&#xff1a;https://www.coderli.com/java-go-5-project-config-files-intro-gradle-two/ 一起学Ja…

ACCESS 手工注入实战 凡诺靶场

简介 Access数据库注入攻击是一种常见的网络安全&#xff0c;通过注入SQL代码来获取未授权的数据访问权限。这种攻击利用了应用程序与数据库之间的交互漏洞&#xff0c;攻击者通过输入特定的SQL代码片段来操纵数据库查询&#xff0c;从而绕过应用程序的安全机制&#xff0c;获取…

R 语言学习教程,从入门到精通,R 绘图饼图(22)

1、R 绘图 饼图 R 语言提供来大量的库来实现绘图功能。 饼图&#xff0c;或称饼状图&#xff0c;是一个划分为几个扇形的圆形统计图表&#xff0c;用于描述量、频率或百分比之间的相对关系。 R 语言使用 pie() 函数来实现饼图&#xff0c;语法格式如下&#xff1a; pie(x, la…

软件测试——IDEA2023配置assert断言

IDEA2023配置assert断言 vm options输入框 输入以下内容 -ea -Dfile.encodingUTF-8 点击APPLY OK

js 手写图片懒加载插件

一、目标 模仿vue-lazyload插件 只需将img标签的src属性名替换为自定义属性v-lazy&#xff0c;即可实现图片懒加载功能 例如&#xff1a; 二、实现 不清楚图片懒加载原理的参考我的上一篇博客 1.封装自定义插件&#xff1a;暴露一个对象&#xff0c;包含一个install方法 …

咸鱼之王手游内购修复无bug运营版联网架设+后台

今天给大家带来一款单机游戏的架设&#xff1a;咸鱼之王手游。 另外&#xff1a;本人承接各种游戏架设&#xff08;单机联网&#xff09; 本人为了学习和研究软件内含的设计思想和原理&#xff0c;带了架设教程仅供娱乐。 教程是本人亲自搭建成功的&#xff0c;绝对是完整可…

在Ubuntu 部署 Grafana且监控MySQL数据

一、安装 打开终端按顺序执行以下命令 1.添加 Grafana 的 APT 仓库&#xff1a; sudo apt-get install -y software-properties-common sudo add-apt-repository "deb https://packages.grafana.com/oss/deb stable main" 2.导入Grafana GPG key&#xff1a; wge…

国产光耦合器的应用和优势浅析

光耦合器&#xff0c;也称为光隔离器&#xff0c;是电子领域的关键元件&#xff0c;为系统的不同部分提供必要的电气隔离。在国内半导体行业&#xff0c;高性能光耦合器的开发已成为一个重点关注领域&#xff0c;因为它们广泛应用于各个领域&#xff0c;包括医疗设备、汽车电子…

安泰功率放大器怎么使用

功率放大器是电子电路中的重要组件&#xff0c;用于增加输入信号的幅度&#xff0c;以便驱动各种负载。在不同的应用中&#xff0c;功率放大器有不同的使用方法和技巧。下面安泰电子将介绍功率放大器的基本使用方法&#xff0c;以及一些常见的应用示例。 1.连接电源 首先&#…

创意无限:7 个顶级广告设计软件推荐

在竞争激烈的市场中&#xff0c;一款引人注目的平面广告设计能够为设计师带来显著的业绩提升和收益。然而&#xff0c;除了设计师的专业技能&#xff0c;设计软件的选择同样对广告的最终效果有着不可忽视的影响。本文将介绍几款经过作者亲自测试并极力推荐的平面广告设计软件&a…

安装 podman 与 podman-compose

文章目录 Github官网文档Podman 简介Podman 与 Docker 区别 Podman 安装下载安装&#xff08;推荐&#xff09;brew 安装&#xff08;Mac&#xff09; Podman 虚拟机虚拟机基础rootful 模式 Podman 镜像与容器安装 podman-composedocker-compose.yml Github https://github.co…

秋招突击——8/23——知识补充——反向代理和正向代理——负载均衡算法

文章目录 引言正文正向代理反向代理负载均衡 面试题1、nginx属于七层网络结构中的哪一层&#xff1f;2、Nginx有哪些负载均衡算法3、什么是反向代理&#xff1f;什么是正向代理&#xff1f; 总结 引言 一步一步把以前忘记的计算机网络知识再捡起来&#xff0c;重新整理一遍&am…

Linux线上安装遇到的一些问题

本文目录 一、基于Linux安装php8二、Linux线上连接数据库问题三、关于线上nginx报错问题 一、基于Linux安装php8 首先登录ubuntu系统后运行命令&#xff1a;sudo apt update 更新完之后&#xff0c;安装我们需要的软件&#xff1a; sudo apt install nginx 安装 mysql。运行命…

UneMeta创始人讲述自己在Web3+IP领域创业的心路历程

昨日&#xff0c;UneMeta创始人&#xff0c;Ann_tyrion在X分享了一篇推文&#xff0c;分享了自己在探索Web3与IP产业结合过程中的心路历程&#xff0c;她并没有像很多项目方那样一味的讲述宏大的叙事&#xff0c;而是字里行间透露出对这个行业的探索和不断给自己充实信念&#…

2024最新Python+PyCharm保姆级安装教程【附激活码】

PyCharm 是由捷克的 JetBrains 公司开发的一款强大的 Python 集成开发环境&#xff08;IDE&#xff09;&#xff0c;它为 Python 开发者提供了一个全面的编程工具集&#xff0c;支持从代码编写到代码测试、调试和优化等各个环节 &#xff0c;它支持代码自动完成、代码检查、实时…

多功能秒达工具箱全开源源码,可自部署且完全开源的中文工具箱

简介&#xff1a; 多功能秒达开源工具箱源码&#xff0c;&#xff0c;可自部署且完全开源的中文工具箱&#xff0c;永远的自由软件&#xff0c;轻量级运行&#xff0c;全平台支持&#xff08;包括ARMv8&#xff09;&#xff0c;完全类似 GPT 的支持&#xff0c;与高效的 UI 高…

MDK报错 .error: unknown register name ‘msp‘ in asm

似乎只能安装 V5的编译器 才能解决&#xff0c;下面是安装链接 https://blog.csdn.net/u011436603/article/details/136419969 V5的编译器 CSDN免费下载链接&#xff1a; 以下办法解决不了 解决办法&#xff1a; 在MDK 桌面图标&#xff0c;右击打开安装位置&#xff0c;在:\K…