[問題]有關練習寫猜拳小遊戲的疑問

看板C_Sharp (C#)作者 (72727)時間14年前 (2011/05/08 19:29), 編輯推噓2(208)
留言10則, 2人參與, 最新討論串1/1
我嘗試用指定數字加上判斷式 不用 轉型字串加總比對的方式去寫猜拳遊戲 可是一直搞不清楚為什麼結果總是會有錯誤的顯示 小弟接觸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

05/08 20:10, , 1F
錯誤訊息是甚麼?
05/08 20:10, 1F

05/08 20:11, , 2F
直覺覺得,random number的地方..為什麼是nextdouble?
05/08 20:11, 2F

05/08 20:13, , 3F
產生浮點數,然後要把他轉為int,當然會錯
05/08 20:13, 3F

05/08 20:15, , 4F
改成next(3)+1應該就可以了
05/08 20:15, 4F

05/08 20:15, , 6F
random number的next用法,
05/08 20:15, 6F

05/08 21:36, , 7F
程式可以跑 但是會出現判定不正確的情況
05/08 21:36, 7F

05/08 21:38, , 8F
勝負的判定會不正常
05/08 21:38, 8F

05/08 22:13, , 9F
那就不知道了,要有完整內容才有辦法判斷.多加一個else看是
05/08 22:13, 9F

05/08 22:13, , 10F
不是跑去那邊
05/08 22:13, 10F
文章代碼(AID): #1Dndw3Tm (C_Sharp)
文章代碼(AID): #1Dndw3Tm (C_Sharp)