首页 > 解决方案 > 如何在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 级别。

但我不知道从哪里开始。

如果有人能告诉我我将如何开始,那将真的很有帮助!

顺便说一句,如果您能想到更好的标题,请编辑它!

标签: c#console-application

解决方案


有很多方法可以为程序存储数据,一些例子:

  • 登记处
  • 环境变量
  • 文件
  • 数据库

一种相当简单的方法是使用Visual Studio 中内置的应用程序设置。转到项目的属性页面和设置视图。添加一个新设置,为其命名(如难度)、int 类型和用户范围。除非您想明确地将其添加为类型,否则您将需要将其转换为/从您的枚举中转换。

var storedSetting = (UserDifficulty)Properties.Settings.Default.Difficulty;
Properties.Settings.Default.Difficulty= (int)UserDifficulty.Easy;
Properties.Settings.Default.Save();

推荐阅读