c#基础逻辑练习案例

news2024/11/24 14:39:15

 第二章综合练习小游戏

练习内容

  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.coloradmin.cn/o/1057128.html

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

相关文章

LeetCode 面试题 08.02. 迷路的机器人

文章目录 一、题目二、C# 题解 一、题目 设想有个机器人坐在一个网格的左上角&#xff0c;网格 r 行 c 列。机器人只能向下或向右移动&#xff0c;但不能走到一些被禁止的网格&#xff08;有障碍物&#xff09;。设计一种算法&#xff0c;寻找机器人从左上角移动到右下角的路径…

Office 2021 小型企业版商用办公软件评测:提升工作效率与协作能力的专业利器

作为一名软件评测人员&#xff0c;我将为您带来一篇关于 Office 2021 小型企业版商用办公软件的评测文章。在这篇评测中&#xff0c;我将从实用性、使用场景、优点和缺点等多个方面对该软件进行客观分析&#xff0c;在专业角度为您揭示它的真正实力和潜力。 一、实用性&#xf…

数据结构—归并排序-C语言实现

引言&#xff1a;归并排序跟快速排序一样&#xff0c;都运用到了分治的算法&#xff0c;但是归并排序是一种稳定的算法&#xff0c;同时也具备高效&#xff0c;其时间复杂度为O(N*logN) 算法图解&#xff1a; 然后开始归并&#xff1a; 就是这个思想&#xff0c;拆成最小子问题…

mysql八股

1、请你说说mysql索引&#xff0c;以及它们的好处和坏处 检索效率、存储资源、索引 索引就像指向表行的指针&#xff0c;是一个允许查询操作快速确定哪些行符合WHERE子句中的条件&#xff0c;并检索到这些行的其他列值的数据结构索引主要有普通索引、唯一索引、主键索引、外键…

【系统架构】软件架构的演化和维护

导读&#xff1a;本文整理关于软件架构的演化和维护知识体系。完整和扎实的系统架构知识体系是作为架构设计的理论支撑&#xff0c;基于大量项目实践经验基础上&#xff0c;不断加深理论体系的理解&#xff0c;从而能够创造新解决系统相关问题。 目录 1、软件架构演化和定义 …

SLAM从入门到精通(从amcl到navigation软件栈)

【 声明&#xff1a;版权所有&#xff0c;欢迎转载&#xff0c;请勿用于商业用途。 联系信箱&#xff1a;feixiaoxing 163.com】 前面我们学习了amcl&#xff0c;但它只是navigation里面的一个package而已。真正的导航还包含很多的内容。举个例子来讨论下&#xff0c;我们假设需…

Java后端模拟面试,题集①

1.Spring bean的生命周期 实例化 Instantiation属性赋值 Populate初始化 Initialization销毁 Destruction 2.Spring AOP的创建在bean的哪个时期进行的 &#xff08;图片转载自Spring Bean的完整生命周期&#xff08;带流程图&#xff0c;好记&#xff09;&#xff09; 3.MQ如…

JavaSE | 初识Java(七) | 数组 (下)

Java 中提供了 java.util.Arrays 包 , 其中包含了一些操作数组的常用方法 代码实例&#xff1a; import java.util.Arrays int[] arr {1,2,3,4,5,6}; String newArr Arrays.toString(arr); System.out.println(newArr); // 执行结果 [1, 2, 3, 4, 5, 6] 数组拷贝 代码实例…

JIRA 如何在项目之间移动 Issue

需要使用 JIRA 的查找功能。 把需要移动的 Issue 先全部找到&#xff0c;然后选择 Tools 下面的所有 Issues 批量操作页面 在随后的页面中&#xff0c;将会出现批量操作的页面。 在这里&#xff0c;可以对需要进行批量操作的问题&#xff0c;进行全部选择。 然后单击下一步继…

机器视觉工程师如何快速停止内耗,与自己和解

