首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> C語言 >> C++ >> 關於C++

C++探索之旅(一·十一):字符串打亂猜單詞遊戲——綜合實戰變量、函數、隨機數、字符串操作

     編輯:關於C++

遊戲規則

玩家 1 輸入單詞 → 程序打亂字母順序 → 玩家 2 猜原單詞。直到猜中顯示祝賀。

三步實現框架

  1. 輸入原單詞 secretWord
  2. 打亂函數 mixLetters(secretWord) 返回 mixedWord
  3. 循環讀入猜測,比較是否等於 secretWord

核心難點:隨機打亂算法

string mixLetters(string word) {
    string mixed;
    srand(time(0));  // 僅主程序調用一次
    while (!word.empty()) {
        int pos = rand() % word.size();  // 隨機索引
        mixed += word[pos];              // 追加到新串
        word.erase(pos, 1);              // 從原串刪除該字符
    }
    return mixed;
}

關鍵技術點

  • srand(time(0)) 初始化偽隨機種子(全程一次)
  • rand() % n 生成 0~n-1 隨機數
  • string::erase(pos, 1) 刪除指定位置 1 個字符
  • do-while 保證至少猜一次

完整主程序

int main() {
    string secret, mixed, guess;
    srand(time(0));
    cout << "輸入一個單詞: "; cin >> secret;
    mixed = mixLetters(secret);
    do {
        cout << "原先的單詞是什麼? " << mixed << endl;
        cin >> guess;
        if (guess == secret) cout << "猜對了!好棒!" << endl;
        else cout << "猜錯了!" << endl;
    } while (guess != secret);
    return 0;
}

改進方向

  1. 隱藏輸入:輸出多行空行或系統清屏
  2. 多輪遊戲:外層循環詢問是否繼續
  3. 限制次數:如 5 次機會
  4. 計分系統:1 次 10 分,2 次 9 分... 顯示平均分
  5. 詞庫文件:讀取字典 txt,單人遊戲模式

學習價值

綜合運用:變量、字符串、函數、隨機數、循環、條件、I/O、文件操作(擴展)。是從「語法學習」到「程序設計」的關鍵一步。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved