Python实现炸金花游戏的示例代码

今天的第二个作品,哈哈哈哈,搞起来感觉还挺有意思的,不过代码里纸牌J,Q,K,A几个数字被我替换成了11,12,13,14......主要是没有想到简单的办法让其比较,索性都用数字了,我太菜了,希望有大佬指点一下。

代码如下:

import random   #导入随机数函数
def puke():
    """
    生成一副52张的扑克牌(除去大小王)
    :return:
    """
    list1 = ['黑桃', '红桃', '方块', '梅花']
    list2 = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
    list3 = []
    for i in list1:
        for j in list2:
            dict1 = {i: j}
            list3.append(dict1)
    return list3
def func(num):
    """
    判断随机生成的三张扑克类型,对不同类型的牌 底分进行相应的翻倍
    其中num参数返回的是对玩家牌型计算后的分数。
    (最小单张是:2,
    11,12,13,14  分别代表:J,Q,K,A)
    :param num:
    :return:
    """
    user_list1 = []     #用于存储牌的花色
    user_list2 = []     #用于存储牌的数字
    global list4     #声明调用外部全局变量
    for i in list4:
        user_list1.append(list(i.keys()))
        for j in i:
            user_list1.append(list(i.values()))
    user_list2.append(user_list1[1])        #将遍历后的数字添加进user_list2中
    user_list2.append(user_list1[3])
    user_list2.append(user_list1[5])
    user_list2 = [int(x) for item in user_list2 for x in item]      #合并列表
    user_list2.sort()       #列表排序
    if user_list2[0] == user_list1[1] == user_list1[2]:     #判断三张数字是否相同
        num = user_list1[1][0] * 100000 + zhadan
    elif user_list1[0] == user_list1[2] == user_list1[4] and user_list2[2] - user_list2[1] == user_list2[1] - \
            user_list2[0] == 1:     #判断三张花色是否相同且连号
        num = user_list2[1] * 10000 + shunjin
    elif user_list2[2] - user_list2[1] == user_list2[1] - user_list2[0] == 1:       #判断是否连号
        num = user_list2[1] * 1000 + shunzi
    elif user_list2[0] == user_list2[1] or user_list2[1] == user_list2[2] or user_list2[2] == user_list2[0]:        #判断是否有两个一样的数字
        if user_list2[0] == user_list2[1]:
            num = user_list2[0] * 100 + duizi
        if user_list2[0] == user_list2[2]:
            num = user_list2[2] * 100 + duizi
        if user_list2[2] == user_list2[1]:
            num = user_list2[1] * 100 + duizi
    elif user_list2[0] != user_list2[1] != user_list2[2]:       #最后一种可能,单张
        num = user_list2[2] * 10 + user_list2[1] + danzhang
    return num      #返回计算后的分值
#    定义玩家牌型的底分
zhadan = 100
shunjin = 80
shunzi = 60
duizi = 40
danzhang = 20
 
gamer = []      #定义新列表,存放玩家数量
gamers = int(input('请输入玩家数量(只能2 - 9名):'))
if gamers >= 2 and gamers <= 9:        #判断用户输入的人数是否在规定范围内
    for i in range(gamers):  # 玩家数量由用户定义,代表整体循环的次数
        list4 = []  # 用于存储每名玩家随机得到的三张牌
        for j in range(3):
            sun = random.randint(1, len(puke()) - 1)  # 以随机数为扑克整体的下标进行查找对应的牌
            list4.append(puke()[sun])  # 添加进列表
            puke().remove(puke()[sun])  # 把已经发出去的牌在扑克牌整体中进行删除
        print(f'{i + 1}号玩家的底牌:{list4}')
        if i == 0:
            user_1 = func(0)
            gamer.append(user_1)
        elif i == 1:
            user_2 = func(0)
            gamer.append(user_2)
        elif i == 2:
            user_3 = func(0)
            gamer.append(user_3)
        elif i == 3:
            user_4 = func(0)
            gamer.append(user_4)
        elif i == 4:
            user_5 = func(0)
            gamer.append(user_5)
        elif i == 5:
            user_6 = func(0)
            gamer.append(user_6)
        elif i == 6:
            user_7 = func(0)
            gamer.append(user_7)
        elif i == 7:
            user_8 = func(0)
            gamer.append(user_8)
        elif i == 8:
            user_9 = func(0)
            gamer.append(user_9)
