Java 7.35 游戏:猜字游戏(C++&Java)
Ps:
有人可能好奇我为什么大费周章的去写主函数,而不直接把所有操作放在类中,Why?类就好比骨干(存放核心的数据和功能),最好提供接口, 避免了类中的输入输出,当然,这也不是绝对的。
C++:
#include<iostream>
#include<string>
#include<ctime>
using namespace std;
class GuessNumber {
public:
void Get();
int Guess(char);
string get_g_word() {
return g_word;
}
string get_word() {
return word;
}
int get_miss() {
return miss;
}
private:
int miss = 0;
string words[7] = { "write","that","important","transform","judge","index","run" };
string word;
string g_word;
};
void GuessNumber::Get() {
srand((unsigned int)time(0)); //随机数
word = words[rand() % 7 ]; //伪随机数?——跟运行时间有关
g_word=string(word.length(), '*');
}
int GuessNumber::Guess(char ch) {
if (word.find(ch) == string::npos) { //字母没有出现在单词中
miss++;
return 2;
}
if (g_word.find(ch) != string::npos) { //已猜过(出现在g_word中)
miss++;
return 1;
}
for (int i = 0; i < word.length(); i++) //猜中,修改g_word
if (word[i] == ch)
g_word[i] = ch;
return 0;
}
int main() {
char ch;
string str;
GuessNumber My;
int key;
while (1) {
My.Get();
while (My.get_g_word() != My.get_word()) {
cout << "(Guess) Enter a letter in word " << My.get_g_word() << " > ";
cin >> ch;
key = My.Guess(ch);
if (key == 2)
cout << " " << ch << " is not in the word" << endl;
else if (key == 1)
cout << " " << ch << " is already in the word" << endl;
}
cout << "The word is " << My.get_word() << ". You missed " << My.get_miss() << " time " << endl;
cout << "Do you want to guess another word? Enter y or n >";
cin >> str;
if (str == "n")
break;
system("cls"); //清屏
}
return 0;
}
Java:
请自己写。
Java 7.35 游戏:猜字游戏(C++&Java)的更多相关文章
- 猜字游戏java
一.实践目的 1.掌握基本输入输出. 2.掌握方法定义与调用,理解参数传递方式. 3.掌握数组的声明.定义与初始化,数组的处理. 4.掌握数组作为方法参数和返回值. 二.实践要求 利用方法.数组.基本 ...
- 044 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 06 使用do-while循环实现猜字游戏
044 01 Android 零基础入门 01 Java基础语法 05 Java流程控制之循环结构 06 使用do-while循环实现猜字游戏 本文知识点:do-while循环深入运用 案例练习 案例 ...
- Leetcode 299.猜字游戏
猜字游戏 你正在和你的朋友玩 猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜.每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为"Bulls&q ...
- 《Java语言程序设计》编程练习8.9(游戏:#字游戏)
8.9 (游戏:#字游戏)在并字游戏中,两个玩家使用各自的标志(一方用X则另一方就用O),轮流填写3x3的网格中的某个空格.当一个玩家在网格的水平方向.垂直方向或者对角线方向上出 现了三个相同的X或三 ...
- C - 一个C语言猜字游戏
下面是一个简陋的猜字游戏,玩了一会儿,发现自己打不过自己写的游戏,除非赢了就跑,最高分没有过1000. 说明:srand(time(NULL))和rand(),srand,time和rand都是函数, ...
- CASIO 5800P计算器游戏--猜数字游戏
CASIO 5800P 计算器游戏--猜数字游戏原代码 我编的计算器小游戏--猜数字游戏 LbI I↙ "xxGUESS NUMBERxx xPROGRAMMER:JCHx -------- ...
- 51 Nod 不一样的猜字游戏
1536 不一样的猜数游戏 题目来源: CodeForces 基准时间限制:1 秒 空间限制:131072 KB 分值: 20 难度:3级算法题 收藏 关注 瓦斯亚和皮台亚在玩一个简单的游戏.瓦 ...
- Java实现 LeetCode 299 猜数字游戏
299. 猜数字游戏 你正在和你的朋友玩 猜数字(Bulls and Cows)游戏:你写下一个数字让你的朋友猜.每次他猜测后,你给他一个提示,告诉他有多少位数字和确切位置都猜对了(称为"B ...
- 初识Java,猜字游戏
import java.util.*; public class caizi{ public static void main(String[] args){ Scanner in=new Scann ...
随机推荐
- MD5加密和彩虹表
首先叙述一下彩虹表的原理.本部分内容.图片和例子基本来自英文维基的Rainbow table词条(Rainbow table)——中文维基中目前(2013年10月9日)尚无对应的词条——因此对本答案中 ...
- idea中maven中jdk版本的选择(转)
转自:https://www.cnblogs.com/joshul/p/6222398.html IntelliJ IDEA中Maven项目的默认JDK版本 在IntelliJ IDEA 15中使 ...
- Spring Data MongDB空间索引(判断一个点Point是否在一个区域Polygon内)
这里要连接MongoDB数据库,在配置文件里:spring.data.mongodb.uri = mongodb://root:root@localhost:27017/happy 两个root分别是 ...
- ADO.Net 综合练习题
题目: 第一部分: 新建一个数据库:ADO测试,包含下面两个数据表,使用代码创建,并保留创建的代码文本. 专业表Subject: 专业编号(SubjectCode):nvarchar类型,不能为空,主 ...
- bind,call,applay的区别
方法调用模式: 当一个函数被保存为对象的一个方法时,如果调用表达式包含一个提取属性的动作,那么它就是被当做一个方法来调用,此时的this被绑定到这个对象. var a = 1 var obj1 = { ...
- tomact启动报错org.apache.jasper.EmbeddedServletOptions.<init> The scratchDir you specified:xxx is unusable.
问题: 22-May-2018 18:00:15.891 严重 [localhost-startStop-1] org.apache.jasper.EmbeddedServletOptions.< ...
- oracle 转置实现
下面是3种方法 方法1:SYS_CONNECT_BY_PATH , ROW_NUMBER() OVER(PARTITION BY .. ORDER BY ..) , START WITH , C ...
- jquery+jquery.pagination+php+ajax 无刷新分页
<!DOCTYPE html> <html ><head><meta http-equiv="Content-Type" content= ...
- as3.0控制声音大小
//加载声音 var sound:Sound=new Sound(); sound.load(new URLRequest("1.mp3")): //声明声道 var soundC ...
- RedHat 更新CentOS Yum源(转)
经测试,可用.转自:https://www.cnblogs.com/tangsen/p/5151994.html 一.随笔引言 1.1随笔内容: 1.RedHat 配置Centos yum源 2.yu ...