基本上,我试图创建一个文本为基础的冒险游戏,其中一个店主被添加。这个店主有三种不同的情绪(快乐,愤怒和悲伤),这取决于一天中的时间。
所以,从早上5点到中午12点,店主的心情很好,发出了“嘿!好久不见了!”这样的信息,从中午12点到晚上10点,他的心情很愤怒,对你大喊大叫,最后从晚上10点到早上5点,他害怕了,说了些可怕的话。
除了这个店主,我几乎完成了所有的创作。有人能帮我完成这件事吗。对于这一部分,我只成功地编码了时间。我无法用以下时间写出if语句:(
private void Form1_Load(object sender, EventArgs e)
{
this.dateTimePicker1.Format = DateTimePickerFormat.Time;
this.dateTimePicker1.Width = 100;
this.dateTimePicker1.ShowUpDown = true;
}
private void currentTime_Click(object sender, EventArgs e)
{
this.dateTimePicker1.Value = DateTime.Now;
}
private void btnShopkeeper_Click(object sender, EventArgs e)
{
}发布于 2016-01-12 22:51:04
在构造这样的逻辑时,我认为重要的是要注意你想表达的是什么。你是在表达一种行为/状态吗。或者你在做一种没有用数字表示的时钟?
所以我会按照定义一种行为的方式来做一些事情。
public enum Behavior
{
Happy,
Angry,
Scary
}
public Behavior GetShopKeeperBehavior()
{
DateTime now = DateTime.Now;
if (now.Hour >= 5 && now.Hour < 12) return Behavior.Happy;
if (now.Hour >=12 && now.Hour < 20) return Behavior.Angry;
return Behavior.Scary;
}
// usage
Behavior shopKeeperMood = GetShopKeeperBehavior();
if (shopKeeperMood == Behavior.Happy)
{
// shop keeper says "Long time no see!"
}这将使您的调用程序代码更易于阅读(而不是将大量的日期时间条件分散在代码中),并且它允许您根据其他一些尚未想到的标准(这可能基于一天中的时间以外的其他因素)添加其他行为。
发布于 2016-01-12 22:13:32
DateTime dt = DateTime.Now;
if (dt.Hour >= 5 && dt.Hour < 12)
{
//Hey! Long time no see!
}
else if (dt.Hour < 20)
{
//I'm shouting at you
}
else
{
//I'm scared :(
}https://stackoverflow.com/questions/34754643
复制相似问题