else:
    print('你输入的人数不合理,请重新输入。')
 
old_grade = []       #定义一个新列表,用于存放以玩家排序的分数
new_grade = []         #定义一个新列表,用于存放以大小排序后的分数
for i in gamer:         #遍历玩家分数列表
    old_grade.append(i)
new_grade.extend(old_grade)
old_grade.sort(reverse=True)     #降序排列后的分数列表
 
user = 1
for j in new_grade:     #遍历玩家顺序的列表
    if j == old_grade[0]:
        print(f'{user}号玩家获胜,得分:{old_grade[0]}')     #最终赢家的分数没有实际意义,仅为了判断最大值
    else:
        user += 1

补充:示例2

一、Poker 类(扑克牌)

Card = collections.namedtuple('Card', ['rank', 'suit'])

class Poker(MutableSequence):
    # 扑克牌的相关定义
    ranks = [str(n) for n in range(2, 11)] + list('JQKA')
    suits = 'spades hearts diamonds clubs'.split()  # 黑桃,红桃,方块,梅花
    suit_values = dict(spades=3, hearts=2, diamonds=1, clubs=0)#黑桃最大,红桃次之,方块再次之,梅花最小

    def __init__(self):
        self._cards = [Card(rank, suit) for rank in self.ranks
                                           for suit in self.suits]

    def __len__(self):
        return len(self._cards)

    def __getitem__(self, position):  # 仅仅实现了__getitem__方法,该对象就变成可迭代的
        return self._cards[position]

    def __setitem__(self, position, value):
        self._cards[position] = value

    def __delitem__(self, position):
        del self._cards[position]

    def insert(self, position, value):
        self._cards[position] = value

一副扑克牌有 54 张牌,其中 52 张是正牌,另2张是副牌(大王和小王)。本程序中未涉及到大小王。52 张正牌又均分为 13 张一组,并以黑桃、红桃、梅花、方块四种花色表示各组,每组花色的牌包括从 2-10 以及 J、Q、K、A 标示的 13 张牌。

二、Player 类(玩家)

Own_Poker = collections.namedtuple('Own_Poker', ['id', 'rank', 'suit', 'score'])

