问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用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

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
女生多大后可以不在长身高? 如何不用软件把手机投屏到电脑上手机屏幕怎样投放到电脑上 战时拒绝、故意延误军事订货罪既遂的处罚? 战时故意延误军事订货罪处罚标准 名师1+1导读方案:汤姆·索亚历险记目录 三星sm-g7200打开微信慢,无法正常收看,网速不慢。 笔记本电脑如何调亮屏幕亮度 大伙说说洗衣机要不要带烘干好 热烘干洗衣机怎么样 ef英语哪个好 python3.6.3 安装好了在哪里编写程序 男人怎样做可以延长时间 男人怎么延长时间 男人做爱时怎么延长射精时间 男人吃什么延长时间 男人怎样延长性爱时间? 男人怎么延长性时间? 男人如何延长做爱时间 男人怎么延长性爱时间 男人怎样才能延长性生活? 让男人延长性生活时间要怎样做呢? 土豆配什么炒好吃? 蒙餐有什么分类吗?想学这个的话去哪儿学? 土豆加什么炒菜好吃呢? 呼和浩特的文化 广州哪里有那些蒙古的餐厅,就是那些手把肉,肉肠血肠的餐厅? 土豆配什么怎么炒好吃呢?家常菜 学蒙餐应该去哪里学习? 蒙餐风干羊肉做法视频 老公特别喜欢吃土豆,土豆有什么好吃又方便的炒法? 男人怎么延长时间啊 python3.5和python3.6对request库的支持 男性延长时间的方法? 男人吃什么可以延长时间 那个编程大人知道下面用python怎么编写出来? (a) 3个人在餐厅吃饭,想... 男性如何锻炼能提高延长性生活时间? 请编写Python程序完成以下要求: python 3.6.5中 如何将 两个算法 如 for I in range()依次运行 用python写一个小程序,让用户输入任意9个数字,然后输出排序后的结果... 如何用Python3.6对3dsmax场景编程 用python编写脚本程序,实现用户输入3个整数,放入列表,并输出最小值_百... 请用python写一个代码,题目,输入一个三位数,将它反向输出。 Python源文件改写.编写一个程序,读取一个Python源程序,将文件中所有... 按要求编写Python程序: python中如何创建一个类 并且调用内部方法 3.6版本? 编写一个Python程序,输入N,返回N!的值? 用python编写一个程序? 我用python编写可以让他人输入信息的代码,假如他人输入了一个数字,怎样得到这个数字除以6后的结 python3.6如何进行变量之间的加减? 女生梦见自己是医生,在给病人看病