首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >想要全国人民代表大会根据一天中的时间作出反应

想要全国人民代表大会根据一天中的时间作出反应
EN

Stack Overflow用户
提问于 2016-01-12 22:06:06
回答 2查看 87关注 0票数 0

基本上,我试图创建一个文本为基础的冒险游戏,其中一个店主被添加。这个店主有三种不同的情绪(快乐,愤怒和悲伤),这取决于一天中的时间。

所以,从早上5点到中午12点,店主的心情很好,发出了“嘿!好久不见了!”这样的信息,从中午12点到晚上10点,他的心情很愤怒,对你大喊大叫,最后从晚上10点到早上5点,他害怕了,说了些可怕的话。

除了这个店主,我几乎完成了所有的创作。有人能帮我完成这件事吗。对于这一部分,我只成功地编码了时间。我无法用以下时间写出if语句:(

代码语言:javascript
复制
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)
{
}
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-01-12 22:51:04

在构造这样的逻辑时,我认为重要的是要注意你想表达的是什么。你是在表达一种行为/状态吗。或者你在做一种没有用数字表示的时钟?

所以我会按照定义一种行为的方式来做一些事情。

代码语言:javascript
复制
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!"
}

这将使您的调用程序代码更易于阅读(而不是将大量的日期时间条件分散在代码中),并且它允许您根据其他一些尚未想到的标准(这可能基于一天中的时间以外的其他因素)添加其他行为。

票数 1
EN

Stack Overflow用户

发布于 2016-01-12 22:13:32

代码语言:javascript
复制
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 :(
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34754643

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档