十分情绪化的人&#xff0c;是无法更好的成就自我的。 真正让人疲惫的是&#xff0c;不是工作&#xff0c;不是学习&#xff0c;更不是生活。而是你自己的情绪。 我们每一天去上班&#xff0c;感觉自己像个失败者。看不见自身的光芒&#xff0c;被自己的情绪笼罩&#xff0c;饱…

1.5 计算机网络的类别

思维导图&#xff1a; 1.5.1 计算机网络的定义 我的笔记&#xff1a; #### 精确定义&#xff1a; 计算机网络没有统一的精确定义&#xff0c;但一种较为接近的定义是&#xff1a;计算机网络主要由一些通用的、可编程的硬件互连而成&#xff0c;这些硬件并非专门用来实现某一特…

msvcp100.dll丢失怎样修复,msvcp100.dll丢失问题全面解析

msvcp100.dll是一个动态链接库文件&#xff0c;属于 Microsoft Visual C Redistributable 的一个组件。它包含了 C 运行时库&#xff0c;这些库在运行程序时会被加载到内存中。msvcp100.dll文件的主要作用是为基于 Visual C 编写的程序提供必要的运行时支持。 当您运行一个基于…

zemax场曲/畸变图与网格畸变图

网格畸变是XY两个方向上的几何畸变&#xff0c;是不同视场实际像高与近轴像高的偏差。 垂轴放大率在整个视场范围内不能保持常数 当一个有畸变的光学系统对一个方形的网状物体成像时,若δy>0&#xff0c;则主光线的交点高度y比理想像高y低,视场越大&#xff0c;低得越多&a…

javaWeb宿舍管理系统

一、引言 宿舍管理系统是一种教育管理系统&#xff0c;本系统具有多种优点&#xff0c;其中通用性、智能化、简单操作性等可以极大地提升用户体验&#xff0c;本系统适合于高校以及教育行业公司等进行使用。宿舍管理系统采用Jsp技术作为前端页面技术&#xff0c;主要逻辑技术语…

Multiple CORS header ‘Access-Control-Allow-Origin‘ not allowed

今天在修改天天生鲜超市项目的时候&#xff0c;因为使用了前后端分离模式&#xff0c;前端通过网关统一转发请求到后端服务&#xff0c;但是第一次使用就遇到了问题&#xff0c;比如跨域问题&#xff1a; 但是&#xff0c;其实网关里是有配置跨域的&#xff0c;只是忘了把前端项…

如何解决版本不兼容Jar包冲突问题

如何解决版本不兼容Jar包冲突问题 引言 “老婆”和“妈妈”同时掉进水里&#xff0c;先救谁&#xff1f; 常言道&#xff1a;编码五分钟&#xff0c;解冲突两小时。作为Java开发来说&#xff0c;第一眼见到ClassNotFoundException、 NoSuchMethodException这些异常来说&…

【数据结构】排序(1) ——插入排序 希尔排序

目录 一. 直接插入排序 基本思想 代码实现 时间和空间复杂度 稳定性 二. 希尔排序 基本思想 代码实现 时间和空间复杂度 稳定性 一. 直接插入排序 基本思想 把待排序的记录按其关键码值的大小依次插入到一个已经排好序的有序序列中&#xff0c;直到所有的记录插入完为止&…

gazebo场景很暗

解决方法 在gazebo中&#xff0c;点击左侧上边scene&#xff0c;然后下面把shadows选择false可以使画面更亮。 转载来自&#xff1a; 链接

嵌入式Linux应用开发-基础知识-第十九章驱动程序基石③

嵌入式Linux应用开发-基础知识-第十九章驱动程序基石③ 第十九章 驱动程序基石③19.5 定时器19.5.1 内核函数19.5.2 定时器时间单位19.5.3 使用定时器处理按键抖动19.5.4 现场编程、上机19.5.5 深入研究&#xff1a;定时器的内部机制19.5.6 深入研究&#xff1a;找到系统滴答 1…

kafka客户端应用参数详解

一、基本客户端收发消息 Kafka提供了非常简单的客户端API。只需要引入一个Maven依赖即可&#xff1a; <dependency><groupId>org.apache.kafka</groupId><artifactId>kafka_2.13</artifactId><version>3.4.0</version></depend…