2009-11-16 28 views
1

林设计在Visual C#中游戏的游戏必须包含两个文本框和两个bottons并在第一个文本BOS一个拉布勒我怎样写一个if语句我在C#中的猜谜游戏

我应该输入范围程序应随机生成的数字。 ----它由botton激活。

第二个文本框是我输入猜测的地方----还有一个botton来读取数字。

我会有十个猜测的限制,每个都是一种颜色。

例如,游戏将以绿色开始,如果我的猜测是错误的,颜色将变为较深的颜色(深绿色,深色.....红色等),如果我猜对了屏幕将会回到绿色的标签,说你赢了!或者如果我完成了我的猜测,它会告诉我游戏结束!

现在我不是说XPERT在Visual C#,所以我觉得很难在那里写代码......以及如何激活动作的变色事情

但我明白,我需要使用随机函数并知道如何设置范围,你会看到在下面的代码,但现在我卡住了,我不知道如何继续,,,有人请指导我,帮助我。

private void button1_Click(object sender, EventArgs e) 
    { 

    } 

    private void Form1_Load(object sender, EventArgs e) 
    { 
     int range; 
     range = int.Parse(textBox1.Text); 
     System.Random RandNum = new System.Random(); 
     int Magicnumber = RandNum.Next(0, range); 
     int numberofguesses = 0; 
    } 

    private void button2_Click(object sender, EventArgs e) 
    { 
     int usersguess ; 
     usersguess = int.Parse(textBox2.Text); 

     if (usersguess == Magicnumber) ; 
     { 
      // I dont know what to write here 
     }       
     { 
      if (usersguess != Magicnumber); 
     { 
      // I dont know what to write here 
     } 
     } 
    } 
} 

}

我知道在这个愚蠢的,但我不是亲,我想从你们 学习,我相信这是要求在正确的地方....

感谢名单提前

+0

对我而言,似乎你的游戏应该反馈猜测是否过高或过低? – RickL 2009-11-16 11:35:54

+0

wel会很好,但我会推迟到下一次 – nader 2009-11-16 11:41:47

+0

标记为家庭作业,因为它看起来很明显,这是某种任务。 – 2009-11-16 17:32:49

回答

4

(这开始作为一个评论,但没有人提到它,我得到了忘乎所以......)

请注意,添加一个分号后if是一个错误(这可能是为什么else没不会为你工作,并且你制造了这种奇怪的if-if反模式)。
这是写一个if语句的正确方法(否则是可选的,顺便说一句):

if(key == 'Q') 
{ 
    LaunchMissiles(); 
} 
else 
{ 
    GivePeaceAChance(); 
} 

现在,你有什么有很大的不同:

if(key == 'Q'); 
{ 
    LaunchMissiles(); 
} 

请参阅分号后的if?这意味着if(key=='Q');LaunchMissiles();两个不同的语句,而不是一个条件。这是一样的:

if(key == 'Q') DoNothing(); 
LaunchMissiles(); 

尽管它的外形,大括号不会帮助你在这里 - 你可以组一帮花括号中的语句,但它具有流量控制功能没有影响(除非立即之后当然是一个if或者循环)。

+0

+1我不知道if(key =='Q')DoNothing();行为 - 我只是假定它不会编译! – Nick 2009-11-16 14:08:39

+1

@尼克它编译,并给出一个小消息:**可能的错误空声明**。但是,如果在语句之后有一个'else'子句,它将*不*编译* **无效的表达式'else'** – Kobi 2009-11-16 14:20:33

0

嗯,这似乎是一个家庭作业类型的问题,但无论如何(因为你没有提及这是一个winforms或asp.net应用程序,我将假设winforms)。

对于您需要移动的

INT Magicnumber = RandNum.Next声明(0,范围)起动器。

并使其成为变量,以便可以通过窗体中的所有函数访问它。

其次在你的按钮点击你可以设置一个按钮的背面颜色来显示颜色的变化,或者你可以使用图像,我会去按钮,因为你可以通过保存一个变量来存储十六进制一种颜色的价值,并在每次失败时递增

Color myColor = Color.FromArgb(100,123,23,myvar); btnColor.BackColor = myColor;

通过在上面的示例中增加/减少myColor,按钮的backColor将在每次失败时更改。如果用户获得正确答案,那么您可以将backColor设置为您选择的默认颜色。

1

你的if语句需要一个整理的一个开始:

if (usersguess == Magicnumber) 
    { 
     // I dont know what to write here 
    }       
    else 
    { 
     // I dont know what to write here 
    } 
+1

你*有*在'if's之后提及分号。 – Kobi 2009-11-16 09:50:45

0

首先,这里是写的更好的方式你的“如果”建设:

if (int.Parse(textBox2.Text) == Magicnumber) 
{ 
    ... 
} 
else 
{ 
    ... 
} 

如果你想请计算用户尝试猜测数量的次数,您应该将其存储在一个变量中。每当你开始新游戏时,这个变量应该被重置为零。

private int count = 0; 

private void button2_Click(object sender, EventArgs e) 
{ 
    ... 

    if (int.Parse(textBox2.Text) == Magicnumber) 
    { 
     // User wins 
     ... 
    } 
    else 
    { 
     // Wrong answer 
     count++; 
     ... 
    } 
} 

然后,如果要更改某些WinForms控件的背景颜色,请使用BackColor属性(其值应取决于计数)。本示例更改文本编辑实例的背景色:

textEdit1.BackColor = Color.DarkGreen; 

的颜色在这里是可表示任何颜色,有很多命名值(http://msdn.microsoft.com/en-us/library/system.drawing.color.aspxhttp://msdn.microsoft.com/en-us/library/aa358802%28VS.85%29.aspx)的类的System.Drawing.Color。在严格要求解决任何编程任务之前,我严格地提醒你先阅读一些关于C#的好书。

+2

if ...分号...否... – Kobi 2009-11-16 11:04:08

+0

感谢您的注意。固定。 – dreikanter 2009-11-16 15:01:39