关于C#知识讲解中的switch多分支语句、分支嵌套,菜单,猜数吗,模拟蛋仔的游戏

本文主要是介绍关于C#知识讲解中的switch多分支语句、分支嵌套,菜单,猜数吗,模拟蛋仔的游戏,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

以下是一个用C语言中的switch多分支语句、分支嵌套编写的简单菜单程序示例:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace _12
{
    internal class Program
    {
        static void Main(string[] args)
        {
            {
                Random random = new Random();
                int targetNumber = random.Next(1, 101);
                int guessCount = 0;
                int guessedNumber = 0;
                Console.WriteLine("\t今日菜谱");
                Console.WriteLine("\t1.红烧排骨");
                Console.WriteLine("\t2.酸菜鱼");
                Console.WriteLine("\t3.板栗鸭");
                Console.WriteLine("\t4.番茄大虾");
                Console.WriteLine("\t5.油闷大虾");
                Console.WriteLine("\t6.素炒青菜");
                Console.WriteLine("\t0.不想点");
                Console.Write("客官今天想吃点什么,请点菜(1-6):");
                int choice = int.Parse(Console.ReadLine());
                switch (choice)
                {

                    case 1:
                        Console.WriteLine("客官点的是:红烧排骨");
                        break;
                    case 2:
                        Console.WriteLine("客官点的是:酸菜鱼");
                        break;
                    case 3:
                        Console.WriteLine("客官点的是:板栗鸭");
                        break;
                    case 4:
                        Console.WriteLine("客官点的是:番茄炒蛋");
                        break;
                    case 5:
                        Console.WriteLine("客官点的是:油闷大虾");
                        break;
                    case 6:
                        Console.WriteLine("客官点的是:素炒青菜");
                        break;
                    case 0:
                        Console.WriteLine("客官慢走,欢迎下次光临");
                        break;
                    default:
                        Console.WriteLine("客官对不起,你点的菜本店没有,欢迎下次光临!");
                        break;
                }
                Console.ReadLine();
            }
        }
    }
}

这个程序会显示一个简单的菜单,然后要求用户输入菜单选项的序号(1-6)。根据用户的选择,在switch语句中执行相应的操作。选项1、2,3,4,5,6仅仅是简单的展示了对应选项的信息。选项0退出程序。

以下是一个用C#语言编写的100以内的猜数字游戏的示例代码:

```csharp
using System;

namespace GuessNumberGame
{
    class Program
    {
        static void Main(string[] args)
        {
            Random random = new Random();
            int targetNumber = random.Next(1, 101);
            int guessCount = 0;
            int guessedNumber = 0;

            Console.WriteLine("猜数字游戏 - 猜一个1到100之间的数字!");

            while (guessedNumber != targetNumber)
            {
                Console.Write("请输入你的猜测:");
                string input = Console.ReadLine();
                if (!int.TryParse(input, out guessedNumber))
                {
                    Console.WriteLine("请输入一个有效的整数!");
                    continue;
                }

                if (guessedNumber < targetNumber)
                {
                    Console.WriteLine("太小了,请继续猜测!");
                }
                else if (guessedNumber > targetNumber)
                {
                    Console.WriteLine("太大了,请继续猜测!");
                }

                guessCount++;
            }

            Console.WriteLine("恭喜你猜对了!");
            Console.WriteLine("你一共猜测了 {0} 次。", guessCount);

            Console.WriteLine("按任意键退出...");
            Console.ReadKey();
        }
    }
}
```

这个游戏会随机生成一个1到100之间的数字,然后要求用户猜测这个数字。如果用户输入的数字比目标数字小,会显示"太小了,请继续猜测!";如果用户输入的数字比目标数字大,会显示"太大了,请继续猜测!"。当用户猜对数字时,会显示"恭喜你猜对了!"并展示用户猜测的次数。

 

