C语言占领游戏

news/2024/9/18 14:45:51/ 标签: c语言, 游戏, visual studio, 占领, 动画, 倍速, visualstudio

目录

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

开头

大家好,我叫这是我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.ppmy.cn/news/1516931.html

相关文章

windows核心编程:5章:将一个进程放入一个作业中,以限制此进程具体能够做那些事情

windows核心编程&#xff1a;5章&#xff1a;将一个进程放入一个作业中&#xff0c;以限制此进程具体能够做那些事情 windows核心编程&#xff1a;5章&#xff1a;将一个进程放入一个作业中&#xff0c;以限制此进程具体能够做那些事情 文章目录 windows核心编程&#xff1a;…

Linux的yum包管理工具(在线安装)

Linux的软件从哪里下载&#xff1f; 我们用的Linux系统都是国外的&#xff0c;所以下载软件自然从国外下载。但是访问国外网址太慢了&#xff0c;有没有什么办法快一点呢&#xff1f; 有&#xff01; 啊&#xff0c;还有这么美的事情&#xff1f;快点告诉我&#xff01; 好…

【Redis】RDB和AOF持久化

RDB和AOF持久化 一、什么是持久化&#xff1f;二、RDB三、AOF 一、什么是持久化&#xff1f; 数据一般写在内存上&#xff0c;但是当重新启动计算机内存数据是会丢失的&#xff0c;而硬盘中的数据是不会丢失的&#xff0c;所以&#xff0c;当我们把数据从内存放到硬盘中的话就…

andorid动画之呼吸效果

目录 效果图实现方式一 &#xff1a;使用 ObjectAnimator 实现呼吸效果方式二&#xff1a;使用 ValueAnimator 实现呼吸效果 总结 在 Android 中实现呼吸效果的动画可以通过多种方式来实现&#xff0c;最常见的方法是使用 ObjectAnimator 和 AnimatorSet。呼吸效果通常指的是一…

Vivado 编译固件后时序报告查询

随笔记录 目录 1. 背景介绍 2. 查看时序 2.1 Vivado tcl 模式编译固件&#xff0c;查看时序报告 2.1.1 时序报告路径 2.1.2 查看时序报告内容 2.2 Vivado GUI 模式编译固件&#xff0c;查看时序 1. 背景介绍 硬件源码&#xff0c;需要编译固件生成 bit/bin 文件后&…

Python3.11使用labelimg

标注工具labelImg的作者转战label-studio&#xff0c;并把它归档不再继续开发了&#xff0c;所以新版Python是不被支持的。 使用Python3.11通过pip的方式安装labelImg后&#xff0c;使用时会报xxx的错误&#xff0c;可以通过如下方式解决&#xff1a; pip uninstall labelimg…

配电房挂轨机器人巡检系统的主要优点包括

背景 配电房是724h工作的封闭环境&#xff0c;人工巡检无法在时间上和空间上对配电室进行全量监控。有限的巡检时间&#xff0c;必然带来设备运转的黑盒时间&#xff0c;设备故障和隐患无法及时监控与消缺。因而不可避免存在漏检、误检的情况&#xff0c;不仅容易隐藏电力系统…

pikachu-ssrf_redis

目录 SSRF 1、SSRF漏洞介绍&#xff1a; 2、SSRF漏洞原理&#xff1a; 3、SSRF漏洞利用手段&#xff1a; 4、SSRF漏洞绕过方法&#xff1a; SSRF(curl)用法 1、通过网址访问链接 2、利用file协议查看本地文件 3、dict协议扫描内网主机开放端口 4.gopher&#xff1a;威…

信息安全——密码学基础

密码学主要由密码编码密码分析俩个部分组成 密码编码学&#xff1a;研究信息的交换处以实现信息的安全保护 密码分析学&#xff1a;研究密文获取对应的明文信息 《中华人民共和国密码法》 2020年1月1日起实施。2005年4月1日起国家施行《中华人民共和国电子签名法》 密码…

基于微信小程序的电动车租赁系统---附源码97332

摘 要 本文旨在介绍基于Spring Boot框架的电动车租赁系统在微信小程序平台上的设计与实现。随着城市出行需求的不断增长和绿色出行意识的提升&#xff0c;电动车租赁系统作为一种便捷、环保的出行方式逐渐受到关注。通过本系统&#xff0c;用户可以通过微信小程序实现用户导航…

