C语言实现 人生重生模拟器游戏

目录

实现一个简化版的人生重开模拟器

1.菜单函数

2.game函数

 3.幼年时期(even函数)

 4.壮年时期(Juvenile函数)


课余时间实现的小游戏

实现一个简化版的人生重开模拟器

1.菜单函数

void menu()
{printf("-------------------------------------\n");printf("-------------------------------------\n");printf("-	   欢迎来到人生重开模拟器		-\n");printf("-              1.play               -\n");printf("-              2.exit               -\n");printf("-------------------------------------\n");printf("-------------------------------------\n");}

2.game函数

 (1)颜值,体质,智力,家境,总和不能超过20,每一项取值都是1-10之间

(2)对用户输入的内容进行校验(使用while循环) 

(3)生成角色性别(利用rand函数srand函数time函数生成一个随机数,就可以间接的随机生成一个性别了) 

(4)根据家境设置角色的出生点

void game()
{srand((unsigned int)time(NULL));//利用rand函数srand函数time函数生成一个随机数,就可以间接的随机的生成一个性别int sex = rand() % 2;//输入初始属性int face = 0;//颜值int strong = 0;//体质int iq = 0;//智力int home = 0;//家境int count = 1;//随机初始家境int point = rand() % 3;//夭折int a = 1;//输入初始属性while (count){printf("请设置初始属性(可用点数总数为 20)->\n");printf("请输入颜值(1-10):");scanf("%d", &face);printf("请输入体质(1-10):");scanf("%d", &strong);printf("请输入智力(1-10):");scanf("%d", &iq);printf("请输入家境(1-10):");scanf("%d", &home);if (face > 10 || face < 0 || strong>10 || strong < 0 || iq>10 || iq < 0 || home>10 || home < 0){printf("属性点输入有误,请重新输入\a\n");//它告诉终端或控制台输出一个警报信号(声音或者视觉)count++;}else if (face + strong + iq + home > 20){printf("属性总和大于20,请重新输入\a\n");count++;}count--;if (strong == 0){printf("体质过低,先天夭折\n");a = 0;break;}if (strong < 2){if (point == 1){printf("体质过低,先天夭折\n");a = 0;break;}}if (face < 2){printf("你长的太丑,被父母抛弃,暴尸荒野\n");a = 0;break;}if (home == 0){printf("你出生了\n");Sleep(1000);printf("你死了\n");a = 0;break;}}//判断是否先天夭折if (a){printf("初始属性输入完毕!\n");printf("颜值:%d,体质:%d,智力:%d,家境:%d\n", face, strong, iq, home);//随机性别if (sex == 1){printf("你是一个男孩\n");}else{printf("你是一个女孩\n");}//第一档if (home == 10){printf("你出生在帝都,你的父母皆是高管\n");home += 3;iq += 1;face += 1;}//第二档else if (home <= 9 && home >= 7){if (point == 1){printf("你出生在大城市,你的父母是公务员\n");home += 1;}else if (point == 2){printf("你出生在大城市,你的父母是高智商人才\n");iq += 2;}else{printf("你出生在大城市,你的父母是明星\n");face += 2;}}//第三档else if (home <= 6 && home >= 4){if (point == 1){printf("你出生在三线城市,你的父母是医生\n");strong += 1;}else if (point == 2){printf("你出生在镇上,你的父母是老师\n");iq += 1;}else{printf("你出生在镇上,你的父母是个体户\n");home += 1;}}//第四档else{if (point == 1){printf("你出生在农村,你的父母是辛苦劳作的农民\n");strong += 1;face -= 1;}else if (point == 2){printf("你出生在农村,你的父母是无业游民\n");home -= 2;}else{printf("你出生在镇上,你的父母感情不和\n");strong -= 1;home -= 1;}}printf("颜值:%d,体质:%d,智力:%d,家境:%d\n", face, strong, iq, home);even(face, strong, iq, home, sex, point);}}

\a:它告诉终端或控制台输出一个警报信号(声音或者视觉)

srand((unsigned int)time(NULL)):生成随机数

rand() % 3:生成0-2的随机数

 3.幼年时期(even函数)

先使用for循环,按照年龄,从1循环到10

针对每一年,都生成一个随机数(1-3)

利用while与switch

根据角色,心别,年龄,各种属性,触发各种事件,随机数会对事件的结果造成影响

这里的事件可能会对属性带来变化

//幼年时期
void even(int face, int strong, int iq, int home, int sex, int point)
{srand((unsigned int)time(NULL));int t = 0, o = 0, w = 0, r = 0, f = 0, v = 0, s = 0, e = 0, n = 0, g = 0;//10岁,循环10次int count = 10;int age = 1;int Cend = 1;//记录是否结束游戏while (count){int a = rand() % 10;struct Event arr[10];again:switch (a + 1){case 1:if (sex == 0 && home <= 3 && point == 1){strcpy(arr[0].eve, "你的家里人重男轻女观念非常严重,你被遗弃了!\n游戏结束!");printf("%s\n", arr[0].eve);count = 1;}else{if (o == 0){strcpy(arr[0].eve, "全球范围实现碳中和。");o++;}else{a = rand((unsigned int)time(NULL)) % 10;goto again;}}break;case 2:if (strong < 6 && point < 3){if (home >= 5){strcpy(arr[1].eve, "你生了一场病,在你的父母悉心照顾下,你康复了");strong += 1;home -= 1;}else{strcpy(arr[1].eve, "你生了一场病,你的父母没精力管你,你的身体状况更糟糕了");strong -= 1;}}else{if (w == 0){strcpy(arr[1].eve, "火星建立永久性人类居住基地。");w++;}else{a = rand() % 10;goto again;}}break;case 3:if (face <= 4 && age >= 7){if (iq > 5){strcpy(arr[2].eve, "你长得太丑了,别的小朋友不喜欢你,你决定用学习填充自己");}else{if (sex == 1){strcpy(arr[2].eve, "你长得太丑了,别的小朋友不喜欢你,你和别的小朋友经常打架!");strong += 1;iq -= 1;}else{strcpy(arr[2].eve, "你长得太丑了,别的小朋友不喜欢你,你进常被被别的小朋友欺负");strong -= 1;}}}else{if (r == 0){strcpy(arr[2].eve, "全球范围内的无人驾驶汽车技术普及。");r++;}else{a = rand() % 10;goto again;}}break;case 4:if (iq < 5){if (home >= 8 && age >= 6){strcpy(arr[3].eve, "你看起来傻傻的,你的父母把你送到更好的学校学习。");iq += 1;}else if (home >= 4 && home <= 7){if (sex == 1){strcpy(arr[3].eve, "你看起来傻傻的,你的父母鼓励你多运动,争取成为运动员。");strong += 1;}else{strcpy(arr[3].eve, "你看起来傻傻的,你的父母鼓励你多打扮自己。");face += 1;}}else{strcpy(arr[3].eve, "你看起来傻傻的,你的父母为此经常吵架。");if (point == 1)strong -= 1;else if (point == 2)iq -= 1;}}else{if (f == 0){strcpy(arr[3].eve, "人工智能与人类共同创造新文化。");home += 1;f++;}else{a = rand() % 10;goto again;}}break;case 5:{if (point == 1){strcpy(arr[4].eve, "你健康成长,你看起来更结实了。");strong += 1;}else if (point == 2){strcpy(arr[4].eve, "你健康成长,你看起来更好看了。");face += 1;}else{if (v == 0){strcpy(arr[4].eve, "人类开始探索宇宙深处,与外星文明建立联系。");v++;}else{a = rand() % 10;goto again;}}}break;case 6:if (s == 0){strcpy(arr[5].eve, "人类成功实现核聚变能源的商业化应用,彻底解决能源危机问题。");home += 1;s++;}else{a = rand() % 10;goto again;}break;case 7:if (e == 0){strcpy(arr[6].eve, "虚拟实现技术发展到一个全新的高度,人们可以随时地沉浸到虚拟世界中。");strong -= 2;e++;}else{a = rand() % 10;goto again;}break;case 8:if (n == 0){strcpy(arr[7].eve, "全球范围内的高速交通网络初步建成,人们可以在几小时内穿越地球。");n++;}else{a = rand() % 10;goto again;}break;case 9:if (g == 0){strcpy(arr[8].eve, "高考取消英语这门科目。");iq += 1;g++;}else{a = rand() % 10;goto again;}break;case 10:if (t == 0){strcpy(arr[9].eve, "全球实现无国界教育,世界各地的学生都能接受优质的教育。");iq += 1;t++;}else{a = rand() % 10;goto again;}break;}if (strong <= 0){printf("你今年 %d 岁\n", age);if (point == 1){printf("你染上了新冠病毒,没能抗住病毒的侵袭,你死了!\n");printf("游戏结束!\n");Cend = 0;break;}else if (point == 2){printf("你得了白血病,不幸去世!\n");printf("游戏结束!\n");Cend = 0;break;}else{printf("你吃东西的时候不小心被呛死了!\n");printf("游戏结束!\n");Cend = 0;break;}}else if (iq <= 0){printf("你今年 %d 岁\n", age);if (point == 1){printf("你发高烧的时候,由于治疗不及时变成了一个智障!\n");printf("游戏结束!\n");Cend = 0;break;}else if (point == 2){printf("你不小心喝了日本核污水变成了一个智障!\n");printf("游戏结束!\n");Cend = 0;break;}else{printf("由于酒精中毒,你变成了一个智障\n");printf("游戏结束!\n");Cend = 0;break;}}printf("---------------------------------------------------------------\n");printf("你今年 %d 岁了\n", age);printf("%s\n", arr[a].eve);printf("颜值:%d,体质:%d,智力:%d,家境:%d\n", face, strong, iq, home);printf("---------------------------------------------------------------\n");Sleep(1000);age++;count--;}//juvenile 少年if (Cend){Juvenile(face, strong, iq, home, sex, point);}}

 4.壮年时期(Juvenile函数)

利用while与switch

 创建a1-a9记录每一年发生的事件,使故事连贯

//壮年时期
void Juvenile(int face, int strong, int iq, int home, int sex, int point)
{int a1 = 0, a2 = 0, a3 = 0, a4 = 0, a5 = 0, a6 = 0, a7 = 0, a8 = 0, a9 = 0;int count = 8;int age = 20;int b = 0;//修为int Revision = 0;while (count){//int b = rand() % 10;struct Je add[10];//随机生成0-2int random = rand() % 3;switch (b+1){case 1:if (strong < 5 && iq < 5){strcpy(add[0].eve1, "感染了丧尸病毒,你死了!\n");printf("%s\n", add[0].eve1);count = 1;}else if (face > 8){strcpy(add[0].eve1, "你颜值太高了,遭人嫉妒,被陷害而死\n");printf("%s\n", add[0].eve1);count = 1;}else{strcpy(add[0].eve1, "你平安度过一年\n");}break;case 2:if (random==0){strcpy(add[1].eve1, "地球灵气复苏,世界开启修仙时代\n");a1 = 1;strong += 1;Revision += 1;}else if (random==1){strcpy(add[1].eve1, "你穿越到了一个修仙世界\n");a1 = 2;strong += 2;Revision += 2;}else{strcpy(add[1].eve1, "大概一年前你传送来到一个仿佛地狱的地方,天空上挂着一轮土色的太阳,且空气中弥漫着一种难以名状的气味\n");a1 = 3;strong -= 1;}break;case 3:if (a1 == 1){strcpy(add[2].eve1, "国家开始寻找修仙天赋异禀的人,但这跟你并没有什么关系\n");}else if (a1 == 2){strcpy(add[2].eve1,"想当年初临此界,内心的激动心喜无法言说,但却被族老判定为无法修炼的废材\n");strong -= 2;}else{strcpy(add[2].eve1, "一年时间,你大概对这个世界有所了解,这是一个由“神”掌控的世界,想要逃出去唯有跟紧‘那人’");iq += 2;a1 = 4;}break;case 4:if (random == 0&&a1 == 4){strcpy(add[3].eve1, "一年时间让你对这个世界绝望,一度想自杀\n");Revision -= 1;a2 = 1;}else if (random == 1){strcpy(add[3].eve1, "你意外得到一颗美颜神丹,令无数人羡慕于你\n");a2 = 2;Revision += 3;}else{strcpy(add[3].eve1, "你突然醒悟,拼命锻炼,一年时间让你的实力得到了一大提升\n");a2 = 3;Revision += 6;}break;case 5:if (a2 == 1){strcpy(add[4].eve1, "在这种极端的状态下,你变的更强、更疯,也找到了自己解放全部人的路:成为神\n");iq += 5;strong += 5;face += 2;a3 = 1;}else if (random==1 && a2 == 2){strcpy(add[4].eve1, "你颜值太高,遭人嫉妒,被陷害而死\n游戏结束");count = 1;}else if (a2 == 2){strcpy(add[4].eve1, "这一年受到了许多人的帮助,不再是废材,实力一路突飞猛进\n");Revision += 10;strong += 7;a3 = 2;}else if(a1 == 1 || a1 == 2){strcpy(add[4].eve1, "你觉醒了先天圣体,成为了新一代的天骄\n");Revision += 12;strong += 10;a3 = 3;}else{strcpy(add[4].eve1, "这一年的实力得到了显著提升,逐渐成为了“那人”的得力助手\n");strong += 5;iq += 1;a3 = 4;}break;case 6:if (a3 == 1){strcpy(add[5].eve1, "你走的路无人能理解你,你注定是孤独的\n");iq += 5;strong += 5;}else if(a3 == 2){if (a1 == 1 || a1 == 2){strcpy(add[5].eve1, "经过你不懈的努力,你终于觉醒了自己的天赋,从此打遍天下无敌手\n");Revision += 20;strong += 10;}else{strcpy(add[5].eve1, "经过你不懈的努力,你带领众多人成立极道组织,对抗神明\n");iq += 5;}}else if (a3 == 3){strcpy(add[5].eve1, "你天赋异禀,成为了修仙界显著的天才,但同时也给你带来了很多敌人\n");strong += 20;Revision += 30;}else{strcpy(add[5].eve1, "这一年你逐渐解开了这个世界的迷雾,人你看到出去的希望\n");iq += 2;strong += 2;}break;case 7:if (random == 0){strcpy(add[6].eve1, "你找到了一生挚爱,被最爱的人陷害而死\n游戏结束");count = 1;}else if (random == 1){strcpy(add[6].eve1, "你遇到了此生最强大的敌人,你死了\n游戏结束");a4 = 1;}else{strcpy(add[6].eve1, "你与你的爱人结婚了,这是幸福的一年\n");Revision += 10;strong -= 5;a4 = 2;}case 8:if (a1 == 1 || a1 == 2){if (a4 == 1){strcpy(add[7].eve1, "你重生了,这一世你要把你失去的全都拿回来\n");strong = 5;iq = 5;Revision = 0;}else{strcpy(add[5].eve1, "异族入侵,为抵抗,你创建无念阁\n");}}else{if (a4 == 1){strcpy(add[7].eve1, "你重生了,原来这里无限轮回的\n");iq = 5;strong += 5;}else{strcpy(add[7].eve1, "你亲手杀死了自己的爱人,只有这样才能让你变得更加疯,为了成神,这是必要的一步\n");iq += 10;strong += 5;}}}printf("---------------------------------------------------------------\n");printf("你今年 %d 岁了\n", age);printf("%s\n", add[b].eve1);if (a1 == 1 || a1 == 2){printf("颜值:%d,体质:%d,智力:%d,修为:%d,家境:%d\n", face, strong, iq, Revision, home);}else{printf("颜值:%d,体质:%d,智力:%d,家境:%d\n", face, strong, iq, home);}printf("---------------------------------------------------------------\n");Sleep(1500);age++;b++;count--;}
}

感谢观看,

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

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

相关文章

版本控制系统:Git 纯应用(持续更新);

基本操作 ctrl上行键&#xff1a;上次代码 本地仓库&#xff1a;Git init 新建文件&#xff1a;touch xxxx.xxx 查看状态&#xff1a;Git status 文件从工作区——暂存区&#xff1a;Git add ./文件名(.是通配符代表所有) 暂存区——仓库&#xff1a;Git commit -m &…

论文阅读之旋转目标检测ARC:《Adaptive Rotated Convolution for Rotated Object Detection》

论文link&#xff1a;link code&#xff1a;code ARC是一个改进的backbone&#xff0c;相比于ResNet&#xff0c;最后的几层有一些改变。 Introduction ARC自适应地旋转以调整每个输入的条件参数&#xff0c;其中旋转角度由路由函数以数据相关的方式预测。此外&#xff0c;还采…

使用 Ollama 时遇到的问题

题意&#xff1a; ImportError: cannot import name Ollama from llama_index.llms (unknown location) - installing dependencies does not solve the problem Python 无法从 llama_index.llms 模块中导入名为 Ollama 的类或函数 问题背景&#xff1a; I want to learn LL…

【postgreessql 】统计库中的所有表数量

在PostgreSQL中&#xff0c;你可以使用SQL查询来统计数据库中的所有表数量。这通常涉及到查询系统目录表&#xff0c;特别是 pg_catalog.pg_tables 表&#xff0c;它存储了关于数据库中所有表的信息。 SELECT COUNT(*) FROM information_schema.tables WHERE table_schema IN …

mysql逗号分割字符串“1,2,3”实现in查询

数据示例 前台单值参数实现in查询 主要函数FIND_IN_SET 该函数的作用是查询字段(strlist) 中是否包含(str)的结果&#xff0c;返回结果为 null或记录 select id,recommend_position_id from t_stk_task where FIND_IN_SET(359919,recommend_position_id)查询效果 前台集…

【软件测试】性能测试 | 概念 | 常见术语 | 性能指标 | 分类 | 流程

性能测试 文章目录 性能测试一、什么是性能测试1.生活中遇到的软件的性能问题2.性能测试定义3.性能测试和功能测试有什么区别4.什么样的表现属于软件性能好、什么样的表现不好5.影响一个软件性能因素有哪些 二、为什么进行性能测试三、性能测试的常见术语以及性能测试的衡量指标…

C++部分复习笔记下

7. C11 范围for 使用格式 vector<int> v { 1,2,3,4,5 }; for (auto e : v) {cout << e << " "; } cout << endl;底层原理&#xff0c;使用迭代器 vector<int> v { 1,2,3,4,5 }; auto it v.begin(); while (it ! v.end()) {cout…

如何在TechNow招聘顶尖AI工程师

每周跟踪AI热点新闻动向和震撼发展 想要探索生成式人工智能的前沿进展吗&#xff1f;订阅我们的简报&#xff0c;深入解析最新的技术突破、实际应用案例和未来的趋势。与全球数同行一同&#xff0c;从行业内部的深度分析和实用指南中受益。不要错过这个机会&#xff0c;成为AI领…

Spring Boot 高级配置:如何轻松定义和读取自定义配置

目录 1. 环境准备 2. 读取配置数据 2.1 使用 Value注解 2.2 Environment对象 2.3.2.3 自定义对象 这篇博客我们将深入探讨如何在Spring Boot应用中有效地定义和读取自定义配置。掌握这一技巧对于任何希望优化和维护其应用配置的开发者来说都是至关重要的。我们将从基础开始…

企业消费采购成本和员工体验如何实现“鱼和熊掌“的兼得?

有企业说企业消费采购成本和员工体验的关系好比是“鱼和熊掌”&#xff0c;无法兼得&#xff1f; 要想控制好成本就一定要加强管控&#xff0c;但是加强管控以后&#xff0c;就会很难让员工获得满意的体验度。如果不加以管控&#xff0c;员工自由度增加了&#xff0c;往往就很难…

动态住宅代理IP的3个优点

在大数据时代的背景下&#xff0c;代理IP成为了很多企业顺利开展的重要工具。代理IP地址可以分为住宅代理IP地址和数据中心代理IP地址。选择住宅代理IP的好处是可以实现真正的高匿名性&#xff0c;而使用数据中心代理IP可能会暴露自己使用代理的情况。 住宅代理IP是指互联网服务…

Jenkins教程-13-参数化任务构建

上一小节我们学习了发送html邮件测试报告的方法&#xff0c;本小节我们讲解一下Jenkins参数化任务构建的方法。 很多时候我们需要根据不同的条件去执行构建&#xff0c;如自动化测试中执行test、stg、prod环境的构建&#xff0c;Jenkins是支持参数化构建的。 以下是Jenkins官…

【C语言】手撕结构体内存对齐

©作者:末央&#xff06; ©系列:C语言初阶(适合小白入门) ©说明:以凡人之笔墨&#xff0c;书写未来之大梦 目录 结构体对齐规则结构体大小计算 - 三步曲 结构体对齐规则 怎么计算结构体的内存大小。这就涉及到结构体内存对齐的问题。 结构体的第⼀个成员对⻬到…

【C++】多态详解

&#x1f497;个人主页&#x1f497; ⭐个人专栏——C学习⭐ &#x1f4ab;点击关注&#x1f929;一起学习C语言&#x1f4af;&#x1f4ab; 目录 一、多态概念 二、多态的定义及实现 1. 多态的构成条件 2. 虚函数 2.1 什么是虚函数 2.2 虚函数的重写 2.3 虚函数重写的两个…

PyPDF2拆分PDF文件为单个页面

本文目录 前言一、拆分成为单页1、代码解析2、处理效果图3、完整代码二、其它知识1、enumerate是什么① 语法② 功能③ 示例④ 更改起始索引前言 感觉之前写的不是很满意,为了充分满足付费用户的权益,所以打算把PyPDF2的各种类和用法都重新写一下,以便满足所有订阅用户的各…

transformer模型学习路线_transformer训练用的模型

Transformer学习路线 完全不懂transformer&#xff0c;最近小白来入门一下&#xff0c;下面就是本菜鸟学习路线。Transformer和CNN是两个分支&#xff01;&#xff01;因此要分开学习 Transformer是一个Seq2seq模型&#xff0c;而Seq2seq模型用到了self-attention机制&#xf…

三分钟看懂SMD封装与COB封装的差异

全彩LED显示屏领域中&#xff0c;COB封装于SMD封装是比较常见的两种封装方式&#xff0c;SMD封装产品主要有常规小间距以及室内、户外型产品&#xff0c;COB封装产品主要集中在小间距以及微间距系列产品中&#xff0c;今天跟随COB显示屏厂家中品瑞一起快速看懂SMD封装与COB封装…

使用高斯混合模型识别餐厅热点

使用 GMM 识别加拿大多伦多的直观餐厅集群&#xff08;附 Python 代码&#xff09; 聚类算法&#xff08;例如 GMM&#xff09;是一种有用的工具&#xff0c;可帮助识别数据中的模式。它们使我们能够识别数据集中的子组&#xff0c;从而提高你的理解或增强预测模型。在本文中&a…

DDR3(一)

目录 1 SDRAM1.1 同步动态随机存储器1.2 位宽1.3 SDRAM结构1.4 SDRAM引脚图 2 SDRAM操作指令2.1 读写指令2.2 刷新和预充电2.3 配置模式寄存器2.4 读/写突发2.5 数据屏蔽 SDRAM是DDR3的基础&#xff0c;在学习DDR3之前&#xff0c;我们先来学习一下SDRAM的相关知识。 1 SDRAM …

同样的APP为何在Android 8以后网络感觉变卡?

前言 在无线网络技术不断发展的今天&#xff0c;Wi-Fi已经成为了我们日常生活中不可或缺的一部分。无论是家庭娱乐、办公还是在线游戏&#xff0c;Wi-Fi都在提供着便捷的互联网接入服务。然而&#xff0c;在安卓8.1后&#xff0c;为了进一步延长安卓设备的待机时间。原生安卓(A…