你上班的公司做套相当成功的模拟蛋仔的游戏:SimEggs。游戏中会出现各种蛋仔,蛋仔的种类及属性如下:
种类:绿头蛋仔、红头蛋仔、橡皮蛋仔、诱饵蛋仔……不确定什么时候上线新类型蛋仔。
属性:外观、游泳行为、飞行行为、狮吼行为……也不确定新行为。
不同种类的蛋仔所对应的属性如下:
由于不同种类的蛋仔可能具有不同的行为,因此,可以使如何利用多态来实现?
绿头蛋仔:绿头蛋仔的外观、会游泳、会飞行、呱呱叫。
红头蛋仔:红头蛋仔的外观、会游泳、会飞行、呱呱叫。
橡皮蛋仔:橡皮蛋仔的外观、会游泳(漂浮)、不会飞行、吱吱叫。

饵蛋仔:诱饵蛋仔的外观、会游泳(漂浮)、不会飞行、不会叫。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;namespace EggsGame
{/// <summary>/// 你上班的公司做了一套相当成功的模拟蛋仔的游戏:SimEggs。/// 游戏中会出现各种蛋仔,蛋仔的种类及属性如下: 种类:绿头蛋仔、红头蛋仔、橡皮蛋仔、诱饵蛋仔……不确定什么时候上线新类型蛋仔。 /// 属性:外观、游泳行为、飞行行为、狮吼行为……也不确定新行为。 /// 不同种类的蛋仔所对应的属性如下: 由于不同种类的蛋仔可能具有不同的行为,因此,可以使如何利用多态来实现? /// 绿头蛋仔:绿头蛋仔的外观、会游泳、会飞行、呱呱叫。 /// 红头蛋仔:红头蛋仔的外观、会游泳、会飞行、呱呱叫。 /// 橡皮蛋仔:橡皮蛋仔的外观、会游泳(漂浮)、不会飞行、吱吱叫。 /// 诱饵蛋仔:诱饵蛋仔的外观、会游泳(漂浮)、不会飞行、不会叫。///【缺陷】增加一种 翻滚的行为,那么有多少个派生的蛋仔类,就得修改多少次代码,这是很不安全/// </summary>class Program{static void Main(string[] args){Egg greenheadEgg = new GreenHeadEgg();greenheadEgg.Display();greenheadEgg.Fly();greenheadEgg.Swim();greenheadEgg.Sound();Console.WriteLine();Egg rubberEgg = new RubberEgg();rubberEgg.Display();rubberEgg.Fly();rubberEgg.Swim();rubberEgg.Sound();Console.WriteLine();Egg robotEgg = new RobotEgg();robotEgg.Display();robotEgg.Fly();robotEgg.Swim();robotEgg.Sound();Console.ReadKey();}}
}

