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)


相关文章
|
2天前
|
机器学习/深度学习 人工智能 数据挖掘
Numba是一个Python库,用于对Python代码进行即时(JIT)编译,以便在硬件上高效执行。
Numba是一个Python库,用于对Python代码进行即时(JIT)编译,以便在硬件上高效执行。
20 9
|
2天前
|
机器人 Shell 开发者
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
`roslibpy`是一个Python库,它允许非ROS(Robot Operating System)环境(如Web浏览器、移动应用等)与ROS环境进行交互。通过使用`roslibpy`,开发者可以编写Python代码来远程控制ROS节点,发布和订阅话题,以及调用服务。
18 8
|
1天前
|
存储 缓存 算法
如何优化Python代码?
【7月更文挑战第14天】如何优化Python代码?
13 6
|
2天前
|
数据格式 Python
Python代码示例,读取excel表格,将行数据转为列数据。(10)
【7月更文挑战第10天】Python代码示例,读取excel表格,将行数据转为列数据。
17 2
|
4天前
|
API 数据处理 Python
探秘Python并发新世界:asyncio库,让你的代码并发更优雅!
【7月更文挑战第11天】Python的asyncio库简化了单线程并发编程,利用协程和事件循环实现异步操作。async def定义异步函数,await挂起协程等待IO完成。例如,fetch_data模拟网络请求,main函数并发执行多个任务。asyncio.gather收集结果,Semaphore限制并发数,保证资源管理。asyncio提供高效优雅的并发解决方案。
20 4
|
3天前
|
数据可视化 PyTorch Serverless
Python 性能分析的几个方法,找到你代码中的那个她
我们在编写了一个脚本在笔记本上处理一些数据,然后去喝杯咖啡或者上了个厕所,15分钟后回来时发现进度才完成不到10%。 我们的脑袋里面就会发问:为什么这么慢?究竟是在哪个部分是慢的?是读取数据、处理数据还是保存数据?如何让它变快?它真的很慢吗? 有了这个疑问我们尝试去解决这个问题,下面我们介绍几个 python 性能分析的工具。
|
5天前
|
存储 算法 搜索推荐
Python高手必备!揭秘图(Graph)的N种风骚表示法,让你的代码瞬间高大上
【7月更文挑战第10天】在Python中,图数据结构通过邻接矩阵、邻接表、边列表和邻接集来表示,用于社交网络分析和路径查找等。邻接矩阵用二维数组存储连接,邻接表仅存储每个节点的邻居,节省空间。边列表列出所有边,而邻接集用集合确保邻居唯一性。选择合适表示法能提升代码效率和可读性,展现编程技巧。
12 1
|
2天前
|
机器学习/深度学习 TensorFlow API
Keras是一个高层神经网络API,由Python编写,并能够在TensorFlow、Theano或CNTK之上运行。Keras的设计初衷是支持快速实验,能够用最少的代码实现想法,并且能够方便地在CPU和GPU上运行。
Keras是一个高层神经网络API,由Python编写,并能够在TensorFlow、Theano或CNTK之上运行。Keras的设计初衷是支持快速实验,能够用最少的代码实现想法,并且能够方便地在CPU和GPU上运行。
10 0
|
2天前
|
Unix Linux Python
`subprocess`模块是Python中用于生成新进程、连接到它们的输入/输出/错误管道,并获取它们的返回(退出)代码的模块。
`subprocess`模块是Python中用于生成新进程、连接到它们的输入/输出/错误管道,并获取它们的返回(退出)代码的模块。
6 0
|
2天前
|
Unix Shell Python
Python代码示例标准输出与标准错误输出
Python代码示例标准输出与标准错误输出
6 0