猜数字游戏(python,C++), 同一个类中的方法相互调用(两种办法)
2024-01-08 00:04:21
- ?# random.randint(a, b),使用randint()函数,我们可以在一个指定的整数范围内生成一个随机整数。在使用该函数时,我们需要指定整数范围的上限和下限。该函数返回一个随机整数,其取值范围是[a,b],即包括a和b本身
- # input接受一个参数,用于要向用户显示的提示或说明,包括但不限于字符串,整型数字;
- # python的格式运算符与C,C++的格式运算符相似,但是python的变量前要加一个%,如果有多个变量还需要用圆括号将这几个变量括起来,并在括号前加一个%
- # python中的逻辑运算符是用 and,or,not来表示的,而不是 &&, ||, ! 来表示
python代码,函数实现:
import random
def start(l, h, num, cnt):
#从[l, h]中猜一个数,你有cnt次机会,num是用户猜测的数字
Random = random.randint(1, (1 << 31) - 1 ) % (h-l) + 1 + l;
# random.randint(a, b)
# 使用randint()函数,我们可以在一个指定的整数范围内生成一个随机整数。在使用该函数时,我们需要指定整数范围的
# 上限和下限。该函数返回一个随机整数,其取值范围是[a,b],即包括a和b本身。
while(1):
if(Random > num):
print("您的数字太小了,请再输入一个数")
print("您还剩下 %d 次机会\n" %(cnt))
num = int(input(""))
# input接受一个参数,用于要向用户显示的提示或说明,包括但不限于字符串,整型数字;
elif(Random < num):
print("您的数字太大了,请再输入一个数")
print("您还剩下 %d 次机会\n" %cnt)
# python的格式运算符与C,C++的格式运算符相似,但是python的变量前要加一个%,如果有多个
# 变量还需要用圆括号将这几个变量括起来,并在括号前加一个%
num = int(input(""))
else:
print("恭喜您猜对了,游戏结束!\n")
break
cnt -= 1
if(cnt == 0):
print("游戏失败!!!欢迎下次见面!\n")
break
print("欢迎来到游戏王国")
while(1):
while(1):
op = input("请选择您的游戏难度:\nsimple or medium or hard")
if(op == "simple"):
print("请您在 1~50 中选择一个数:")
num = int(input(""))
start(0,50,num,9)
elif( op == "medium"):
print("请您在 51~500 中选择一个数:")
num = int(input(""))
start(50,500,num,9)
elif(op == "hard"):
print("请您在 501~1000 中选择一个数:")
num = int(input(""))
start(500,1000,num,9)
else:
print("您的选择错误:您只能在 simple or medium or hard 中选择:")
if op == "simple" or op == "medium" or op == "hard" :
break
# python中的逻辑运算符是用 and,or,not来表示的,而不是 &&, ||, ! 来表示
print("您是不是觉得这个游戏太有趣了!您还想继续玩这个游戏吗?")
str = input("请您输入yes or no :")
if(str == "yes" or str == "YES" or str == "Yes" or str == "YEs"):
print("好的,咱们继续:\n")
else:
print("好的,很期待与您的下一次见面,祝您生活愉快!!!\n")
break
python代码,将函数封装在一个类中实现:
# 同一个类中的方法相互调用,一是可以用 self.方法名() ?
# 同一个类中的方法相互调用,二是可以用 类名.方法名()(一定要加self)
# 同一个类中的方法相互调用,一是可以用 类名.方法名(self, )?
?# 当用类名.方法名时,加不加self参数都可 [,经实践检验,此为错误,使用类名.方法名时,一定要加self参数,否则会报错]
# 类实现:
import random
# 引进random模块
class NumGame:
def __init__(self, name, id):
self.name = name
self.id = id
"""为该数字游戏类增添两个属性,姓名以及id号"""
# 这种用三双引号注释的文字,千万要注意,当在类或者函数里面注释的时候,一定要保证注释要与其他代码的空格保持一致,否则
# 如果你用三双引号注释的文字顶格写,就会造成后面还在类里面或者函数里面的代码编译错误;
def start(self, l, h, num, cnt):
#从[l, h]中猜一个数,你有cnt次机会,num是用户猜测的数字
Random = random.randint(1, (1 << 31) - 1 ) % (h-l) + 1 + l
# random.randint(a, b)
# 使用randint()函数,我们可以在一个指定的整数范围内生成一个随机整数。在使用该函数时,我们需要指定整数范围的
# 上限和下限。该函数返回一个随机整数,其取值范围是[a,b],即包括a和b本身。
while(1):
if(Random > num):
print(f"{self.name} 您的数字太小了,请再输入一个数")
print(f"{self.name} 您还剩下 %d 次机会\n" %(cnt))
num = int(input(""))
# input接受一个参数,用于要向用户显示的提示或说明,包括但不限于字符串,整型数字;
elif(Random < num):
print(f"{self.name} 您的数字太大了,请再输入一个数")
print(f"{self.name} 您还剩下 %d 次机会\n" %cnt)
# python的格式运算符与C,C++的格式运算符相似,但是python的变量前要加一个%,如果有多个
# 变量还需要用圆括号将这几个变量括起来,并在括号前加一个%
num = int(input(""))
else:
print("恭喜您猜对了,游戏结束!\n")
break
cnt -= 1
if(cnt == 0):
print("游戏失败!!!欢迎下次见面!\n")
break
def start_game(self):
print(f"{self.name} 欢迎来到游戏王国")
while(1):
while(1):
op = input("请选择您的游戏难度:\nsimple or medium or hard")
if(op == "simple"):
print("请您在 1~50 中选择一个数:")
num = int(input(""))
self.start(0,50,num,9)
# 同一个类中的方法相互调用,一是可以用 self.方法名()
elif( op == "medium"):
print("请您在 51~500 中选择一个数:")
num = int(input(""))
NumGame.start(self, 50,500,num,9)
# 同一个类中的方法相互调用,二是可以用 类名.方法名()
elif(op == "hard"):
print("请您在 501~1000 中选择一个数:")
num = int(input(""))
NumGame.start(self, 500,1000,num,9)
# 同一个类中的方法相互调用,一是可以用 类名.方法名(self, )
# 当用类名.方法名时,加不加self参数都可 [,经实践检验,此为错误,使用类名.方法名时,一定要加self参数,否则会报错]
else:
print("您的选择错误:您只能在 simple or medium or hard 中选择:")
if op == "simple" or op == "medium" or op == "hard" :
break
# python中的逻辑运算符是用 and,or,not来表示的,而不是 &&, ||, ! 来表示
print("您是不是觉得这个游戏太有趣了!您还想继续玩这个游戏吗?")
str = input("请您输入yes or no :")
if(str == "yes" or str == "YES" or str == "Yes" or str == "YEs"):
print("好的,咱们继续:\n")
else:
print("好的,很期待与您的下一次见面,祝您生活愉快!!!\n")
break
ming = NumGame("小明", "10086")
ming.start_game()
C++代码:
#include <iostream>
#include <stdlib.h>
#include <ctime>
using namespace std;
void start(int l,int h,int num,int cnt)
{
srand((unsigned) time(NULL));
int Random = rand() % (h-l) + 1 + l;
while(1)
{
if(Random > num)
{
puts("您的数字太小了,请再输入一个数");
printf("您还剩下 %d 次机会\n",cnt);
cin >> num;
}
else if(Random < num)
{
puts("您的数字太大了,请再输入一个数");
printf("您还剩下 %d 次机会\n",cnt);
cin >> num;
}
else
{
puts("恭喜您猜对了,游戏结束!\n");
break;
}
--cnt;
if(cnt == 0)
{
puts("游戏失败!!!欢迎下次见面!\n");
break;
}
}
}
int main()
{
puts("欢迎来到游戏王国");
string op;
while(1)
{
do
{
puts("请选择您的游戏难度:\nsimple or medium or hard");
cin >> op;
int num;
if(op == "simple")
{
puts("请您在 1~50 中选择一个数:");
cin >> num;
start(0,50,num,9);
}
else if( op == "medium")
{
puts("请您在 51~500 中选择一个数:");
cin >> num;
start(50,500,num,9);
}
else if(op == "hard")
{
puts("请您在 501~1000 中选择一个数:");
cin >> num;
start(500,1000,num,9);
}
else
puts("您的选择错误:您只能在 simple or medium or hard 中选择:");
}while(op != "simple" && op != "medium" && op != "hard");
string str;
puts("您是不是觉得这个游戏太有趣了!您还想继续玩这个游戏吗?");
puts("请您输入yes or no :");
cin >> str;
if(str == "yes" || str == "YES" || str == "Yes" || str == "YEs")
puts("好的,咱们继续:\n");
else
{
puts("好的,很期待与您的下一次见面,祝您生活愉快!!!\n");
break;
}
}
return 0;
}
文章来源:https://blog.csdn.net/qq_51825761/article/details/135392834
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!