精华内容
下载资源
问答
  • python课程设计小游戏
    2020-11-21 03:56:29

    本文主要介绍如何用Python设计一个经典小游戏:猜大小。

    在这个游戏中,将用到前面我介绍过的所有内容:变量的使用、参数传递、函数设计、条件控制和循环等,做个整体的总结和复习。

    游戏规则:

    初始本金是1000元,默认赔率是1倍,赢了,获得一倍金额,输了,扣除1倍金额。

    玩家选择下注,押大或押小;

    输入下注金额;

    摇3个骰子,11≤骰子总数≤18为大,3≤骰子总数≤10为小;

    如果赢了,获得1倍金额,输了,扣除1倍金额,本金为0时,游戏结束。

    程序运行结果是这样的:

    2017051511075530.png

    现在,我们来梳理下思路。

    我们先让程序知道如何摇骰子;

    让程序知道什么是大,什么是小;

    用户开始玩游戏,如果猜对,赢钱;猜错,输钱;输完后,游戏结束。

    梳理清楚思路后,接下来开始敲代码。

    摇骰子:

    定义roll_dice函数,3个骰子,循环次数numbers为3,骰子点数points初始值为空,这里的参数传递用到的是之前讲到的关键词参数传递。

    随机数生成用import random来实现。Python中最方便的就是有很多强大的库支持,现在我们可以直接导入一个random的内置库,用它来生成随机数。如:

    1 import random

    2 point = random.randrange(1,7)

    3 # random.randrange(1,7)生成1-6的随机数

    4 print(point)

    print(point)后可以看到打印出的随机数,每次运行结果都是随机的。

    接下来我们看下摇骰子这部分的完整代码:

    import random

    def roll_dice(numbers = 3,points = None):

    print('----- 摇骰子 -----')

    if points is None:

    points = []

    # points为空列表,后续可以插入新值到该列表

    while numbers > 0:

    point = random.randrange(1,7)

    points.append(point)

    # 用append()方法将point数值插入points列表中

    numbers = numbers - 1

    # 完成一次,numbers减1,当小于等于0时不再执行该循环

    return points

    定大小:

    11≤骰子总数≤18为大,3≤骰子总数≤10为小,代码如下:

    def roll_result(total):

    isBig = 11 <= total <=18

    isSmall = 3 <= total <= 10

    if isBig:

    return '大'

    elif isSmall:

    return '小'

    玩游戏:

    初始本金1000元,默认赔率1倍;赢了,获得一倍金额,输了,扣除1倍金额;本金为0时,游戏结束。

    def start_game():

    your_money = 1000

    while your_money > 0:

    print('----- 游戏开始 -----')

    choices = ['大','小']

    # choices赋值为大和小,用户需输入二者之一为正确

    your_choice = input('请下注,大 or 小:')

    your_bet = input('下注金额:')

    if your_choice in choices:

    points = roll_dice()

    # 调用roll_dice函数

    total = sum(points)

    # sum为相加,将3个骰子的结果相加

    youWin = your_choice == roll_result(total)

    if youWin:

    print('骰子点数:',points)

    print('恭喜,你赢了 {} 元,你现在有 {} 元本金'.format(your_bet,your_money + int(your_bet)))

    # your_bet是字符串格式,这里需要转化为int类型进行计算

    your_money = your_money + int(your_bet)

    # 最新本金

    else:

    print('骰子点数:',points)

    print('很遗憾,你输了 {} 元,你现在有 {} 元本金'.format(your_bet, your_money - int(your_bet)))

    your_money = your_money - int(your_bet)

    else:

    print('格式有误,请重新输入')

    # 如果输入的不是choices列表中的大或小,则为格式有误

    else:

    print('游戏结束')

    start_game()

    到这里,我们就完成了该游戏三大部分的设计,大家一定要仔细思考,梳理设计思路,动手敲出代码才好。

    最后,附【猜大小】游戏的完整代码:

    import random

    def roll_dice(numbers = 3,points = None):

    print('----- 摇骰子 -----')

    if points is None:

    points = []

    while numbers > 0:

    point = random.randrange(1,7)

    points.append(point)

    numbers = numbers - 1

    return points

    def roll_result(total):

    isBig = 11 <= total <=18

    isSmall = 3 <= total <= 10

    if isBig:

    return '大'

    elif isSmall:

    return '小'

    def start_game():

    your_money = 1000

    while your_money > 0:

    print('----- 游戏开始 -----')

    choices = ['大','小']

    your_choice = input('请下注,大 or 小:')

    your_bet = input('下注金额:')

    if your_choice in choices:

    points = roll_dice()

    total = sum(points)

    youWin = your_choice == roll_result(total)

    if youWin:

    print('骰子点数:',points)

    print('恭喜,你赢了 {} 元,你现在有 {} 元本金'.format(your_bet,your_money + int(your_bet)))

    your_money = your_money + int(your_bet)

    else:

    print('骰子点数:',points)

    print('很遗憾,你输了 {} 元,你现在有 {} 元本金'.format(your_bet, your_money - int(your_bet)))

    your_money = your_money - int(your_bet)

    else:

    print('格式有误,请重新输入')

    else:

    print('游戏结束')

    start_game()

    以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,同时也希望多多支持脚本之家!

    更多相关内容
  • 文件中有打乒乓球游戏代码和滑雪游戏代码,还有一些其他显示动态图的代码,可以作为python游戏小作业
  • 主要介绍了使用Python快速写一个小游戏,本次开发的小游戏叫alien invasion,具体实现过程大家参考下本
  • python课程设计用pyqt5做的拼图小游戏源码python课程设计用pyqt5做的拼图小游戏源码python课程设计用pyqt5做的拼图小游戏源码python课程设计用pyqt5做的拼图小游戏源码python课程设计用pyqt5做的拼图小游戏源码...
  • python实现拼图小游戏--附源码
  • 自己写的课程设计 Python实现小游戏:俄罗斯方块、扫雷课程设计
  • python实现五子棋小游戏--附源码
  • 大作业python课程设计人脸控制飞机大战趣味小游戏源码。 基于人脸检测,获取脸部的位置信息,由此来控制游戏角色。 大作业python课程设计人脸控制飞机大战趣味小游戏源码。 基于人脸检测,获取脸部的位置信息,由此...
  • Python课程设计.doc

    2021-08-03 13:32:35
    两种画图,Flying Happybird小游戏(来自B站视频学习),碰撞小球
  • python 弹球小游戏

    2015-08-21 09:22:53
    python 弹球小游戏,可沿任意方向运动,颜色也可根据自己喜好改
  • 码农那点事儿关注我们,一起学习进步 本文主要介绍如何用Python设计一个经典小游戏:猜大小。游戏规则:初始本金是1000元,默认赔率是1倍,赢了,获得一倍金额,输了,扣除1倍金额。玩家选择下注,押大或押小;输入...

    7fb0360d-3cc2-4015-afbd-4fdc1eb6b65c.jpg

    码农那点事儿

    关注我们,一起学习进步

    652b8d64-d03b-4ba4-bfc6-0cb3bdb13614.gif

    本文主要介绍如何用Python设计一个经典小游戏:猜大小。

    游戏规则:

    初始本金是1000元,默认赔率是1倍,赢了,获得一倍金额,输了,扣除1倍金额。

    玩家选择下注,押大或押小;

    输入下注金额;

    摇3个骰子,11≤骰子总数≤18为大,3≤骰子总数≤10为小;

    如果赢了,获得1倍金额,输了,扣除1倍金额,本金为0时,游戏结束。

    程序运行结果是这样的:

    b7fa8f0e-16fb-48e1-813a-33bbe5c674c1.jpg

    现在,我们来梳理下思路。

    我们先让程序知道如何摇骰子;

    让程序知道什么是大,什么是小;

    用户开始玩游戏,如果猜对,赢钱;猜错,输钱;输完后,游戏结束。

    梳理清楚思路后,接下来开始敲代码。

    摇骰子:

    定义roll_dice函数,3个骰子,循环次数numbers为3,骰子点数points初始值为空,这里的参数传递用到的是之前讲到的关键词参数传递。

    随机数生成用import random来实现。Python中最方便的就是有很多强大的库支持,现在我们可以直接导入一个random的内置库,用它来生成随机数。如:

    de7ac2dd-8e0e-4e6b-99a5-719eb95bf2d9.jpg

    print(point)后可以看到打印出的随机数,每次运行结果都是随机的。

    接下来我们看下摇骰子这部分的完整代码:

    70018794-e2e1-4103-b67c-7b7fe217fc40.jpg

    定大小:

    11≤骰子总数≤18为大,3≤骰子总数≤10为小,代码如下:

    2664b386-bb5a-4b90-824b-8fba4c6b5028.jpg

    玩游戏:

    初始本金1000元,默认赔率1倍;赢了,获得一倍金额,输了,扣除1倍金额;本金为0时,游戏结束。

    bfed729e-8ba4-43d8-8086-9299ce387584.jpg

    到这里,我们就完成了该游戏三大部分的设计,大家一定要仔细思考,梳理设计思路,动手敲出代码才好。

    以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助!

    *版权声明:转载文章和图片均来自公开网络,版权归作者本人所有,如果出处有误或侵犯到原作者权益,请与我们联系删除或授权事宜。

    展开全文
  • Python小游戏制作,python 期末大作业,python课程设计,内含源代码

    设计小游戏盒子

    如将(猜拳游戏,骰子猜点数大小)运用于同一个游戏盒子中,用户可以键入关键字来实现选择游戏,进行游戏,切换游戏,退出程序等功能,同时该游戏盒子呈开放状态,随时都可以添加新游戏,并互相不影响,即可模拟现实中软件更新,游戏上新!

    相关流程图

    现给出示例代码如下(可直接用于小游戏程序设计期末大作业)

    代码可更换,可创新,如有需要可直接复制

    游戏盒子加载模块,模拟真实的APP开启界面,代替直接显示菜单,给予用户真实感!
    def youxihezi():
        import time
        t = 500
        for n in range(t+1):
            loading = round(n/t*100)
            #通过加\r每次输出完跳回,用end=""替换默认的换行,只要数字在改变,因此表面上展现进度刷新
            print(f"\r游戏盒子加载中....   {loading}%",end="")
            #由于没有放入复杂程序,如果直接打印,展示不出效果,因此用time.sleep模拟加载过程
            time.sleep(0.0001)
     print("\n")
        time.sleep(1)
        caidan()
    
    # 游戏盒子菜单函数
    def caidan():
        print('小游戏盒子'.center(50, '*'))#用center将文字显示于中间,并用50各*字符填充制作基本菜单样式
        print('*'.ljust(53,' '), '*')#用ljust左靠齐生成53各空格字符
        print('*', end='')
        print("1.猜拳游戏".center(49), end='')
        print('*')
        print('\n')
        print('*', end='')
        print("2.猜大小 ".center(49), end='')###################制作小游戏界面,同时采用time模块模拟游戏盒子的加载界面
        print(' *')
        print('*'.ljust(53,' '), '*')#用ljust左靠齐生成53各空格字符
        print('*' * 54)#字符串*54就是输出54个相同字符串
        s = int(input("\n请选择一个游戏(输入0退出小游戏盒子T_T):"))
        if s == 2:
            print('-----猜大小-----')
            caidaxiao()
        elif s == 1:
            print('---猜拳游戏----')
            caiquan()
        else:
            print('即将退出游戏盒子,欢迎下次游玩!')
            exit()
        
    ## 猜拳游戏函数
    def caiquan():
        
        import time
        t = 100
        for n in range(t+1):
            loading = round(n/t*100)
            #通过加\r每次输出完跳回,用end=""替换默认的换行,只要数字在改变,因此表面上展现进度刷新
            print(f"\r加载中{loading}%",end="")
            #由于没有放入复杂程序,如果直接打印,展示不出效果,因此用time.sleep模拟加载过程
            time.sleep(0.01)
    
        print('\n--------------猜拳游戏----------------\n\n')
        import random  #导入随机模块
        
        ying = 0
        shu = 0
        while True:
            if shu == 2:
                print('\n\n三局两胜  你输了!\n游戏结束!')
                youxi()
            elif ying == 2:
                print('\n\n三局两胜  你赢了!\n游戏结束!')
                youxi()
            user = int(input('请出拳 0(石头) 1(剪刀) 2(布):'))
            if user > 2:
                print('没有这个手势哦!请重新输入!')
            else:
                data = ['石头', '剪刀', '布']
                com = random.randint(0, 2)
                print('您出的是',data[user],'电脑出的是',data[com])
                if user == com:
                    print('平局')
                    continue
                elif (user == 0 and com == 1) or (user == 1 and com == 2) or (user == 2 and com == 0):
                    print('你赢了')
                    ying += 1
                else:
                    print('你输了')
                    shu += 1
    #是否进行新游戏的判断函数
    def youxi():
        q = int(input('是否继续游戏?\n键入0退出该游戏,返回游戏盒子\n键入1开始新游戏\n键入2直接退出整个游戏盒子\n'))
        if q == 0:
            caidan()
        elif q == 1:
            caiquan()
        elif q == 2:
            print('\n即将退出游戏盒子,欢迎下次游玩!\n')
            exit()
    def youxi1():
        q = int(input('是否继续游戏?\n键入0退出该游戏,返回游戏盒子\n键入1开始新游戏\n键入2直接退出整个游戏盒子\n'))
        if q == 0:
            caidan()
        elif q == 1:
            caidaxiao()
        elif q == 2:
            print('\n即将退出游戏盒子,欢迎下次游玩!\n')
            exit()
    ## 猜大小游戏函数
    def caidaxiao():
        import time
        import random
        # 让用户注册
        name = input('请填写用户名:')
        age = int(input('您好,请输入您年龄:'))
        user_info = {'name': name, 'age': age}  # 用户信息
        user_properties = ['X3 x1-5']  # 用于存放用户道具 默认道具
        properties = ['X3 (250G)', 'X1-5 (300G)']  # 道具列表 显示用
    
        # 根据用户年龄 给与不同的初始金币
        if 10 < user_info['age'] < 18:
            glod = 1000
        elif 18 <= user_info['age'] <= 30:
            glod = 1100
        else:
            glod = 500
        user_info['glod'] = glod
    
        # 输出相关提示信息
        print("{}您好,欢迎游玩本游戏,您的初始金币为:{}".format(user_info['name'], user_info['glod']))
        print("\n")
        time.sleep(1)
        print('游戏说明'.center(50, '*'))#用center将文字显示于中间,并用50各*字符填充制作基本菜单样式
        print('*'.ljust(53,' '), '*')#用ljust左靠齐生成53各空格字符
        print('*', end='')
        print("电脑每次投掷三枚骰子,总点数>=10为大,否则为小".center(32), end='')
        print('*')
        print('*'.ljust(53,' '), '*')#用ljust左靠齐生成53各空格字符
        print('*' * 54)#字符串*54就是输出54个相同字符串
        print("\n")
    
        # 开始游戏
        result = input('是否开始游戏 yes or no :  ')
        
        if (result.lower() == 'yes'):
            while True:
                dices = []
                # 开始投掷
                for i in range(0, 3):
                    dices.append(random.randint(1, 6))
                total = sum(dices)  # 计算总和
                user_input = input('请输入big OR small : ')  # 等待用户输入
                u_input = user_input.strip().lower()
                time.sleep(1)
                # 判断用户输入
                print('骰子点数为:{}'.format(dices), end=' ')
                if (total >= 10 and u_input == 'big') or (total < 10 and u_input == 'small'):
                    print('您赢了!!!')
                    multi = 1  # 倍数
                    if len(user_properties) > 0:  # 如果用户有道具 选择是否使用道具
                        use_pro = input('是否使用道具: ')
                        if use_pro.lower() == 'yes':
                            use_pro = int(input('请选择使用第几个道具{} :'.format(user_properties)))
                            use_pro -= 1
                            # 判断道具类型
                            if user_properties[use_pro] == 'X 3':
                                multi = 3
                                print('奖金翻3倍')
                            elif user_properties[use_pro] == 'X 1-5':
                                multi = random.randint(1, 5)
                                print('奖金翻{}倍'.format(multi))
                            user_properties.remove(user_properties[use_pro])  # 删除道具
                    user_info['glod'] += 100 * multi;  # 金额增加
                else:
                    print('您输了!')
                    user_info['glod'] -= 100;  # 错误 用户金币减 100
                # 判断用户金币 是否够下次玩 不够则退出程序
                if (user_info['glod'] <= 0):
                    print('您的金币已经用完,感谢您的游玩')
                    break
                if user_info['glod'] % 1000 == 0:  # 用户金币 是1000的倍数是 可购买道具
                    shop = input('您现在有金币:{},是否购买道具 yes or no: '.format(user_info['glod']))
                    if shop.lower() == 'yes':
                        good_num = int(input('请选择要购买第几个道具 {}'.format(properties)))
                        if good_num == 1:
                            user_properties.append('X 3')  # 给用户添加道具
                            user_info['glod'] -= 250
                            print('购买成功!消耗金币250')
                        elif good_num == 2:
                            user_properties.append('X 1-5')  # 给用户添加道具
                            user_info['glod'] -= 300  # 用户金币减 300
                            print('购买成功!消耗金币300')
                        else:
                            print('没有该道具,您失去了这次机会')
                else:
                    print('您现在有金币:{} '.format(user_info['glod']))
        else:
            youxi1()
    ## 调用函数以进行游戏盒子程序
    youxihezi()
    
    ##程序结束
    
    
    展开全文
  • 有详细代码(有备注)附加实验报告
  • 基于Python恐龙游戏设计与分析.pdf
  • python编程课程设计大作业之玛丽快跑小游戏源码,新手可自己操作,高手可二次开发。 这是一款控制Marie向前躲避障碍依次得分的游戏 进入游戏按空格进入单人闯关游戏 按照t进入双人比赛模式 双人模式p1使用空格键...
  • 这是大三的Python通过一年的学习,最后的课程设计作业,虽然不是很美,很多细节处理的还是很用心的
  • 基于python平台开发的一款消消乐小游戏
  • Python——项目-小游戏

    2020-11-26 09:39:42
    开始我们的项目 飞机大战1 项目的初体验 以及前期准备游戏初体验画面略,请去参考博客验证一下本地第三方包有没有导入python3 -m pygame.examples.aliens如果没有出现游戏画面请先安装这个包sudo pip3 install ...

    开始我们的项目 飞机大战

    1 项目的初体验 以及前期准备

    游戏初体验画面

    略,请去参考博客

    验证一下本地第三方包有没有导入

    python3 -m pygame.examples.aliens

    如果没有出现游戏画面请先安装这个包

    sudo pip3 install pygame

    开始搭建目录结构

    创建主程序 导入素材图片,新建 名为:“飞机大战‘项目

    建立主程序员 ganme_main.py

    把素材图片都导入到项目文件夹中

    游戏的逻辑

    主要的逻辑,就是判断一系列的图片运动碰撞,产生不同的事件 ,从而产生不同的效果

    2.开始绘制背景和窗口

    首先我们要注意到两个重要的pygame方法 一个是初始化和卸载方法

    import pygame

    pygame.init()

    #游戏代码

    'pygame,quit()' ,卸载所有的pygame模块 在游戏结束之前调用!如何才是真正的结束游戏;

    pygame中的 游戏中的坐标系?

    1547034-20200323113650526-1734072504.png

    pygame中专门准备了一个类Rect用于描述矩形区域,在本项目中,所有的图片都是Rect的创建出来的矩形对象。注意:即使你不初始化它 你也一样可以使用它 ,注意这个类你需要传入坐标值 还有其大小

    1547034-20200323113715326-31776583.png

    juxin = pygame.Rect(100,50,120,12)

    返回的就是/

    print ( '%d %d' %juxin.size )//获取的是大小,......具体的属性还有返回值请去查看api文档size是一个元组属性

    如何创建出一个游戏窗口?

    同样的道理,我们的pygame也提供了专门的模块去处理,display模块。这个模块下可的两个方法可以绘制游戏的窗口

    示例代码

    # 注意一下这个方法返回的是一个窗口对象。窗口默认与屏幕一样大。为此我们可以来设置一些

    +++

    # 第一个参数类型是元祖(),其它的两个参数就不管它了。如果你感兴趣就去查阅python文档

    screen = pygame.dispaly.set_mode( (480,700), )

    while True:

    pass

    +++

    如何把图片绘制上去窗口?

    具体核心就是:

    加载图片的数据 pygame.image.load("图形目录"),到内存中

    使用屏幕对象的 blit方法把图搞到指定的位置

    使用pygame.dispaly.update()更新整个屏幕的显示

    核心代码实例

    +++

    bg = pygame.image.load('./images/background.jpg')

    screen.bit(bg,(0,0))

    pygame.dispaly.update()

    +++

    绘制其它的图片?

    其实这个也比较好理解,你可以在之前绘制的背景上再去绘制图形。注意,注意 所有的图片都应该是矩形的。不同的图片只是设置了一些透明上去。

    3.源码分析

    如果我们有N多图片要绘制呢?

    其实我可以再完成所有的绘制轴再去调用 pygame.dispaly.update()

    在源码中screen对象是一个内存中的屏幕数据对象,可以理解为一个画布 ,

    screen.blit可以再画布上绘制很多很多图形,这些图形有可能发生覆盖,我们在内存中虚拟绘制

    最后我们再更新上去。以便于提高性能dispaly.update()

    4.动画实现原理

    原理就是 动画帧 ,说白了就是快速的图片变化。利用视觉差搞出动画效果

    - 在源代码中 ,update方法实际上就产生了一帧,而要完成连贯的动画 需要最少60帧/s

    展开全文
  • python扫雷游戏课程设计,一文解决。此报告包含相关代码的解释和源代码,如果有界面要求可以私聊博主。可以帮助部分同学节省一大部分时间,课程设计报告可以直接将这个docx稍微改一下就好。
  • 扑克牌小游戏-十点半前言十点半游戏规则介绍任务8-扑克牌类任务8-手牌类任务9-一副牌类任务9-玩家类任务9-庄家类任务10-Game.py 完整代码TenPoinHalf_class.py 完整代码学堂在线课程链接 前言 代码文件分为 ...
  • python课程设计-毕业设计Snake创意游戏蛇蛇闯关项目源码,适合毕业设计和课程设计大作业等等等 exe文件在SnakeQuest-exe里-运行SnakeQuest.exe就可以了 简介 非常建议开音量玩,30左右即可 独特的闯关模式,更加...
  • python游戏编程课程设计大作业贪吃蛇之与蛇共舞AI智能小游戏源码开发文档+代码注释+PPT展示。程序由三大块组成:使用摄像头分析我们的姿态程序、标准贪吃蛇程序、音乐播放程序 (1) 使用摄像头分析我们姿态的程序,...
  • python课程作业设计五子棋游戏源代码。该项目使用了python语言,并通过pygame库创造游戏的窗口、实现鼠标点击下棋、棋盘右侧实时显示下棋方、显示胜负信息、显示开局时间、播放背景音乐(如果引起不适可以事先关闭...
  • Python写简单的拼图小游戏Pycharm项目,包括游戏图片和代码等,可直接用Pycharm打开。有问题请私信。
  • Python课程设计-期末大作业python趣味爱好者塔防游戏源代码。新手可学,自己操作,高手可改二次开发 目录结构说明 |-- maps 地图 |-- resource 游戏素材 |-- sprites 游戏精灵代码 |-- contry.py 运行文件 运行方法...
  • 大作业python游戏编程课程设计空洞机甲游戏源码,代码注释非常完整,一目了然啊,这里废话就不多说了,赶紧下载玩起来,呵呵呵呵 Python Pygame 制作的横屏闯关游戏,可操作性强,新手也可自己动手,高手可以二次...
  • 课程设计大作业python游戏_python井字棋游戏源码-最牛版包你过课设课程设计大作业python游戏_python井字棋游戏源码-最牛版包你过课设课程设计大作业python游戏_python井字棋游戏源码-最牛版包你过课设课程设计大作业...
  • python游戏编程课程设计--飞机大战源码,初学者可以练手,高手可以二次开发,画面美观,高分必看。python游戏编程课程设计--飞机大战源码,初学者可以练手,高手可以二次开发,画面美观,高分必看。python游戏编程...
  • python实现滑雪游戏.doc

    2021-08-20 18:54:07
    python实现滑雪游戏--附源码

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,130
精华内容 6,052
关键字:

python课程设计小游戏