一開始上排會顯示題目,玩家須記下圖片順序,幾秒後題目會覆蓋,玩家依序選擇答案。
答題三次失敗則遊戲結束。
這個遊戲主要的程式是在於題目的亂數,需要產生不重複的三個亂數,我採用了洗牌法。- 假設現在有一個陣列,大小為 6 ,一開始先依序存入 A、B、C、D、E、F ,上方數字為陣列 index 。
- 用亂數取兩個 0 ~ 5 的值,決定兩張要交換的 index ,交換後如下圖,兩張牌只有內容改變, index 不變。
- 再度用亂數取兩個 0 ~ 5 的值,做交換。
- 多交換幾次後,就可以得到一個不重複的亂數,此為洗牌法。
string Array[6]={"A", "B", "C", "D", "E", "F"};
int index1, index2;
string temp;
for(int i = 0; i < 100; i++){ // 代表交換了 100 次
index1 = rand() % 6; // 0 ~ 5
index2 = rand() % 6;
// 兩者內容交換
temp = Array[index1];
Array[index1] = Array[index2];
Array[index2] = temp;
}