作者darkness0727 (72727)
看板C_Sharp
標題[問題]有關練習寫猜拳小遊戲的疑問
時間Sun May 8 19:29:03 2011
我嘗試用指定數字加上判斷式
不用 轉型字串加總比對的方式去寫猜拳遊戲
可是一直搞不清楚為什麼結果總是會有錯誤的顯示 小弟接觸C#不到兩個月
太雷請多包涵
玩家選擇隨機出拳的選項
private void button4_Click(object sender, EventArgs e) //隨機出拳的按鈕
{
npcset = System.Convert.ToInt32(ran_set.NextDouble() * 3 + 1);
//電腦出拳的機率設定
userscore = System.Convert.ToInt32(ran_set.NextDouble() * 3 + 1);
//玩家隨機出拳
if (userscore.Equals(1))//假如玩家出剪刀
{
userscore = 1;
labeluser.Text = "玩家出剪刀";//玩家隨機出拳的顯示設定
//以下是玩家出剪刀的情形下
if (npcset.Equals(1)) //電腦出剪刀
{
labelnpc.Text = "電腦出剪刀";
labelplaymessage.Text = "平手";
}
else if (npcset.Equals(2))//電腦出石頭
{
labelnpc.Text = "電腦出石頭";
labelplaymessage.Text = "電腦獲勝";
}
else if (npcset.Equals(3))//設定電腦出布的情況
{
labelnpc.Text = "電腦出布";
labelplaymessage.Text = "玩家獲勝";
}
}
else if (userscore.Equals(2))//玩家隨機出石頭
{
userscore = 2;
labeluser.Text = "玩家出石頭";
//以下是玩家出石頭的判斷
if (npcset.Equals(1)) //設定電腦出剪刀的情況
{
labelnpc.Text = "電腦出剪刀";
labelplaymessage.Text = "玩家獲勝";
}
else if (npcset.Equals(2))//設定電腦出石頭的情況
{
labelnpc.Text = "電腦出石頭";
labelplaymessage.Text = "平手";
}
else if (npcset.Equals(3))//設定電腦出布的情況
{
labelnpc.Text = "電腦出布";
labelplaymessage.Text = "電腦獲勝";
}
}
else if (userscore.Equals(3))//玩家隨機出布
{
userscore = 3;
labeluser.Text = "玩家出布";
//以下是玩家出布的狀況
if (npcset.Equals(1)) //設定電腦出剪刀的情況
{
labelnpc.Text = "電腦出剪刀";
labelplaymessage.Text = "電腦獲勝";
}
else if (npcset.Equals(2))//設定電腦出石頭的情況
{
labelnpc.Text = "電腦出石頭";
labelplaymessage.Text = "玩家獲勝";
}
else if (npcset.Equals(3))//設定電腦出布的情況
{
labelnpc.Text = "電腦出布";
labelplaymessage.Text = "平手";
}
}
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 114.47.11.110
1F:推 liaommx:錯誤訊息是甚麼? 05/08 20:10
2F:→ liaommx:直覺覺得,random number的地方..為什麼是nextdouble? 05/08 20:11
3F:→ liaommx:產生浮點數,然後要把他轉為int,當然會錯 05/08 20:13
4F:→ liaommx:改成next(3)+1應該就可以了 05/08 20:15
6F:→ liaommx:random number的next用法, 05/08 20:15
7F:→ darkness0727:程式可以跑 但是會出現判定不正確的情況 05/08 21:36
8F:→ darkness0727:勝負的判定會不正常 05/08 21:38
9F:推 liaommx:那就不知道了,要有完整內容才有辦法判斷.多加一個else看是 05/08 22:13
10F:→ liaommx:不是跑去那邊 05/08 22:13