class Player():
    '''
    牌型  豹子:三张同样大小的牌。  顺金:花色相同的三张连牌。  金花:三张花色相同的牌。 
    顺子:三张花色不全相同的连牌。  对子:三张牌中有两张同样大小的牌。  单张:除以上牌型的牌。
    '''

    def __init__(self, id, poker):
        self.id = id
        self.poker = poker  #一副扑克牌
        self.pokers = []    #玩家手中的牌
        self.type = 0  # 每个人初始都假定为三张毫无关系的牌,也就是扑克牌赢法中的“单张”

    def set_card_score(self, card):
        '''
        按照点数判定扑克牌的大小
        :param card:扑克牌卡片
        :return:扑克牌点数大小
        '''
        rank_value = Poker.ranks.index(card.rank)
        suit_values = Poker.suit_values
        return rank_value * len(suit_values) + suit_values[card.suit]

    def sort_card_index(self, rank_index_list):
        '''
        通过值减下标的方式分组,如果三个值连续则被分配到同一个g中
        比如说ll=[3,4,5,7,8],分组时,enumerate(ll)=[(0,3),(1,4),(2,5),(3,7),(4,8)],fun函数值减下标,结果一样的,就归为一组
        在本程序中,如果是三张连续的扑克牌,则应该是同一个g中,此时返回为Ture,否则为False
        :param rank_index_list:
        :return:
        '''
        fun = lambda x: x[1] - x[0]
        for k, g in groupby(enumerate(rank_index_list), fun):  # 返回一个产生按照fun进行分组后的值集合的迭代器.
            if len([v for i, v in g]) == 3:
                return True
        return False

    def judge_type(self):
        '''
        玩家随机发完三张牌后,根据扑克牌玩法进行区分,对手中的牌进行判别属于哪种类型
        :return:
        '''
        suit_list = []
        rank_list = []
        score_list = []
        for poker in self.pokers:
            suit_list.append(poker.suit)
            rank_list.append(poker.rank)
            score_list.append(poker.score)

        rank_index_list = []  # 扑克牌卡片在Poker中rank中的index
        for rank in rank_list:
            index = self.poker.ranks.index(rank)
            rank_index_list.append(index)

        if len(set(rank_list)) == 1:
            self.type = 5  # 豹子
        elif len(set(suit_list)) == 1:
            if self.sort_card_index(rank_index_list):
                self.type = 4  # 顺金
            else:
                self.type = 3  # 金花
        elif self.sort_card_index(rank_index_list):
            self.type = 2  # 顺子
        elif len(set(rank_list)) == 2:
            self.type = 1  # 对子

    def play(self):
        self.judge_type()

每位玩家都有一个名称,用同一副扑克牌,炸金花游戏要求每人手中有三张牌,根据手中的牌,程序初步判断属于哪种牌型,用于后续游戏取胜机制做判断。

三、Winner 类(游戏取胜机制)

class Winner():
    def __init__(self, player1, player2):
        self.player1 = player1
        self.player2 = player2

    def get_max_card(self, player):
        '''
        筛选出三张牌中最大的牌,这里返回的是在ranks中的index
        :param player:
        :return:
        '''
        ranks = Poker.ranks
        rank_index_list = []  # 扑克牌卡片在Poker中rank中的index
        for poker in player.pokers:
            index = ranks.index(poker.rank)
            rank_index_list.append(index)
        return max(rank_index_list)

    def get_card_suit(self, player):
        '''
        返回扑克牌花色大小
        :param player:
        :return:
        '''
        suit_values = Poker.suit_values
        suit = player.pokers[0].suit
        return suit_values[suit]

    def get_card_value(self, player):
        '''
        当牌型是对子的时候,经过匹配找出是对子的牌和单个的牌,这里返回的是牌的index,便于比较大小
        :param player:
        :return:
        '''
        ranks = Poker.ranks
        rank_index_dict = {}  # 扑克牌卡片在Poker中rank中的index
        repeat_rank_value = 0  # 成对的两张扑克牌的大小
        single_rank_value = 0  # 单个的扑克牌的大小
        for poker in player.pokers:
            index = ranks.index(poker.rank)
            if index in rank_index_dict:
                rank_index_dict[index] += 1
            else:
                rank_index_dict[index] = 1
        rank_index_dict = sorted(rank_index_dict.items(), key=lambda d: d[1], reverse=True)
        n = 0
        for key in rank_index_dict:
            if n == 0:
                repeat_rank_value = key
            else:
                single_rank_value = key
            n += 1
        return repeat_rank_value, single_rank_value

    def get_player_score(self, player):
        '''
        当牌型为单牌时,计算手中的牌相加后的值大小
        :param player:
        :return:
        '''
        ranks = Poker.ranks
        score = 0
        for poker in player.pokers:
            index = ranks.index(poker.rank)  # 扑克牌卡片在Poker中rank中的index
            score += index
        return score

    def get_winner(self):
        player1, player2 = self.player1, self.player2
        # 先比较玩家手中的牌型,大的胜出,玩牌的规则暂时不涉及到牌色,如有修改可以在此基础上调整
        # 豹子> 顺金 > 金花 > 顺子 > 对子 > 单张
        if player1.type > player2.type:
            return player1
        elif player1.type < player2.type:
            return player2
        else:  # 当玩家双方手中的牌型一致时,根据赢法一一判断
            if player1.type == 5 or player1.type == 4 or player1.type == 2:  # 豹子、顺金、顺子 规则说明:按照比点
                if self.get_max_card(player1) > self.get_max_card(player2):
                    return player1
                else:
                    return player2
            elif player1.type == 1:  # 对子 规则说明:先比较相同两张的值的大小,谁大谁胜出;如果对子相同,再比较单个
                repeat_rank_value1, single_rank_value1 = self.get_card_value(player1)
                repeat_rank_value2, single_rank_value2 = self.get_card_value(player1)
                if repeat_rank_value1 > repeat_rank_value2:
                    return player1
                elif repeat_rank_value1 < repeat_rank_value2:
                    return player2
                else:
                    if single_rank_value1 > single_rank_value2:
                        return player1
                    elif single_rank_value1 < single_rank_value2:
                        return player2
                    else:
                        return None  # 平局,大家手上的牌一样大
            else:  # 单牌,金花   规则:比较所有牌的点数大小,不区分牌色
                if self.get_player_score(player1) > self.get_player_score(player2):
                    return player1
                elif self.get_player_score(player1) < self.get_player_score(player2):
                    return player2
                else:
                    return None

