python代码写开心消消乐

♥️作者:小刘在C站

♥️个人主页:小刘主页

♥️每天分享云计算网络运维课堂笔记,努力不一定有回报,但一定会有收获加油!一起努力,共赴美好人生!

♥️夕阳下,是最美的绽放,树高千尺,落叶归根人生不易,人间真情

目录

一.python是什么

二.游戏代码效果呈现

三.主代码

四.cfg

五.README


一.python是什么

Python由荷兰数学计算机科学研究学会的吉多·范罗苏姆于1990年代初设计,作为一门叫做ABC语言的替代品。 [1]  Python提供了高效的高级数据结构,还能简单有效地面向对象编程。Python语法和动态类型,以及解释型语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言, [2]  随着版本的不断更新和语言新功能的添加,逐渐被用于独立的、大型项目的开发。

二.游戏代码效果呈现

三.主代码

'''
Function:
    消消乐小游戏
源码基地:#959755565#
'''
import os
import sys
import cfg
import pygame
from modules import *


'''游戏主程序'''
def main():
    pygame.init()
    screen = pygame.display.set_mode(cfg.SCREENSIZE)
    pygame.display.set_caption('开心消消乐🎃')
    # 加载背景音乐
    pygame.mixer.init()
    pygame.mixer.music.load(os.path.join(cfg.ROOTDIR, "resources/audios/bg.mp3"))
    pygame.mixer.music.set_volume(0.6)
    pygame.mixer.music.play(-1)
    # 加载音效
    sounds = {}
    sounds['mismatch'] = pygame.mixer.Sound(os.path.join(cfg.ROOTDIR, 'resources/audios/badswap.wav'))
    sounds['match'] = []
    for i in range(6):
        sounds['match'].append(pygame.mixer.Sound(os.path.join(cfg.ROOTDIR, 'resources/audios/match%s.wav' % i)))
    # 加载字体
    font = pygame.font.Font(os.path.join(cfg.ROOTDIR, 'resources/font/font.TTF'), 25)
    # 图片加载
    gem_imgs = []
    for i in range(1, 8):
        gem_imgs.append(os.path.join(cfg.ROOTDIR, 'resources/images/gem%s.png' % i))
    # 主循环
    game = gemGame(screen, sounds, font, gem_imgs, cfg)
    while True:
        score = game.start()
        flag = False
        # 一轮游戏结束后玩家选择重玩或者退出
        while True:
            for event in pygame.event.get():
                if event.type == pygame.QUIT or (event.type == pygame.KEYUP and event.key == pygame.K_ESCAPE):
                    pygame.quit()
                    sys.exit()
                elif event.type == pygame.KEYUP and event.key == pygame.K_r:
                    flag = True
            if flag:
                break
            screen.fill((135, 206, 235))
            text0 = 'Final score: %s' % score
            text1 = 'Press <R> to restart the game.'
            text2 = 'Press <Esc> to quit the game.'
            y = 150
            for idx, text in enumerate([text0, text1, text2]):
                text_render = font.render(text, 1, (85, 65, 0))
                rect = text_render.get_rect()
                if idx == 0:
                    rect.left, rect.top = (212, y)
                elif idx == 1:
                    rect.left, rect.top = (122.5, y)
                else:
                    rect.left, rect.top = (126.5, y)
                y += 100
                screen.blit(text_render, rect)
            pygame.display.update()
        game.reset()


'''run'''
if __name__ == '__main__':
    main()

四.cfg

'''配置文件'''
import os


'''屏幕大小'''
SCREENSIZE = (600, 600)
'''游戏元素尺寸'''
NUMGRID = 8
GRIDSIZE = 64
XMARGIN = (SCREENSIZE[0] - GRIDSIZE * NUMGRID) // 2
YMARGIN = (SCREENSIZE[1] - GRIDSIZE * NUMGRID) // 2
'''根目录'''
ROOTDIR = os.getcwd()
'''FPS'''
FPS = 30

五.README

# Introduction
https://mp.weixin.qq.com/s/H0dFwoEcJT-JPKfNvPt2Kw

# Environment
```
OS: Windows10
Python: Python3.5+(have installed necessary dependencies)
```

# Usage
```
Step1:
pip install -r requirements.txt
Step2:
run "python Game15.py"
```

# Reference
http://inventwithpython.com/pygame

# Game Display
![giphy](demonstration/running.gif)

♥️关注,就是我创作的动力

♥️点赞,就是对我最大的认可

♥️这里是小刘,励志用心做好每一篇文章,谢谢大家

  • 43
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 58
    评论
当然可以!下面是一个简单的Python代码示例,实现了一个基本的开心消消乐游戏: ```python import random # 游戏棋盘大小 ROWS = 6 COLS = 6 # 定义颜色 COLORS = ['R', 'G', 'B', 'Y', 'P'] # 创建游戏棋盘 board = [[random.choice(COLORS) for _ in range(COLS)] for _ in range(ROWS)] # 打印游戏棋盘 def print_board(): for row in board: print(' '.join(row)) print() # 检查是否有可消除的方块 def check_matches(): matches = set() # 检查行 for row in range(ROWS): for col in range(COLS - 2): if board[row][col] == board[row][col+1] == board[row][col+2]: matches.add((row, col)) matches.add((row, col+1)) matches.add((row, col+2)) # 检查列 for col in range(COLS): for row in range(ROWS - 2): if board[row][col] == board[row+1][col] == board[row+2][col]: matches.add((row, col)) matches.add((row+1, col)) matches.add((row+2, col)) return matches # 消除方块 def remove_matches(matches): for row, col in matches: board[row][col] = ' ' # 下落方块 def drop_blocks(): for col in range(COLS): empty_rows = [row for row in range(ROWS) if board[row][col] == ' '] for row in range(ROWS-1, -1, -1): if row < len(empty_rows): board[row][col] = random.choice(COLORS) else: board[row][col] = board[row-len(empty_rows)][col] board[row-len(empty_rows)][col] = ' ' # 主循环 while True: print_board() matches = check_matches() if not matches: print("No more matches!") break remove_matches(matches) drop_blocks() ``` 这段代码实现了一个简单的开心消消乐游戏,游戏棋盘大小为6x6,使用'R'、'G'、'B'、'Y'和'P'五种颜色的方块。游戏规则是消除相邻的三个或以上相同颜色的方块,直到没有可消除的方块为止。 你可以运行这段代码,体验一下开心消消乐游戏的乐趣!如果你有任何问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 58
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小刘在C站

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值