hsyv123ve

/*14.8
(猜数游戏)编写一个程序,它按如下方式让玩家“猜数”。程序远择一个随机产生的int 值(1~ 1000)供猜测,然后在一个卷标中显示如下文本:
I have a number between 1 and 1000--can you guess my number?
Please enter yourfirst guess.
应使用一个文本框来输入所猜测的数。每次输人所猜的数后,程序的背景色应变成红色或蓝色。红色表示用户感觉到“热”,蓝色表示用户感觉到“冷”。为了帮助用户逐渐接近正确答案,应在一个奖标中显示“Too High”或“TOO LOW”。当用户猜测到了正确答案时,应在一个消息框中显示“Correct1"将窗体的背景色变成绿色并禁用文本框。回忆前面的内容可知,通过将控件的Enabled 属性设警由false,就可以禁用文本框(就如同其他的控件那样)。提供一个按钮,以允许用户再次玩这个游戏当单击这个按钮后,程序应产生一个新的随机数,将背景色改成默认的颜色并启用文本框。
*/
using System;
using System.Drawing;
using System.Windows.Forms;
namespace Guess
{
public partial class GuessForm : Form
{
int secret = 0;
int lastGuess = 0;
bool firstGuess = true;
public GuessForm()
{
InitializeComponent();
}
private void GenerateSecret()
{
Random randomNumber = new Random();
secret = randomNumber.Next( 1000 ) + 1;
}
private int CheckGuess( int user )
{
if ( user > secret ) // too high
return 1;
if ( user < secret ) // too low
return -1;
else // correct
return 0;
}
private void inputTextBox_KeyDown( object sender, KeyEventArgs e )
{
if ( e.KeyCode == Keys.Enter )
{
int userGuess = Convert.ToInt32( inputTextBox.Text );
if ( !firstGuess )
{
if ( Math.Abs( userGuess - secret ) <
Math.Abs( lastGuess - secret ) )
BackColor = Color.Red;
else
BackColor = Color.LightBlue;
}
firstGuess = false;
int rightOrWrong = CheckGuess( userGuess );
if ( rightOrWrong == 0 )
{
outputLabel.Text = "Correct!";
newGameButton.Enabled = true;
inputTextBox.ReadOnly = true;
BackColor = Color.LightGreen;
firstGuess = true;
}
else if ( rightOrWrong == -1 )
outputLabel.Text = "Too Low!";
else
outputLabel.Text = "Too High!";
inputTextBox.SelectAll();
lastGuess = userGuess;
}
}
private void newGameButton_Click( object sender, EventArgs e )
{
outputLabel.Text = "New Game Started!";
GenerateSecret();
ynewGameButton.Enabled = false;
inputTextBox.ReadOnly = false;
BackColor = Color.FromName( "Control" );
}
}
}

分类:

技术点:

相关文章: