📄 letter_game.pc
字号:
// 猜词游戏,http://www.yesky.com/SoftChannel/72342371928899584/20041118/1877413.shtml#
#include <iostream>
#include <string>
#include <cstdlib>
#include <ctime>
#include <cctype>
using namespace std;
const int NUM = 26;
const string wordlist[NUM] = {"alabama", "choice", "usually",
"dangerous", "deer", "panda", "love", "health", "exciting",
"interesting", "administrator", "professional", "manage", "nonce", "onset",
"typeid", "quarter", "remote", "lovely", "car", "keeper",
"valid", "where", "mean", "important", "last"};//供游戏的单词库
int main()
{
srand(time(0));
char play;
cout << "Will you play a word game? <y/n> ";
cin >> play;
play = tolower(play);
while(play=='y')
{
string first(wordlist[rand()%NUM]);//随机选择单词
int length=first.length();
string player(length,'-');//玩家猜测的单词
string badguess;//猜错的字母集合
int guesses=10;//猜错的机会
char guess;
cout<<"您有"<<guesses<<"次猜错的机会。\n";
cout<<"您的单词:"<<player<<'\n';
while(guesses>0&&player!=first)
{
cout<<"请您猜吧!";
cin>>guess;
if(badguess.find(guess)!=string::npos||player.find(guess)!=string::npos)
{
cout<<"对不起,这个字母您已经猜过了。";
continue;
}//判断是否已经猜过
int temp=first.find(guess);
if(temp==string::npos)
{
cout<<"啊!猜错了。\n";
guesses--;
badguess+=guess;
}//猜错后的处理
else
{
player[temp]=guess;
temp=first.find(guess,temp+1);
while(temp!=string::npos)//继续搜索该字符,看是否单词中有多个该字符
{
player[temp]=guess;
temp=first.find(guess,temp+1);
}
}
cout<<"您还剩下"<<guesses<<"次猜错的机会。\n";
cout<<"您当前猜出的单词:"<<player<<'\n';
cout<<"您当前猜错的字母集合:"<<badguess<<'\n';
}
if(guesses==0)
cout<<"对不起,您失败了。\n";
else
cout<<"您真棒!\n";
cout<<"正确单词为:"<<first<<'\n';
cout << "Will you play again? <y/n> ";
cin>>play;
}
system("PAUSE");
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -