c#基础逻辑练习案例

 第二章综合练习小游戏

练习内容

  1. 向控制台输出这是学号+姓名的C#基础小游戏”。
  2. 向控制台换行再输出请输入你的游戏昵称:”。
  3. 向控制台输入你的游戏昵称,赋给一个字符串变量。
  4. 向控制台换行再输出请输入你的性别:”。
  5. 向控制台输入你的性别,赋给一个字符变量。
  6. 定义三个整型变量,分别表示你的等级、生命值、伤害值,变量值自定。
  7. 向控制台换行再输出你的人物属性。
  8. 以上运行结果如:

  1. 定义一个布尔变量、和一个字符串变量,分别表示你是否有魔法天赋、和你的天赋技能,默认值分别为“true”、“无”。
  2. 使用if进行判断,如果你有魔法天赋,则:

(1)向控制台换行再输出如下内容:

  1. 向控制台换行再输出请输入你的选择:”。
  2. 向控制台输入你选择的天赋技能,赋给第10步定义的天赋技能变量。
  1. 使用switch对输入天赋技能进行判断:
  1. 如果你输入的是火焰之力,则向控制台换行再输出恭喜你,你获得了操控火焰的能力,伤害加成30!”。
  2. 如果你输入的是水之护盾,则向控制台换行再输出恭喜你,你获得了创建水护盾的能力,伤害加成20!”。
  3. 如果你输入的是风之疾行,则向控制台换行再输出恭喜你,你获得了风之加速的能力,伤害加成10!”。
  4. 如果以上都不是,则向控制台换行再输出很遗憾,你没有任何能力”。

以上运行结果如:

  1. 向控制台换行再输出现在,有一只凶恶的怪物出现在你的面前!”。
  2. 定义两个整型变量,分别表示怪物的生命值和伤害值,变量值自定。
  3. 声明一个方法,传入两个参数:你的生命值(第6步定义)和怪物的生命值(第13步定义),方法内容为:向控制台换行再输出你的生命值(第6步定义)和怪物的生命值(第13步定义过),声明完成后,调用该方法。
  4. 向控制台换行再输出开始进入战斗!”。

以上运行结果如:

  1. 使用while循环战斗,当你和怪物一个都没死的时候,(即你的生命值大于0且怪物的生命值大于0的时候),循环执行:
  1. 玩家攻击怪物:

怪物生命值 = 当前生命值 - 你的伤害值

向控制台换行再输出你对怪物发起攻击,造成了(你的伤害值)点伤害!

调用第14步定义的方法,输出你的生命值和怪物的生命值

判断:如果怪物生命值小于等于0,向控制台换行再输出你成功击败了怪物!”,并结束整个循环。

  1. 怪物反击:

玩家生命值 = 当前生命值 - 怪物的伤害值

向控制台换行再输出怪物进行反击,对你造成了(怪物的伤害值)点伤害!

调用第14步定义的方法,输出你的生命值和怪物的生命值

判断:如果你的生命值小于等于0,向控制台换行再输出你被怪物击败了!”,并结束整个循环。

以上运行结果如:

  1. 向控制台换行再输出如下内容:

  1. 定义一个长度为5的字符串数组变量,用来存你的队友昵称,其中数组第一个值为你的游戏昵称(第3步定义)。
  2. 使用for循环遍历,向控制台输入你四个队友的昵称,并赋值给数组的第2到第5个值,如:

  1. 使用for循环遍历数组,向控制台输出数组中的昵称,如:

