通過更多的書examples-這一個工作是部分撲克計劃專 這部分涉及直手....撲克代碼清理修改......不太對勁
第一隻什麼是得到N-相關配件....將提供完整的代碼,如果需要...
int suits[5]; //index 1..4- value start at 1
int values[14]; //index 1..13- value same as rank, A = 1, K = 13
cin.get(rankCh);
switch (toUpper(rankCh)) {
case 'A': values = 1; break;
case '2': values = 2; break;
case '3': values = 3; break;
case '4': values = 4; break;
case '5': values = 5; break;
case '6': values = 6; break;
case '7': values = 7; break;
case '8': values = 8; break;
case '9': values = 9; break;
case 'T': values = 10; break;
case 'J': values = 11; break;
case 'Q': values = 12; break;
case 'K': values = 13; break;
default:
badCard = true;
}
其它功能:
bool isFlush(int suits[]) {
for(i = 1; i <= 4; i++)
if (suits[i] == 5) //5 here is Number of Cards
return true;
return false;
}
是啊,我知道了數組聲明但這是豪這是它的定義 - 很好的理由它在文本...開始數字在1 我希望我的直手處理王牌高和低權利現在定義以上王牌是低...
兩個版本:第一次出現不知道正確的低尖子...
CODE
bool isStraight(int values[]) //Version one only straight- low aces only
{
int count = 0;
for (i = 1; i <= 13; i++) {
if (values[i] != 1) {
count++;
} else
count = 0;
if (count == 5) //5 is NUMCARDS
return true;
}
return false;
}
現在,這是我需要一些建議:有一個函數來處理這兩個王牌高和低:
bool isStraight(int values[]) //Version handles both high and low
{
int count = 0;
for (i = 1; i <= 13; i++) {
if (values[i] != 1) {
count++;
// if(i == 1 && values[1] != 0) //Check for high and low
// count++;
} else
count = 0;
if (count == 5) //5 is NUMCARDS
return true;
}
return false;
}
請問我有什麼意見中要處理的工作都王牌高和低...
因i = 1表示爲ACE和不知道是什麼值[1]是正確的它應該是值[13]或者是什麼......也許像
if (i == 1)
values[13] //not sure...
建議 -
- 不想批發changes-正好與我有什麼......我不想排序或用暴力解決小的改動即像值[1] == 1 & &個值[2] == 1你的文中已經但是我想這種方式重寫它的點 - ...
謝謝...希望我在我的修改讓我想...
計數的值時,它遞增只應檢查,這是不是每個:直存在可以通過改變最終的測試發現通過循環的時間。 – 2009-06-16 00:22:57
雖然你是一個相當小的優化。該檢查是在哪裏,因爲這是它在原始代碼中的位置。 – 2009-06-16 01:43:13