我剛剛開始學習如何在C Sharp中編寫代碼。我們有一個課程項目,我們需要製作一個程序,它是一個1到100之間隨機數的猜測遊戲。我有這個工作(目前用於測試,我只做1-10),但我想去一個通過基本代碼並添加一些我自己的代碼。我有四個標籤,其中兩個用詞來描述它們的用途,另外兩個用於我想要更改數據。假設你猜的是1到100之間,你猜25和低到了,你猜的最高數字是低的,我希望顯示的是,如果你猜一個像70這樣的數字,並且它到高我相同希望顯示在標籤上。這似乎很容易,但我沒有任何運氣。因爲我不確定錯誤在哪裏,所以我將編寫我的整個代碼。請注意,由於代碼無法正常工作,因此我只會將其設置爲較低的編號,直到我找出結果。如何使用按鈕和文本框來更改標籤?
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 WindowsFormsApplication1
{
public partial class frmMain : Form
{
Double count = 0;
int randomNumber;
Random rand = new Random();
public frmMain()
{
InitializeComponent();
randomNumber = rand.Next(10) + 1;
lblLowShow.Text = "0";
lblHighShow.Text = "100";
}
private void btnGuess_Click(object sender, EventArgs e)
{
count++;
int guessedNumber;
guessedNumber = int.Parse(txtEnterGuess.Text);
if (guessedNumber > randomNumber)
{
MessageBox.Show("To High! Please try again");
}
if (guessedNumber < randomNumber)
{
int lowguess;
MessageBox.Show("To Low! Please try again");
lowguess = Convert.ToInt32(lblLowShow);
if (guessedNumber < lowguess) // Changes the number of the highest, low guess that is displayed.
{
string LowShow;
LowShow = lowguess.ToString();
lblLowShow.Text = LowShow;
}
}
else
{
MessageBox.Show("Congratulations! You won in " + count + " tries!");
count = 0;
randomNumber = rand.Next(10) + 1;
}
}
private void btnExit_Click(object sender, EventArgs e)
{
this.Close();
}
private void btnNewGame_Click(object sender, EventArgs e)
{
}
}
}
Visual Studio是沒有做任何的紅點,以顯示在代碼中的錯誤,所以這不是幫助我追查錯誤(或多個)。
這裏有什麼確切的問題?你能解釋一下嗎? – Slashy
當我輸入一個數字並運行代碼時,比如說我輸入了數字2,然後猜中,我收到了這條錯誤消息。 在mscorlib.dll中發生未處理的類型爲「System.InvalidCastException」的異常 其他信息:無法轉換類型爲「System.Windows.Forms.Label」的對象以鍵入「System.IConvertible」。 – Lyght
您需要跟蹤單獨變量中的LAST猜測,並比較該值,而不是比較輸入到標籤等中的值,因此只需添加一個名爲lastGuess的新變量,並將其設置爲「btnGuess_Click」事件中的LAST動作,然後進行比較在與lastRandomNumber再入-same(這些將是模塊級瓦爾) –