由于不是很清楚炸金花的游戏规则,这里我们采用的是最简单的游戏规则。

牌型 豹子:三张同样大小的牌。顺金:花色相同的三张连牌。金花:三张花色相同的牌。 顺子:三张花色不全相同的连牌。 对子:三张牌中有两张同样大小的牌。单张:除以上牌型的牌。

玩法比较简单,豹子> 顺金 > 金花 > 顺子 > 对子 > 单张,当牌型不一致的话,谁牌型大谁胜出;当牌型一致的时候,又分为三种情况,一是豹子、顺金、顺子,比较玩家手中牌的最大值,谁拥有最大牌面值谁胜出;二是对子,比较玩家手中对子的牌面大小,如果相同再另行比较;三是金花、单张,比较玩家手中所有牌面大小之和。

除了上述三个对象类外,还需要一个发牌者(荷官)来主持洗牌和发牌。

def compare_card(card1, card2):
    '''
    比较两种扑克牌是否相同
    :param card1:
    :param card2:
    :return: 相同返回为True,否则为False
    '''
    if card1.rank == card2.rank and card1.suit == card2.suit:
        return True
    return False

def dutch_official_work(poker, player1, player2):
    '''
    发牌人(荷官)给两位玩家轮替发牌,发出去的牌都需要从这副扑克牌中剔除出去
    :param poker: 那一副扑克牌
    :param player1:玩家1
    :param player2:玩家2
    :return:整理后的扑克牌
    '''
    def distribute_card(player):
        card = choice(poker)  # 发牌
        player.pokers.append(Own_Poker(player.id, card.rank, card.suit, player.set_card_score(card)))
        for i in range(len(poker)):
            if compare_card(card, poker[i]):
                poker.__delitem__(i)
                break

    shuffle(poker)  # 洗牌
    for k in range(3):
        distribute_card(player1)
        distribute_card(player2)

    return poker

详细代码可以访问 https://github.com/Acorn2/fluentPyStudy/blob/master/chapter01/Poker_Demo.py

