Python实战项目:消消乐(源码分享)(文章较短,直接上代码)

本文主要介绍了使用Python和Pygame进行开发的相关内容。首先说明了要确保安装cfg和pygame库,并给出了库的安装方法。还分享了安装Python第三方库及排查程序运行问题的科普知识,最后提到写完完整代码后可运行,有报错按方法排查。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 ✌ 作者简介:信年✘ ✌,大家可以叫我 ❤信年❤ ,一位精通五门语言的博主 ✌
🏆 优快云博客专家认证、华为云享专家、阿里云专家博主 、掘金创作榜No.1
📫 如果文章知识点有错误的地方,请指正!和大家一起学习,一起进步👀
💬 人生格言:没有我不会的语言,没有你过不去的坎儿。💬
🔥 如果感觉博主的文章还不错的话,还请👍关注、点赞、收藏三连支持👍一下博主哦

📌作者主页传送门:点此传送

🔎系列文章&专栏推荐:暂未开放

🌐为大家推荐一款刷题网站呀👉点击跳转
所有编程语言,都可以从此网站中找到并参考学习哟~

目录

效果展示:

准备工作

库的安装方法

科普小知识

完整代码

最后


效果展示:

准备工作

首先,确保你有安装cfg的库和pygame的库,没有安装的看下安装方法

库的安装方法

首先,win+r,在运行框里输入cmd或者CMD,进入终端,输入以下两行代码

pip install pygame
pip install cfg

注:cfg容易安装错误,具体看报错,如有报错评论区留言,我会一一答复

科普小知识

1.凡是安装Python的第三方库,只需要输入pip install 库的名字(当然有一些特例)

2.凡是程序运行不起来,整体代码大部分报错,一般是没安装库,一个Python文件里面引用的库一般在开头:import 库的名字,检查这里有没有报错或者黄色下划线就好了,如果有,就用方法一安装库,如果没有,可能是自身代码的问题了

完整代码

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('Gemgem —— 九歌')
    # 加载背景音乐
    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()


最后

那么完整代码写完后就可以双击运行代码啦,如果有报错记得按我说的方法排查一下,么么哒!

感谢你们的阅读😆

后续还会继续更新💓,欢迎持续关注📌哟~

💫如果有错误❌,欢迎指正呀💫

✨如果觉得收获满满,可以点点赞👍支持一下哟~✨

好的,以下是一个简单的Python消消代码示例: ``` import random # 定义颜色常量 COLOR_RED = '红' COLOR_YELLOW = '黄' COLOR_GREEN = '绿' COLOR_BLUE = '蓝' COLOR_PURPLE = '紫' # 定义颜色列表 color_list = [COLOR_RED, COLOR_YELLOW, COLOR_GREEN, COLOR_BLUE, COLOR_PURPLE] # 定义行列数 ROW_NUM = 6 COL_NUM = 6 # 初始化游戏面板 board = [[None for i in range(COL_NUM)] for j in range(ROW_NUM)] for i in range(ROW_NUM): for j in range(COL_NUM): board[i][j] = random.choice(color_list) def print_board(): for i in range(ROW_NUM): for j in range(COL_NUM): print(board[i][j], end=' ') print() def eliminate(): eliminated = False for i in range(ROW_NUM): for j in range(COL_NUM): if board[i][j] is None: continue count = 0 color = board[i][j] # 消除同色方块 if i > 0 and board[i-1][j] == color: count += 1 if i < ROW_NUM-1 and board[i+1][j] == color: count += 1 if j > 0 and board[i][j-1] == color: count += 1 if j < COL_NUM-1 and board[i][j+1] == color: count += 1 if count >= 2: board[i][j] = None eliminated = True return eliminated def drop(): for j in range(COL_NUM): # 从底往上扫描 i = ROW_NUM - 1 while i >= 0 and board[i][j] is not None: i -= 1 if i < 0: continue k = i - 1 while k >= 0 and board[k][j] is None: k -= 1 while k >= 0: board[i][j] = board[k][j] board[k][j] = None i -= 1 k -= 1 print_board() elimination_count = 0 while True: if not eliminate(): break drop() elimination_count += 1 print('总消除次数:', elimination_count) print_board() ``` 这段代码实现了一个简单的消消游戏。游戏面板为一个6x6的方格,每个方格内填充随机颜色的方块。玩家需要消除3个或以上同色的相连方块。每次消除完成后,上方的方块会下落补位,直至不能再消除为止。以上代码实现了自动化消除的逻辑,并输出结果。
评论 22
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值