namespace EggsGame
{public abstract class Egg{// 蛋仔的名称public string EggName { get; set; }public void Display(){Console.WriteLine($"名称:{EggName}");}// 行为: 游泳  飞   叫public abstract void Swim();public abstract void Fly();public abstract void Sound();}
}

namespace EggsGame
{public class GreenHeadEgg : Egg{public GreenHeadEgg(){EggName = "绿头蛋仔";}public override void Fly(){Console.WriteLine("用翅膀飞");}public override void Sound(){Console.WriteLine("呱呱叫");}public override void Swim(){Console.WriteLine("用脚来游");}}
}

namespace EggsGame
{public class RobotEgg : Egg{public RobotEgg(){EggName = "机器蛋仔";}public override void Fly(){Console.WriteLine("喷气式引擎起飞");}public override void Sound(){Console.WriteLine("嗡……");}public override void Swim(){Console.WriteLine("用螺旋桨游");}}
}

namespace EggsGame
{public class RubberEgg : Egg{public RubberEgg(){EggName = "橡皮蛋仔";}public override void Fly(){Console.WriteLine("不会飞");}public override void Sound(){Console.WriteLine("……");}public override void Swim(){Console.WriteLine("漂浮");}}
}

这篇关于关于C#知识讲解中的switch多分支语句、分支嵌套,菜单,猜数吗,模拟蛋仔的游戏的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/366804

相关文章

一文解析C#中的StringSplitOptions枚举

《一文解析C#中的StringSplitOptions枚举》StringSplitOptions是C#中的一个枚举类型,用于控制string.Split()方法分割字符串时的行为,核心作用是处理分割后... 目录C#的StringSplitOptions枚举1.StringSplitOptions枚举的常用

一文详解Python如何开发游戏

《一文详解Python如何开发游戏》Python是一种非常流行的编程语言,也可以用来开发游戏模组,:本文主要介绍Python如何开发游戏的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下... 目录一、python简介二、Python 开发 2D 游戏的优劣势优势缺点三、Python 开发 3D

C#自动化实现检测并删除PDF文件中的空白页面

《C#自动化实现检测并删除PDF文件中的空白页面》PDF文档在日常工作和生活中扮演着重要的角色,本文将深入探讨如何使用C#编程语言,结合强大的PDF处理库,自动化地检测并删除PDF文件中的空白页面,感... 目录理解PDF空白页的定义与挑战引入Spire.PDF for .NET库核心实现:检测并删除空白页

C#利用Free Spire.XLS for .NET复制Excel工作表

《C#利用FreeSpire.XLSfor.NET复制Excel工作表》在日常的.NET开发中,我们经常需要操作Excel文件,本文将详细介绍C#如何使用FreeSpire.XLSfor.NET... 目录1. 环境准备2. 核心功能3. android示例代码3.1 在同一工作簿内复制工作表3.2 在不同

C#中通过Response.Headers设置自定义参数的代码示例

《C#中通过Response.Headers设置自定义参数的代码示例》:本文主要介绍C#中通过Response.Headers设置自定义响应头的方法,涵盖基础添加、安全校验、生产实践及调试技巧,强... 目录一、基础设置方法1. 直接添加自定义头2. 批量设置模式二、高级配置技巧1. 安全校验机制2. 类型

C#使用iText获取PDF的trailer数据的代码示例

《C#使用iText获取PDF的trailer数据的代码示例》开发程序debug的时候,看到了PDF有个trailer数据,挺有意思,于是考虑用代码把它读出来,那么就用到我们常用的iText框架了,所... 目录引言iText 核心概念C# 代码示例步骤 1: 确保已安装 iText步骤 2: C# 代码程

C#实现高性能拍照与水印添加功能完整方案

《C#实现高性能拍照与水印添加功能完整方案》在工业检测、质量追溯等应用场景中,经常需要对产品进行拍照并添加相关信息水印,本文将详细介绍如何使用C#实现一个高性能的拍照和水印添加功能,包含完整的代码实现... 目录1. 概述2. 功能架构设计3. 核心代码实现python3.1 主拍照方法3.2 安全HBIT

C#实现SHP文件读取与地图显示的完整教程

《C#实现SHP文件读取与地图显示的完整教程》在地理信息系统(GIS)开发中,SHP文件是一种常见的矢量数据格式,本文将详细介绍如何使用C#读取SHP文件并实现地图显示功能,包括坐标转换、图形渲染、平... 目录概述功能特点核心代码解析1. 文件读取与初始化2. 坐标转换3. 图形绘制4. 地图交互功能缩放

Java中实现对象的拷贝案例讲解

《Java中实现对象的拷贝案例讲解》Java对象拷贝分为浅拷贝(复制值及引用地址)和深拷贝(递归复制所有引用对象),常用方法包括Object.clone()、序列化及JSON转换,需处理循环引用问题,... 目录对象的拷贝简介浅拷贝和深拷贝浅拷贝深拷贝深拷贝和循环引用总结对象的拷贝简介对象的拷贝,把一个

Java 单元测试之Mockito 模拟静态方法与私有方法最佳实践

《Java单元测试之Mockito模拟静态方法与私有方法最佳实践》本文将深入探讨如何使用Mockito来模拟静态方法和私有方法,结合大量实战代码示例,带你突破传统单元测试的边界,写出更彻底、更独立... 目录Mockito 简介:为什么选择它?环境准备模拟静态方法:打破“不可变”的枷锁传统困境解法一:使用M