下面是练习的代码案例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace Test2
{class Program{static void Main(string[] args){//综合练习小游戏Console.WriteLine("这是学号:xxx,姓名:xxx的C#基础小游戏");Console.WriteLine();Console.WriteLine("请输入您的游戏昵称");string nemo = Console.ReadLine();Console.WriteLine();Console.WriteLine("请输入您的性别");string xb = Console.ReadLine();int dj = 1;int hp = 100;int sh=20;Console.WriteLine();Console.WriteLine("以下是您的人物属性");Console.WriteLine("昵称:"+nemo);Console.WriteLine("性别"+xb);Console.WriteLine("等级"+dj);Console.WriteLine("生命值"+hp);Console.WriteLine("伤害值"+sh);bool isRain = true;if (isRain){Console.WriteLine("你是一个拥有魔法天赋的玩家");Console.WriteLine("你可以选择修炼一个天赋技能:火焰之力,水之护盾,风之疾行");Console.WriteLine();Console.WriteLine("请输入您的选择");//天赋技能string tf = Console.ReadLine();switch (tf){case "火焰之力":Console.WriteLine();//现在我的伤害值sh += 30;Console.WriteLine("恭喜你,你获得了操控火焰的能力,伤害加成30!");break;case "水之护盾":Console.WriteLine();sh += 20;Console.WriteLine("恭喜你,你获得了创建水护盾的能力,伤害加成20");break;case "风之疾行":Console.WriteLine();sh += 10;Console.WriteLine("恭喜你,你获得了风之加速的能力,伤害加成10");break;default:{Console.WriteLine("很遗憾,你没有任何能力,重开吧兄弟!");break;}}}Console.WriteLine();Console.WriteLine("现在有一只怪物出现在你面前!");int hp1 = 50;//怪物生命值int sh1 = 1; //怪物伤害//调用方法FangFa1(hp,hp1);Console.WriteLine();Console.WriteLine("开始进入战斗!");Console.WriteLine();//开始打架啦!!!int i = 1;//攻击次数while (hp>=0||hp1>=0){//我的攻击hp1 -= sh;Console.WriteLine();Console.WriteLine("你对怪物发起攻击,造成了"+sh+"点伤害");FangFa1(hp, hp1);//怪物反击hp -= sh1;Console.WriteLine();Console.WriteLine("怪物对你发起攻击,造成了" + sh1 + "点伤害");FangFa1(hp, hp1);if (hp1<=0){Console.WriteLine();Console.WriteLine("你成功击败了怪物");break;}else if (hp<=0){Console.WriteLine();Console.WriteLine("你被怪物击杀了");break;}i++;Console.WriteLine("打了" + i + "次");}Console.WriteLine();Console.WriteLine("你走进一个神秘的深林中,发现一座宫殿");Console.WriteLine("你需要组成一个五人队伍,才能进入宫殿");Console.WriteLine();Console.WriteLine("现在开始组队...");//开始循环string[] arr =new string[5];arr[0]=nemo;for (int j=1;j<arr.Length;j++){Console.WriteLine("请输入第" + (j ) + "个队友的昵称:"+arr[j]);arr[j] = Console.ReadLine();Console.WriteLine();}for (int t=0;t<arr.Length;t++){Console.WriteLine("组队成功,你的队伍成员有:"+arr[t]);}Console.WriteLine();Console.WriteLine("现在你们可以一起探索宫殿了...");Console.WriteLine();Console.WriteLine("游戏尚未结束,我们的故事未完待续...");Console.ReadKey();}static void FangFa1(int hp,int hp1){Console.WriteLine();Console.WriteLine("您的生命值:"+hp);Console.WriteLine("怪物的生命值:"+hp1);}}
}

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

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

相关文章

创建vue3工程

一、新建工程目录E:\vue\projectCode\npm-demo用Visual Studio Code 打开目录 二、点击新建文件夹按钮&#xff0c;新建vue3-01-core文件夹 三、右键vue3-01-core文件夹点击在集成终端中打开 四、初始化项目&#xff0c;输入npm init 一直敲回车直到创建成功如下图 npm init 五…

Spring5应用之Cglib动态代理

作者简介&#xff1a;☕️大家好&#xff0c;我是Aomsir&#xff0c;一个爱折腾的开发者&#xff01; 个人主页&#xff1a;Aomsir_Spring5应用专栏,Netty应用专栏,RPC应用专栏-CSDN博客 当前专栏&#xff1a;Spring5应用专栏_Aomsir的博客-CSDN博客 文章目录 前言Cglib动态代理…

uCOSIII实时操作系统 二 同步与通信

目录 同步概念&#xff1a; 互斥概念&#xff1a; 临界区概念&#xff1a; 任务时间概念&#xff1a; 信号量概念&#xff1a; 互斥信号量概念&#xff1a; 事件标志组概念&#xff1a; 消息邮箱和消息梯队概念&#xff1a; 内存管理概念&#xff1a; 如何从裸机开发…

矢量图形编辑软件illustrator 2023 mac特点介绍

illustrator 2023 mac是一款矢量图形编辑软件&#xff0c;用于创建和编辑排版、图标、标志、插图和其他类型的矢量图形。 illustrator mac软件特点 矢量图形&#xff1a;illustrator创建的图形是矢量图形&#xff0c;可以无限放大而不失真&#xff0c;这与像素图形编辑软件&am…

六、vpp 流表+负载均衡

草稿&#xff01;&#xff01;&#xff01; vpp node其实就是三个部分 1、plugin init 2、set command 3、function 实现功能&#xff0c;比如这里的流表 今天我们再用VPP实现一个流表的功能 一、流表 1.1流表----plugin init VLIB_REGISTER_NODE 注册流表节点 // 注册流…

纯css实现3D鼠标跟随倾斜

老规矩先上图 为什么今天会想起来整这个呢?这是因为和我朋友吵架, 就是关于这个效果的,就是这个 卡片懸停毛玻璃效果, 我朋友认为纯css也能写, 我则坦言他就是在放狗屁,这种跟随鼠标的3D效果要怎么可能能用纯css写, 然后吵着吵着发现,欸,好像真能用css写哦,我以前还写过这种…

去雨去雪去雾数据集构建

在进行去雨去雪去雾算法的学习过程中&#xff0c;需要构建去雨去雪去雾数据集&#xff0c;本文参考Learning Multiple Adverse Weather Removal via Two-stage Knowledge Learning and Multi-contrastive Regularization: Toward a Unified Model论文中的数据集设定&#xff0c…

面试题 17.24. 最大子矩阵

链接&#xff1a; 面试题 17.24. 最大子矩阵 题解&#xff1a; 这样我们就将二维问题转化为了一维问题&#xff0c;现在另一个问题就是怎么把所有情况都遍历到呢&#xff1f; 我们以第i行为第一行&#xff0c;向下延申&#xff0c;设最后一行为第j行&#xff0c;我们就i在这么…

【AI视野·今日NLP 自然语言处理论文速览 第四十七期】Wed, 4 Oct 2023

AI视野今日CS.NLP 自然语言处理论文速览 Wed, 4 Oct 2023 Totally 73 papers &#x1f449;上期速览✈更多精彩请移步主页 Daily Computation and Language Papers Contrastive Post-training Large Language Models on Data Curriculum Authors Canwen Xu, Corby Rosset, Luc…

手机或者电脑连接局域网内的虚拟机(网桥)

手机或者电脑连接局域网内的虚拟机&#xff08;网桥&#xff09; 手机软件&#xff1a;ConnectBot&#xff0c;Termius&#xff0c;JuiceSSH … 1.虚拟机vmware中添加桥接网卡 这里桥接网卡选择的是自动&#xff0c;是自动生成动态IP&#xff0c;如果不需要动态生成&#xff…

MySQL:数据库的物理备份和恢复-冷备份(3)

介绍 物理备份&#xff1a; 直接复制数据文件进行的备份 优点&#xff1a;不需要其他的工具&#xff0c;直接复制就好&#xff0c;恢复直接复制备份文件即可 缺点&#xff1a;与存储引擎有关&#xff0c;跨平台能力较弱 逻辑备份&#xff1a; 从数据库中导出数据另存而进行的备…

性能测试工具 - LoadRunner

什么是性能测试&#xff1f; 性能测试就是测试人员利用性能测试工具模拟系统在不同情况下的性能指标是否正常。 性能测试工具 - LoadRunner 接下来介绍LoadRunner的作用和使用。 LoadRunner 就是一个很常见的性能测试工具&#xff0c;它有三个部分组成&#xff1a; 这三个组…

【MyBatis-Plus】快速精通Mybatis-plus框架—快速入门

大家在日常开发中应该能发现&#xff0c;单表的CRUD功能代码重复度很高&#xff0c;也没有什么难度。而这部分代码量往往比较大&#xff0c;开发起来比较费时。 因此&#xff0c;目前企业中都会使用一些组件来简化或省略单表的CRUD开发工作。目前在国内使用较多的一个组件就是…

Java实现微信支付

微信支付 小黄最在工作中对接需要对接微信支付&#xff0c;在此记录一下微信支付开发的相关流程&#xff0c;望能帮助到各位 前期准备 由于小黄是小程序端需要对接微信支付&#xff0c;需要注册小程序等&#xff0c;小黄会一一列举出来 小程序注册 所需文件 没有注册过微信…

私有云盘:lamp部署nextcloud+高可用集群

目录 一、实验准备&#xff1a; 二、配置mariadb主从复制 三台主机下载mariadb 1&#xff09;主的操作 2&#xff09;从的操作 3&#xff09;测试数据是否同步 三、配置nfs让web服务挂载 1、安装 2、配置nfs服务器 3、配置web服务的httpd 4、测试 四、web 服务器 配…

排序篇(三)----交换排序

排序篇(三)----交换排序 1.冒泡排序 基本思想: ​ 通过不断地比较相邻的元素&#xff0c;将较大的元素往后移动&#xff0c;从而实现排序的目的。 具体的步骤如下&#xff1a; 从待排序的数组中选择相邻的两个元素进行比较&#xff0c;如果前一个元素大于后一个元素&#…

ParagonNTFSforMac_15.5.102中文版最受欢迎的NTFS硬盘格式读取工具

Paragon NTFS for Mac是一款可以为您轻松解决Mac平台上不能识别Windows通用的NTFS文件难题&#xff0c;这是一款强大的Mac读写工具&#xff0c;相信在很多时候&#xff0c;Mac用户需要对NTFS文件的移动硬盘进行写入&#xff0c;但是macOS系统默认是不让写入的&#xff0c;使用小…

Nginx与Spring Boot的错误模拟实践:探索502和504错误的原因

文章目录 前言502和504区别---都是Nginx返回的access.log和error.log介绍SpringBoot结合Nginx实战502 and 504准备工作Nginx配置host配置SpringBoot 502模拟access.logerror.log 504模拟access.logerror.log 500模拟access.logerror.log 总结 前言 刚工作那会&#xff0c;最常…

Jmeter基础篇

1.性能测试指标 【虚拟用户数】&#xff1a;线程用户 【并发数】&#xff1a;指在某一时间&#xff0c;一定数量的虚拟用户同时对系统的某个功能进行交互&#xff0c;一般通过集合点实现 【事务】:事务代表一个完整的功能&#xff0c;一个接口可以是事务&#xff0c;多个接口…

第八章 排序 三、希尔排序

目录 一、算法思想 二、例子 三、代码实现 五、验证 六、空间复杂度 七、时间复杂度 八、稳定性 一、算法思想 先追求表中元素部分有序&#xff0c;在逐渐逼近表中元素全部有序。 二、例子 1、我们要升序排列此表 2、取一个差值作为子表的划分的条件&#xff0c;希尔本…