用python 3.6 弄个游戏, 两个玩家互相从1到9选数字,直到有个人选的数字...
发布网友
发布时间:2022-04-23 00:12
我来回答
共4个回答
懂视网
时间:2022-04-06 09:48
Python–数字炸弹游戏,供大家参考,具体内容如下
数字炸弹游戏规则:
在一个数字范围内,有一个数字作为炸弹,谁猜中这个炸弹就被惩罚.比如范围是1~99,
炸弹是60,然后猜了一个数字是30,30不是炸弹,那么现在猜数字的范围就缩小到30~100,
又猜了一个数字80,80也不是炸弹,那么现在又缩小范围到30~80,每次猜不能猜边界上的值,
直到你或电脑猜中这个炸弹,然后就会受到惩罚,游戏结束
要求:你先输入一个数如果不是炸弹,然后让电脑缩小范围输入一个数字,如果还不是炸弹你再次缩小范围输入,下来又到电脑,依次反复,直到找到炸弹
O. 首先找到核心思路
1、生成炸弹
2、打印炸弹范围
3、自己猜一次
4、缩小炸弹范围
5、电脑生成随机数(电脑猜一次)
6、继续缩小炸弹范围
7、循环这些操作,直到炸弹爆炸,游戏结束!
代码
import random
x =random.randint(1,100)
print("炸弹数字XX")
start = 1#定义最小范围
end = 100#定义最大范围
while True:
num = int(input("输入{}-{}之间的整数:".format(start, end)))
if num>x:
end = num
print("你猜大了")
elif num == x:
print("你输了,游戏结束!")
break
elif num < x:
start = num
print("你猜小了")
#----------------------------computer(小红)
computer = random.randint(start,end)
print("小红认为炸弹是:",computer)
if computer>x:
end = computer
print("小红猜大了")
elif computer == x:
print("你赢了")
print("游戏结束")
break
elif computer<x:
start=computer
print("小红猜小了")
核心代码使用了比较函数,用来更新炸弹范围
用random生成(1-100)中的随机数(代表炸弹)
用两个变量定义炸弹上下限
用input接受你猜的数,用if判断如果你猜的数大于炸弹就把你猜的数赋给炸弹上限end(更改炸弹上限),如果等于炸弹,游戏结束!如果小于炸弹,把你猜的值赋给炸弹下线start
用random生成一个随机数,让小红猜一次,同样用if判断,大与炸弹值更改上限,小于缩小下限。直到游戏结束!
================== 运行结果 ==================
相关学习推荐:python视频教程
热心网友
时间:2022-04-06 06:56
这里只是给出一个简单的例子,可能写的比较繁琐,但是基本功能上实现了。这里没有对玩家输入的数据进行验证,比如输入字符或者1到9之外的数据。另外, 如果可以,可以尝试把各个模块独立出来,比如将验证用户输入独立成一个函数,如果验证失败,则让其再次输入,验证成功,则继续下一步,等等。
#sum15.py
total = 0
while True:
print('当前总数为:{0}'.format(total))
v1 = input('玩家A请选择,1~9任意数值:\n')
total += int(v1)
if total == 15:
print('玩家A获得胜利,游戏结束')
break
elif total > 15:
print('总数大于15,游戏结束')
break
print('当前总数为:{0}'.format(total))
v2 = input('玩家B请选择,1~9任意数值\n')
total += int(v2)
if total == 15:
print('玩家B获得胜利,游戏结束')
break
elif total > 15:
print('总数大于15,游戏结束')
break
追问
下面三个模块能给个帮助吗
热心网友
时间:2022-04-06 08:14
#用python 3.6 弄个游戏, 两个玩家互相从1到9选数字,直到有个人选的数字加起来等于15
Number_pool = list(range(1, 10))
Player1 = []
Player2 = []
def print_number_pool():
print("当前可选数字:", end = "")
for i in Number_pool:
print(i, end = ",")
def cheak_number(number):
if (str.isdigit(number) and 0 < int(number) < 10):
if int(number) not in Number_pool:
print("输入错误,%s已被选择,请重新选择。" % number)
return False
Number_pool.remove(int(number))
return True
else:
print("输入错误,请输入数字,范围1-9。")
return False
def num_sum_cheak(player_num):
sum = 0
if player_num == 1:
numbers = Player1
elif player_num == 2:
numbers = Player2
print("当前玩家%d选择的所有数字为:" % player_num, end = "")
for num in numbers:
print(num, end = ",")
sum += num
print("所有数字之和为%d。" % sum)
return sum
print("游戏开始:两个玩家互相从1到9选数字,直到有个人选的数字加起来等于15。\n")
while True:
while True:
print_number_pool()
Player1_number = input("请 玩家1 选择数字:")
if cheak_number(Player1_number):
Player1.append(int(Player1_number))
break
if num_sum_cheak(1) == 15:
print("玩家1,所选数字之和为15,玩家1胜利,游戏结束。")
break
if Number_pool == []:
print("数字都被选完了,平局,游戏结束。")
break
while True:
print_number_pool()
Player2_number = input("请 玩家2 选择数字:")
if cheak_number(Player2_number):
Player2.append(int(Player2_number))
break
if num_sum_cheak(2) == 15:
print("玩家2,所选数字之和为15,玩家2胜利,游戏结束。")
break
if Number_pool == []:
print("数字都被选完了,平局,游戏结束。")
break
热心网友
时间:2022-04-06 09:48
这里只是给出一个简单的例子,可能写的比较繁琐,但是基本功能上实现了。这里没有对玩家输入的数据进行验证【增加输入数字验证】,比如输入字符或者1到9之外的数据。另外,
如果可以,可以尝试把各个模块独立出来,比如将验证用户输入独立成一个函数,如果验证失败,则让其再次输入,验证成功,则继续下一步,等等。
#coding=utf-8
#sum15.py
total = 0
while True:
print('当前总数为:{0}'.format(total))
v1 = input('玩家A请选择,1~9任意数值:\n')
if not v1 or not str(v1).isdigit() or int(v1) not in [1,2,3,4,5,6,7,8,9]:
continue
total += int(v1)
if total == 15:
print('玩家A获得胜利,游戏结束')
break
elif total > 15:
print('总数大于15,游戏结束')
break
print('当前总数为:{0}'.format(total))
v2 = input('玩家B请选择,1~9任意数值\n')
while not v2 or not str(v2).isdigit() or int(v2) not in [1,2,3,4,5,6,7,8,9]:
v2 = input('玩家B请选择,1~9任意数值\n')
continue
total += int(v2)
if total == 15:
print('玩家B获得胜利,游戏结束')
break
elif total > 15:
print('总数大于15,游戏结束')
break