gpt4 book ai didi

c# - 添加一个保存数据的高分系统

转载 作者:行者123 更新时间:2023-11-30 15:32:13 25 4
gpt4 key购买 nike

我想知道我将如何着手创建一个高分系统。我已经制作了一个带有分数的简单游戏,但我想将高分保存在一个文件中,这样当应用程序运行时,您可以看到带有名称的高分。到目前为止,我的游戏代码(如果需要):

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace Guess_the_number_1
{
public partial class Form1 : Form
{
int randomNumber;
int score;

Random random;

public Form1()
{
InitializeComponent();
random = new Random();
}

private void Form1_Load(object sender, EventArgs e)
{
score = 0;
label1.Text = score.ToString();
}

private void buttonCheckGuess_Click(object sender, EventArgs e)
{
randomNumber = random.Next(0, 10);

if (Convert.ToInt32(textboxGuess.Text) == randomNumber)
{
MessageBox.Show("Your Guessed Correctly! The Number Is: " + textboxGuess.Text);
score += 10;
}
else if (Convert.ToInt32(textboxGuess.Text) < randomNumber)
{
MessageBox.Show("The Number Is Larger Than: " + textboxGuess.Text);
score -= 2;
}
else if (Convert.ToInt32(textboxGuess.Text) > randomNumber)
{
MessageBox.Show("The Number Is Smaller Than: " + textboxGuess.Text);
score -= 2;
}
else
{
MessageBox.Show("Your Guessed Incorrectly. The Random Number Is Not: " + textboxGuess.Text);
}
label1.Text = score.ToString();
}

private void buttonScore_Click(object sender, EventArgs e)
{
MessageBox.Show("Your score is " + score);
}

private void listScore_SelectedIndexChanged(object sender, EventArgs e) { }

private void label1_Click(object sender, EventArgs e) { }
}
}

最佳答案

我的做法是将其序列化为 XML。这将允许您保存几个高分,此外,还可以存储其他信息,例如玩家的姓名首字母。为此,首先创建一个这样的类:

[Serializable()]
public class HighScore {
public int Score { get; set; }
public string Initials { get; set; }
}

public List<HighScore> _highScores = new List<HighScore>();

您会将所有分数添加到集合类中:

// To save a high score
var score = new HighScore() { Score = 100, Initials = 'MAJ' };
_highScores.Add(score);
// ... add more scores if needed

然后当您的应用程序退出时(或任何时候您想要保存高分),您将高分序列化为 XML:

var serializer = new XmlSerializer(_highScores.GetType(), "HighScores.Scores");
using (var writer = new StreamWriter("highscores.xml", false))
{
serializer.Serialize(writer.BaseStream, _highScores);
}

最后,当您的应用程序加载时(或任何时候),您使用此代码将 XML 反序列化回高分集合:

// To Load the high scores
var serializer = new XmlSerializer(_entities.GetType(), "HighScores.Scores");
object obj;
using (var reader = new StreamReader("highscores.xml"))
{
obj = serializer.Deserialize(reader.BaseStream);
}
_highScores = (List<HighScore>)obj;

关于c# - 添加一个保存数据的高分系统,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19456408/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com