即時通訊使用5個骰子試圖獲得C#編程。兩名球員得到三次投籃。在得分之前,他必須依次得到6分,5分和4分。當他拋出這些特殊數字時,這些骰子就會被取消。剩下的兩個骰子的總數就是他的觀點。電腦必須打敗它。骰子必須按順序建造。也就是說,玩家必須在5之前或之前同時投擲6和5之前,或者與之同時投擲6。C#骰子滾動
如何讓它識別6,5的骰子,4是閱讀,我如何儘量減少骰子達到其條件後的數量?
即時通訊使用5個骰子試圖獲得C#編程。兩名球員得到三次投籃。在得分之前,他必須依次得到6分,5分和4分。當他拋出這些特殊數字時,這些骰子就會被取消。剩下的兩個骰子的總數就是他的觀點。電腦必須打敗它。骰子必須按順序建造。也就是說,玩家必須在5之前或之前同時投擲6和5之前,或者與之同時投擲6。C#骰子滾動
如何讓它識別6,5的骰子,4是閱讀,我如何儘量減少骰子達到其條件後的數量?
聽起來像學習有限狀態機的練習。
其基本思想是你的「機器」在某種狀態下啓動,我們稱之爲「START」。
爲了獲得分數,你需要三次滾動骰子,所以你還必須跟蹤骰子擲出的次數。
在每次擲骰後,您會檢查骰子,並根據當前狀態和擲骰子的情況,將您的「機器」轉換爲新狀態。
您聲明您必須依次滾動一個6,5和4(這提示狀態將如何轉換)或在同一個滾動(告訴您狀態可以跳過)期間滾動。
那麼這些其他狀態是什麼?既然你必須擲出一個6然後是5,然後是4,那麼我們只需要調用狀態「SIX」,「FIVE」和「FOUR」。
在僞代碼:
int STATE_START = 6;
int STATE_SIX = 5;
int STATE_FIVE = 4;
int STATE_FOUR = 3;
int state = STATE_START;
int rolls = 0;
int[] dice
int score = 0;
do (while state != STATE_FOUR && rolls++ < 4) {
dice = rollDice();
do (while state != STATE_FOUR) {
if (dice.Contains(state)) {
state--;
}
else {
break;
}
}
}
if (state == STATE_FOUR) {
score = getScore(dice);
}
TQ Chris ..現在我明白了.. :) – Sydney 2010-10-13 15:35:15
你有什麼代碼,使遠嗎? – RedFilter 2010-10-13 15:06:07
你只需要產生足夠的隨機數然後掃描它們的6,5,4。有什麼困難?到目前爲止,你有什麼? – Rup 2010-10-13 15:06:36
有些問題:這個作業嗎?你有多少經驗與C#(或其他編程語言)?你使用的是什麼版本的C#?如果你是C#的新手,那麼我建議你閱讀一些書籍或者在互聯網上搜索,這裏有很多可以學習的資源。如果你自己去解決問題,看看它會如何發展,你會學到更多。 – 2010-10-13 15:21:16