python代码写开心消消乐

简介: python代码写开心消消乐

一.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  to restart the game.'

           text2 = 'Press  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()

四.cfg


'''run'''

if __name__ == '__main__':

   main()



'''配置文件'''

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)


相关文章
|
6天前
|
存储 算法 调度
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
【复现】【遗传算法】考虑储能和可再生能源消纳责任制的售电公司购售电策略(Python代码实现)
102 26
|
10天前
|
测试技术 开发者 Python
Python单元测试入门:3个核心断言方法,帮你快速定位代码bug
本文介绍Python单元测试基础,详解`unittest`框架中的三大核心断言方法:`assertEqual`验证值相等,`assertTrue`和`assertFalse`判断条件真假。通过实例演示其用法,帮助开发者自动化检测代码逻辑,提升测试效率与可靠性。
92 1
|
13天前
|
机器学习/深度学习 算法 调度
基于多动作深度强化学习的柔性车间调度研究(Python代码实现)
基于多动作深度强化学习的柔性车间调度研究(Python代码实现)
|
3天前
|
开发者 Python
Python神技:用列表推导式让你的代码更优雅
Python神技:用列表推导式让你的代码更优雅
183 99
|
10天前
|
IDE 开发工具 开发者
Python类型注解:提升代码可读性与健壮性
Python类型注解:提升代码可读性与健壮性
173 102
|
3天前
|
设计模式 人工智能 API
AI智能体开发实战:17种核心架构模式详解与Python代码实现
本文系统解析17种智能体架构设计模式,涵盖多智能体协作、思维树、反思优化与工具调用等核心范式,结合LangChain与LangGraph实现代码工作流,并通过真实案例验证效果,助力构建高效AI系统。
74 7
|
3天前
|
Python
Python的简洁之道:5个让代码更优雅的技巧
Python的简洁之道:5个让代码更优雅的技巧
107 70
|
9天前
|
存储 大数据 Unix
Python生成器 vs 迭代器:从内存到代码的深度解析
在Python中,处理大数据或无限序列时,迭代器与生成器可避免内存溢出。迭代器通过`__iter__`和`__next__`手动实现,控制灵活;生成器用`yield`自动实现,代码简洁、内存高效。生成器适合大文件读取、惰性计算等场景,是性能优化的关键工具。
123 2
|
13天前
|
安全 大数据 程序员
Python operator模块的methodcaller:一行代码搞定对象方法调用的黑科技
`operator.methodcaller`是Python中处理对象方法调用的高效工具,替代冗长Lambda,提升代码可读性与性能。适用于数据过滤、排序、转换等场景,支持参数传递与链式调用,是函数式编程的隐藏利器。
53 4
|
13天前
|
机器学习/深度学习 数据采集 并行计算
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
多步预测系列 | LSTM、CNN、Transformer、TCN、串行、并行模型集合研究(Python代码实现)
161 2

推荐镜像

更多