Kafka·Producer

Producer发送原理 拦截器进行拦截 对key和value进行序列化 org.apache.kafka.clients.producer.KafkaProducer#doSend 分区选择 计算消息要发送到topic的哪个分区上 若指定了分区&#xff0c;则使用指定的值没有指定的话则使用分区器计算得到或者使用hash取余的方式 暂存…

window 安装 anaconda教程(含安装包)

在Windows系统中安装Anaconda的步骤可以概括如下&#xff1a; 下载Anaconda&#xff1a; 访问Anaconda的官方网站或使用国内的镜像站点下载适合Windows的安装程序。例如&#xff0c;清华大学开源镜像网站提供了快速下载选项 。免费下载地址 启动安装程序&#xff1a; 双击下载…

Python-进阶-Excel基本操作

文章目录 Excel 基本操作1. 概述2. 写入2.1 使用 xlwt2.2 使用 XlsxWriter 3. 读取4. 修改 Excel 基本操作 1. 概述 在数据处理方面&#xff0c;Python 一直扮演着重要的角色&#xff0c;对于 Excel 操作&#xff0c;它有着完整且成熟的第三方库&#xff0c;使用也较为简单。…

STM32 HAL SDADC DMA

1、简介 由于项目需要使用STM32F373单片机的SDADC功能对电位计进行检测,网上资料比较少,踩了很多坑,下面进行总结。 2、STM32CubeMX配置 2.1 RCC配置 2.2 SYS 配置 2.3 SDADC 2 配置 2.3.1 Parameter Settings配置 SDADC共有三种输入模式,分别为差分模式、 单端偏移模…

网络协议的基础知识

了解OSI模型和TCP/IP模型 在上一篇关于互联网的工作原理的数据传输中&#xff0c;我们了解到&#xff0c;两台计算机之间传输数据时&#xff0c;需要将数据封装成数据包。这些数据包中不仅包含我们实际要传输的信息&#xff0c;还包括很多额外的内容&#xff0c;比如目标地址、…

川崎机器人维修请开启马达电源报警故障

‌川崎机器人故障代码主要用于指示机器人的不同运行问题和状态&#xff0c;帮助快速识别和解决这些问题。‌Kasawaki机械手故障代码通常以字母和数字的组合形式出现&#xff0c;其中字母代表故障的类型&#xff0c;而数字则是具体的代码编号。这些代码可以分为‌P‌代表操作错误…

【网络安全】服务基础第一阶段——第三节:Windows系统管理基础----服务器远程管理与安全权限

服务器远程管理是一种技术&#xff0c;服务器远程管理是指通过远程连接来监控、配置和维护服务器的过程&#xff0c;而无需直接在物理服务器前操作。它允许IT管理员在不同的地点对服务器进行配置、监控和维护&#xff0c;无需物理上接触到服务器本身。这种能力对于管理分布在多…

android关于binder的简单通信过程

文章目录 简述aidl文件服务端的实现客户端的实现验证过程 简述 主要实现的是两个应用之间跨进程通信的过程&#xff0c;client端调用server端的具体实现&#xff0c;然后server端给client回调数据&#xff0c;详细如下所示 aidl文件 以下的文件需要在服务端与客户端都配置一…

Python | Linux | 解析Himawari-8/9 | Standard Data

写作前面 之前一个相关的工作需要解析Himawari-8/9 Standard Data文件&#xff0c;因为他是二进制的&#xff0c;之前没有处理过&#xff0c;导致完全摸不着头脑。在网上找了中英文搜索找了好久&#xff0c;虽然也找到了公开的解析代码&#xff0c;但是放在自己的数据这感觉总是…

Vue中使用el-table自定义序号翻页后又从1开始没有连续

在 ​​el-table​​​ 中&#xff0c;自定义序号列在翻页后会重新从 1 开始是因为每页的数据是重新渲染的&#xff0c;没有保留之前的序号。如果您希望在翻页后保持连续的序号&#xff0c;可以使用 ​​index​​ 属性来获取全局的行索引。 以下是一个示例&#xff0c;演示如…