到此这篇关于Python实现炸金花游戏的示例代码的文章就介绍到这了,更多相关Python 炸金花游戏内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Python实现四个经典小游戏合集

    目录  一.效果展示 1.俄罗斯方块 2.扫雷 3.五子棋 4.贪吃蛇 二.代码展示 1.俄罗斯方块 2.扫雷 3.五子棋 4.贪吃蛇  一.效果展示 1.俄罗斯方块 这个应该是玩起来最最简单的了- 2.扫雷 运气好,点了四下都没踩雷哈哈- 3.五子棋 我是菜鸡,玩不赢电脑人- 4.贪吃蛇 害,这个是最惊心动魄的,为了我的小心脏,不玩了不玩了- 女朋友:你就是借机在玩游戏,逮到了 啊这- 那我不吹牛逼了,我们来敲代码吧~ 二.代码展示 1.俄罗斯方块 方块部分 这部分代码单独保存py文件,这里我

  • python猜数字小游戏实现代码

    教大家做一个简易的猜数字的游戏,但确实蛮简单的,我这个四年级的小盆友也才学了一天,所以给那些不会的教一下. 我们先来看导入模块: """ 简易python猜数小游戏""" import random import time #导入模块 我们导入了两个模块: random随机数 time时间 接着命名变量: b = 20 #最大值 a = random.randint(0, b) #要猜的数在最大值和0之间 t = 1 #设立关数变量 f = 10

  • Python实现人机中国象棋游戏

    目录 导语 1.游戏规则&基本玩法 1.1 基本玩法 1.2 行棋规则 2.素材文件 3.主要代码 3.1 Chinachess.py 为主文件 3.2 Constants.py 数据常量 3.3 Pieces.py 棋子类,走法 3.4 Computer.py 电脑走法计算 3.5 Button.py按钮定义 4.游戏效果 总结 导语 哈喽!哈喽!我是木木子!今日游戏更新——中国象棋上线啦! 中国象棋是一种古老的棋类游戏,大约有两千年的历史. 是中华文明非物质文化经典产物,艺术价值泛属于整个人

  • python PyGame五子棋小游戏

    目录 前言 五子棋小游戏 1.简介 2.环境准备 3.初始化环境 4.棋盘 5.黑白棋子 6.对局信息 7.AI 8.完善 总结 前言 PyGame 是一个专门设计来进行游戏开发设计的 Python 模块,允许实时电子游戏研发而无需被低级语言(如机器语言和汇编语言)束缚,使用起来非常的简单,非常适合新手拿来玩耍,本教程源码均基于 Python 3.x 版本. 五子棋小游戏 1.简介 五子棋是我们小时候经常玩的两人对弈策略小游戏,规则简单: 1.对局双方各执一色棋子,常为黑白两色:2.空棋盘开局:

  • Python制作当年第一款手机游戏-贪吃蛇游戏(练习)

    目录 1. 创建游戏窗口 1.1 游戏初始化 1.2 初始化蛇的位置 蛇的长度 10 10 也就是蛇的 X Y 坐标 1.3 初始化食物的位置 1.4 开启游戏循环 1.5 填充背景为白色 1.6 绘制背景 1.7绘制蛇 2. 绘制贪吃蛇与食物 2.1 获取蛇的长度,移动蛇的身子 2.2 更改蛇头位置 2.3 键盘控制移动职位 2.4 获取蛇的长度,移动蛇的身子 3. 蛇吃食物 3.1 碰撞检测 如果蛇吃掉食物 3.2 如果蛇吃掉了自己 前言: 文章利用Python pygame做一个贪吃蛇的小

  • Python Pygame实战之打地鼠小游戏

    目录 前言 开发工具 环境搭建 原理简介 前言 今天给大家写一个个打地鼠小游戏,废话不多说直接开始- 开发工具 Python版本: 3.6.4 相关模块: pygame模块: 以及一些Python自带的模块. 环境搭建 安装Python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 打地鼠的游戏规则相信大家都知道,这里就不多介绍了,反正就是不停地拿锤子打洞里钻出来的地鼠~ 首先,让我们确定一下游戏中有哪些元素.打地鼠打地鼠,地鼠当然得有啦,那我们就写个地鼠的游戏精灵类: '''地鼠'

  • 基于Python编写一个宝石消消乐小游戏

    目录 开发工具 环境搭建 原理简介 开发工具 python版本:3.6.4 相关模块: pygame:以及一些python自带的模块. 环境搭建 安装python并添加到环境变量,pip安装需要的相关模块即可. 原理简介 游戏规则: 玩家通过鼠标交换相邻的拼图,若交换后水平/竖直方向存在连续三个相同的拼图,则这些拼图消失,玩家得分,同时生成新的拼图以补充消失的部分,否则,交换失败,玩家不得分.玩家需要在规定时间内获取尽可能高的得分. 实现过程: 首先加载一些必要的游戏素材: 加载背景音乐: py

  • Python Pygame实现落球游戏详解

    目录 引包 初始化配置 捕捉事件 填充屏幕让球下落 完整代码 引包 引入对应的包,和原来一样写一个打印文字的方法 import sys, random,  pygame from pygame.locals import * def print_text(font, x, y, text, color=(255, 255, 255)):     img_text = font.render(text, True, color)     screen.blit(img_text, (x, y))

  • Python实现炸金花游戏的示例代码

    今天的第二个作品,哈哈哈哈,搞起来感觉还挺有意思的,不过代码里纸牌J,Q,K,A几个数字被我替换成了11,12,13,14......主要是没有想到简单的办法让其比较,索性都用数字了,我太菜了,希望有大佬指点一下. 代码如下: import random   #导入随机数函数 def puke():     """     生成一副52张的扑克牌(除去大小王)     :return:     """     list1 = ['黑桃', '红桃

  • 基于Python制作炸金花游戏的过程详解

    目录 前言 一.思路 二.解决方案 三.总结 前言 <诈金花>又叫三张牌,是在全国广泛流传的一种民间多人纸牌游戏.比如JJ比赛中的诈金花(赢三张),具有独特的比牌规则.游戏过程中需要考验玩家的胆略和智慧.--<百度百科> 前几天在交流群里边,有个叫[^-^]的粉丝分享了一道扑克牌诈金花的题目,要求用Python实现,题目如下: 自己写一个程序,实现发牌.比大小判断输赢. 游戏规则: 一付扑克牌,去掉大小王,每个玩家发3张牌,最后比大小,看谁赢. 有以下几种牌: 豹子:三张一样的牌,

  • 通过Python实现猜灯谜游戏的示例代码

    目录 导语 猜灯谜界面 程序讲解 构造初始界面 构造灯谜类对象 监控鼠标事件 源码 导语 新的一年迎来了元宵节,元宵佳节在陪伴家人的同时,自然也少不了赏花灯,猜灯谜的项目.当然,受到疫情的影响,许多地方今年无法出门赏花灯,猜灯谜. 但是不要紧,小编昨晚用Python弄了一猜灯谜的小程序让大家享受一把猜灯谜乐趣 猜灯谜界面 来看一下猜灯谜的小程序是怎么玩的.先看一下效果图: 程序讲解 构造初始界面 对于程序界面的构造,利用的是python3.6版本下安装2.0.1版本的pygame库.其界面的初始

  • 基于Python实现24点游戏的示例代码

    目录 1.前言 2.思路 3.代码 1.前言 24数大家之前玩过没有? 规则:一副扑克牌抽走大王,小王,K,Q,J(有的规则里面会抽走10,本文一律不抽走),之后在牌堆里随机抽取四张牌,将这四张牌加减乘除得到24. 如果再高级一点,还会有根号.阶乘.幂之类的算法,别问为啥不能幂运算,问就是懒,自己看思路自己实现去(bushi. 知识点:随机数,列表,嵌套判断,循环,死循环,都是新手接触的东西. 由于不能进行像根号,阶乘高级的运算,改版之后完全可以了. 话不多说,上思路 2.思路 1.随机生成四个

  • 基于Python实现成语填空游戏的示例代码

    目录 前言 一.环境准备 二.代码展示 三.效果展示 前言 成语填空想必大家都是十分熟悉的了,特别是有在上小学的家长肯定都有十分深刻的印象. 在我们的认知里看图猜成语不就是一些小儿科的东西吗? 当然了你也别小看了成语调控小游戏,有的时候知识储备不够,你还真的不一定猜得出来是什么?更重要的是有的时候给你这个提示你都看不懂,那你就拿他没办法.——小学语文必备 成语是小学语文非常重要的一个知识点,几乎是逢考必有,作为基础,自然是需要长期的积累,并且需要积累到一定的数量,有了一定的量才能够产生质变,对于

  • Python实现带图形界面的炸金花游戏

    炸金花 题目很简单:就是自己写一个程序,实现诈金花游戏的发牌.判断输赢. 规则: 一付扑克牌,去掉大小王,每个玩家发3张牌,最后比大小,看谁赢. 牌型: 豹子:三张一样的牌,如3张6. 顺金:又称同花顺,即3张同样花色的顺子, 如红桃 5.6.7 顺子:又称拖拉机,花色不同,但是顺子,如红桃5.方片6.黑桃7,组成的顺子 对子:2张牌一样 单张:单张最大的是A 版型大小顺序: 豹子>顺金>顺子>对子>单张 从网上百科到的诈金花各种牌型的出现概率,一起放进代码中增加一点趣味小知识.你

  • Python使用random模块实现掷骰子游戏的示例代码

    引入内容 根据人民邮电出版社出版的<Python程序设计现代设计方法>P102习题中的第7题--掷骰子游戏,进行代码编写. 题目要求 一盘游戏中,两人轮流掷骰子5次,并将每次掷出的点数累加,5局之后,累计点数较大者获胜,点数相同则为平局.根据此规则实现掷骰子游戏,并算出50盘之后的胜利者( 50盘中嬴得盘数最多的,即最终胜利者). 审题: 共有50盘游戏.一盘游戏有5局,每一局双方各掷骰子一次,5局结束以后统计分数,分数高的一方获胜.至此,一盘游戏结束.50盘游戏结束后,赢得盘数最多的一方为最

  • 基于Python编写简易版的天天跑酷游戏的示例代码

    写出来的效果图就是这样了: 下面就更新一下全部的代码吧 还是老样子先定义 import pygame,sys import random 写一下游戏配置 width = 1200            #窗口宽度 height = 508            #窗口高度 size = width, height    score=None              #分数 myFont=myFont1=None     #字体 surObject=None          #障碍物图片   

  • 基于Python实现超级玛丽游戏的示例代码

    目录 效果演示 基础源码 1.基础设置(tools部分) 2.设置背景音乐以及场景中的文字(setup部分) 3.设置游戏规则(load_screen) 4.设置游戏内菜单等(main_menu) 5.main() 6.调用以上函数实现 效果演示 基础源码 1.基础设置(tools部分) 这个部分设置马里奥以及游戏中蘑菇等怪的的移动设置. import os import pygame as pg keybinding = { 'action':pg.K_s, 'jump':pg.K_a, 'l

  • 基于Python实现开心消消乐小游戏的示例代码

    目录 前言 一.准备 1.1 图片素材 1.2 音频素材 二.代码 2.1 导入模块 2.2 游戏音乐设置 2.3 制作树类 2.4 制作鼠标点击效果 2.5 制作出现元素 2.6 数组 2.7 制作人物画板 三.效果展示(仅部分) 3.1 初始页面 3.2 第一关画面 3.3 失败画面 3.4 第十关画面 穿过云朵升一级是要花6个金币的,有的时候金币真的很重要 前言 嗨喽,大家好呀!这里是魔王~ 一天晚上,天空中掉下一颗神奇的豌豆种子,正好落在了梦之森林的村长屋附近. 种子落地后吸收了池塘的水

随机推荐