美文网首页Pygame101
001 Memory Puzzle - step 4 创建随机的

001 Memory Puzzle - step 4 创建随机的

作者: 爱学习的洋仔 | 来源:发表于2019-08-16 14:31 被阅读0次

在上一节当中, 我们已经可以绘制成组的图形,在游戏中,我们需要创建随机的,成对的图形组合,如何实现?


(1) 我们已经创建了7种颜色, 首先, 将它们放入一个元组(tuple)中, 这就是我们在游戏中要使用的所有颜色。
ALLCOLORS = (RED, GREEN, BLUE, YELLOW, ORANGE, PUPPLE, CYAN)
(2) 定义游戏中要使用的5种形状
DONUT = 'donut'
SQUARE = 'square'
DIAMOND = 'diamond'
LINES = 'lines'
OVAL = 'oval'

ALLSHAPES = (DONUT, SQUARE, DIAMOND, LINES, OVAL)
(3) 创建一个能生成所有颜色形状的随机组合的函数
def getRandomizedBoard():
    icons = []  # 用列表保存 
    for color in ALLCOLORS:
        for shape in ALLSHAPES:
            icons.append((shape, color))

    random.shuffle(icons)  # 打乱序列

    numIconsUsed = int(BOARD_WIDTH * BOARD_HEIGHT / 2)  # 计算要使用的图形数

    icons = icons[:numIconsUsed] * 2  # 根据要使用的图形数截取出来图形, 并翻倍配对

    random.shuffle(icons)  # 再次打乱图形
(4) 将随机的图形放入图形组列表
board = []
    for x in range(BOARD_WIDTH):
        column = []
        for y in range(BOARD_HEIGHT):
            column.append(icons[0])
            del icons[0]
        board.append(column)
(5) 这样, 就有了一个随机图形按图形组序列排好的图形组, 结合上面的内容, 这个函数最后内容如下:
def getRandomizedBoard():
    icons = []
    for color in ALLCOLORS:
        for shape in ALLSHAPES:
            icons.append((shape, color))
    random.shuffle(icons)
    numIconsUsed = int(BOARD_WIDTH * BOARD_HEIGHT / 2)
    icons = icons[:numIconsUsed] * 2
    random.shuffle(icons)
    board = []
    for x in range(BOARD_WIDTH):
        column = []
        for y in range(BOARD_HEIGHT):
            column.append(icons[0])
            del icons[0]
        board.append(column)
    return board
(6) 最后,我们还需要一个能根据行列信息返回形状和颜色的函数
def getShapeAndColor(board, boxx, boxy):
    return board[boxx][boxy][0], board[boxx][boxy][1]

在下一节中,我们将对这些创建的随机组合图形进行绘制。

Memory Puzzle 下一节: 绘制随机图形组合

相关文章

  • 001 Memory Puzzle - step 4 创建随机的

    在上一节当中, 我们已经可以绘制成组的图形,在游戏中,我们需要创建随机的,成对的图形组合,如何实现? (1) 我们...

  • 001 Memory Puzzle - step1 创建基础

    (1) 导入需要的模块 (2) 基础配置 (3) 游戏中需要的颜色 (4) 定义main函数 运行程序, 显示一个...

  • 001 Memory Puzzle - step 5 对创建好的

    在上一节中,我们创建了一个随机组合的图形组, 如何绘制呢? (1)我们有图形的行列位置, 有形状, 有颜色, 首先...

  • 001 Memory Puzzle - step6 绘制盖子

    这一节,我们的任务是给图形绘制盖子,这个问题分为2个部分: 如何判断一个图形组里的哪个图形需要盖子 如何绘制盖子 ...

  • 001 Memory Puzzle - step7 打开盖子

    在上一节中,我们给图形盖上了盖子,这一节,我们要实现点击鼠标,打开盖子的任务,分以下几个步骤完成: 检测鼠标是否按...

  • 001 Memory Puzzle - 介绍

    Memory Puzzle是一个简单的对对碰游戏. 使用python3 + pygame模块 已完成章节目录列表:...

  • 001 Memory Puzzle - step2 绘制图形

    在游戏中, 图形使用pygame的画图功能实现, 总共有5种图形(甜甜圈, 菱形, 正方形, 线条, 和椭圆形),...

  • 001 Memory Puzzle - step3 绘制一组图形

    点这里看上一节:绘制图形 我们现在可以在任意位置绘制任意颜色的图形了, 那么如何绘制成组的图形呢? 首选, 我们从...

  • webpack基本使用

    step1:创建一个项目录注意:项目名一般不要带中文step2: 创建package.json 或者: step4...

  • docker 搭建 gitlab

    step1 拉取镜像 step2 创建文件夹存储日志,配置和数据 step3 启动docker step4 配置s...

网友评论

    本文标题:001 Memory Puzzle - step 4 创建随机的

    本文链接:https://www.haomeiwen.com/subject/ovnfsctx.html