如何保存userInput以自动调整C#中的难度

How to save userInput to automatically adjust difficulty in C#

我正在做一个控制台数学测试,根据用户选择的难度级别随机询问一些加法、减法、乘法、除法、幂和 square-root 问题!

这是我的代码:

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];
        }
    }
}

但是,我试图通过在他下次运行代码时自动将难度设置为更难或更容易的级别来使我的代码更高级,这取决于他上次进行测试时获得的分数。例如,如果他选择了普通级别并获得了 1/10 的分数,那么下次他运行代码时,他应该会自动进入简单级别。

但是我不知道从哪里开始。

如果有人能告诉我如何开始,那将非常有帮助!

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

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

  • 注册表
  • 环境变量
  • 文件
  • 数据库

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

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