c# - 如何在C#中保存userInput以自动调整难度
问题描述
我正在做一个控制台数学测试,根据用户选择的难度级别询问一些随机的加法、减法、乘法、除法、幂和平方根问题!
这是我的代码:
using System;
using System.Collections.Generic;
namespace mathstester
{
class Program
{
public enum UserDifficulty
{
Easy,
Normal,
Hard
}
public static void Main(string[] args)
{
Dictionary<string, UserDifficulty> difficultyDictionary = new Dictionary<string, UserDifficulty>();
difficultyDictionary.Add("E", UserDifficulty.Easy);
difficultyDictionary.Add("N", UserDifficulty.Normal);
difficultyDictionary.Add("H", UserDifficulty.Hard);
string userInputDifficulty;
do
{
Console.WriteLine("What difficulty level would you like to do! Please type E for Easy, N for Normal and H for hard");
userInputDifficulty = Console.ReadLine().ToUpper();
} while (userInputDifficulty != "E" && userInputDifficulty != "N" && userInputDifficulty != "H");
UserDifficulty userDifficulty = difficultyDictionary[userInputDifficulty];
}
}
}
但是,我试图通过在他下次运行代码时自动将难度设置为更难的级别或更容易的级别来使我的代码更高级,具体取决于他上次进行测试时获得的分数。例如,如果他选择了 Normal 级别并获得 1/10 的分数,那么下次他运行代码时,他应该自动执行 easy 级别。
但我不知道从哪里开始。
如果有人能告诉我我将如何开始,那将真的很有帮助!
顺便说一句,如果您能想到更好的标题,请编辑它!
解决方案
有很多方法可以为程序存储数据,一些例子:
- 登记处
- 环境变量
- 文件
- 数据库
一种相当简单的方法是使用Visual Studio 中内置的应用程序设置。转到项目的属性页面和设置视图。添加一个新设置,为其命名(如难度)、int 类型和用户范围。除非您想明确地将其添加为类型,否则您将需要将其转换为/从您的枚举中转换。
var storedSetting = (UserDifficulty)Properties.Settings.Default.Difficulty;
Properties.Settings.Default.Difficulty= (int)UserDifficulty.Easy;
Properties.Settings.Default.Save();
推荐阅读
- python - 使用 Numpy 将 2D 数组拆分为具有一定重叠的更小的 2D 数组
- google-data-studio - 如何在数据工作室中为计算字段做累积和
- typescript - 打字稿 - 使用函数字典
- c# - finally 块下面的代码如何执行?
- python - 有没有办法让条件语句成为我可以传递给 Python 循环的变量?
- excel - 使用即时窗口通过 VBA 测试变量
- sql - SQL 查找最近的活动事件
- ios - Swift - 在表示为 Int 而不是项目本身的数组数组中获取项目的位置
- python - 如果列不是 NaN,则将多个列值更改为其他列
- python - Python 使用 JsonPickle 序列化一个类并更改属性大小写