关于用pygame来编写类满天星游戏的全记录

关于用pygame来编写类满天星游戏的全记录二 考虑有可能出现完全无法消除的情况,那么可以再游戏里增加检查机制,可以在游戏过程中,不断检查游戏状态,利用之前的消除算法,不停查找是否还有可以消除的星星,如果没有了,则重新生成棋盘。这个很简单,就不做了,我稍微偷个懒,修改一下游戏机制,即只要有2个以上相同的星星,就可以消除,那么游戏就可能出现无法消除的情况。运行游戏,确实有移动了,但是因为这个只是动画过程,那么实际二维列表内容并没有发生变化,所以游戏界面出现的不是移动,而像是复制后移动,并且如果此刻重新画图,所有界面都恢复原样了。增加的过程也需要动画效果。 阅读详情

编写类满天星游戏,目前自己设定需要用到的算法内容,包括第一点点击某一个图标后,自动检查图标上下左右是有与之相同的图形,如果包括自身在内有三个以上的图形,则可以消除。第二,当界面中有图形消除后,那么需要根据列来下移图标,同时产生新的图标。第三,自动检查界面中是否还有能够匹配的图案,如果没有,那么重新生成游戏。第四,游戏机制设定为倒计时,在倒计时完成前,尽可能多消除,多得分。并且考虑每次消除4个以上,按比例增加时间。

首先完成最简单的部分,配置pygame的基本参数,并且绘制游戏界面,也就是画横纵线。

考虑把游戏界面画成一个10*10的方格,并且在上方留出空位显示等分等信息,具体还需不需要别的,待定…

直接使用之前贪食蛇的画格子和初始化的代码,先略作修改。

import random
import time
import pygame

# 30帧
fps = 30
fps_clock = pygame.time.Clock()
screen_width = 1024
screen_height = 768
# 分辨率,标题
display = pygame.display.set_mode((screen_width, screen_height), 0, 32)
pygame.display.set_caption('好似满天星')
tile_size = 60
tile_width = 60
tile_height = 60


x_margin = 400
y_margin = 100

# 列
columns = 10
# 行
rows = 11

# 配色RGB
white = (255, 255, 255)
black = 'black'
bg_color = 'sky blue'
border_color = white
body_color = 'purple'
inter_body_color = 'green'
line_color = white
directions = ['up', 'down', 'left', 'right']


text_color = (144, 59, 28)
my_score = 0
snake = []


# 画格子
def draw_chest():
    for i in range(rows + 1):
        pygame.draw.line(display, border_color, (x_margin/2, y_margin/2 + i * tile_size),
                         (x_margin/2 + (columns * tile_size), y_margin/2 + i * tile_size), 2)

    for j in range(columns + 1):
        pygame.draw.line(display, border_color, (x_margin/2 + j * tile_size, y_margin/2),
                         (x_margin/2 + j * tile_size, y_margin/2 + (rows * tile_size)), 2)


if __name__ == '__main__':
    pygame.init()
    bad_touch = pygame.mixer.Sound('badswap.wav')
    match_three = pygame.mixer.Sound('match3.wav')
    match_more_than_three = pygame.mixer.Sound('match4.wav')
    display.fill(bg_color)
    while True:
        draw_chest()
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                pygame.quit()
        pygame.display.update()
        fps_clock.tick(fps)

目前不知道后续还有些什么需求,所以简单修改一下,后期有需要再来修改代码。

运行结果如下:

python: pygame小游戏(二)——满天星 """ 满天星: 绘制100颗小星星:随机产生的 1.小星星移动: 左上角到右下角移动 循环形式 2.随机颜色 闪烁 修改一次 """ import pygame,sys # 导入随机函数模块 import random # 窗体 screen = pygame.display.set_mode((800,600),0,0) #坐标值 xx = [] yy = [] # 加载图片(如果... 阅读详情

相关推荐

基于python的小游戏毕业设计,pygame小游戏实验报告

在现代文明高度发达的今天,人们在日常生活中来源于各个方面的压力也越来越大。在所剩无几的闲暇时间里,人们更希望通过某种娱乐方式来放松疲惫不已的身心用python绘制满天星代码。游戏,我相信这是很大一部分人的选择!说到游戏,可能每个人有不同的答案,但是有一款游戏是每个人都熟悉并且玩过的,那就是贪吃蛇。贪吃蛇以其无网络运行、硬件要求低,操作简单等优势在非智能手机时代大放光彩。本次毕业设计的主题就是小游戏贪吃蛇的设计与实现,此次选择的程序设计语言为Python。

weixin_61088415的博客 1769

【python】01以满天星和月亮为例,python中如何制作动画?

python满天星

zzzyunduo的博客 2777

Python Pygame游戏开发入门:从零构建射击游戏实战教程

游戏开发是编程学习的重要实践领域,其核心在于理解游戏循环、事件处理和对象交互等基础概念。游戏循环作为游戏运行的脉搏,通过持续处理用户输入、更新游戏状态和渲染画面,驱动整个游戏世界运转。在技术实现上,碰撞检测是游戏交互的灵魂,它通过数学计算判断游戏对象间的接触,为游戏提供核心互动逻辑。这些技术不仅应用于商业游戏开发,也是学习编程、理解实时系统设计的绝佳切入点。本文以Python Pygame库为基础,通过构建一个射击游戏项目,将抽象的游戏开发概念转化为可视化的实践成果。项目中涉及的碰撞检测和游戏循环机制,是理

weixin_29015801的博客 262

Python 使用Pygame库实现扩展复杂绘制满天星游戏:实现碰撞检测,设计关卡系统,增加特殊道具等

本项目演示了如何使用 Python 中的 Pygame 库创建一个扩展复杂的满天星游戏。除了基本的游戏功能外,还添加了背景音乐、多种类型的星星、碰撞检测以及关卡系统。通过添加背景音乐、多种类型的星星等功能,我们扩展了游戏的功能,使其更加丰富和有趣。我们使用Pygame库创建了一个简单的满天星游戏。在这个游戏中,玩家需要控制一个蓝色方块躲避红色星星,并收集绿色道具以获得分数。游戏中的星星和道具会不断向下移动,当它们到达屏幕底部时,它们会重新出现在屏幕顶部。

程序熊的博客 142

Python与Pygame实现的“满天星”小游戏源码

Python是由Guido van Rossum于1989年底发起,第一个公开发行版发行于1991年。由于其具有丰富的库支持、清晰的语法以及强大的可扩展性,Python迅速成为最受欢迎的编程语言之一。Pygame是一个开源的Python库,专门用于编写视频游戏。它包括对图像、声音、事件处理和其他许多功能的支持。Pygame库的创建可追溯到1999年,由Petter Schau及其同事开始开发,最初是作为pygame模块集成到Python的多媒体扩展包PyWeek中。

weixin_42360733的博客 869

基于单片机直流电机调速控制系统设计

*单片机设计介绍,基于单片机直流电机调速控制系统设计。

2201_75940997的博客 2781

AutoCAD提示找不到acdb24.dll、AcGe24.dll、AcPal.dll、AcUt.dll怎么办?

在我们安装了AutoCAD 2023版本以后,打开CAD,可能会出现dll文件丢失的情况,如下所示:1、由于找不到acdb24.dll,无法继续执行代码。重新安装程序可能解决此问题。2、由于找不到AcGe24.dll,无法继续执行代码。重新安装程序可能解决此问题。3、由于找不到AcPal.dll,无法继续执行代码。重新安装程序可能解决此问题。4、由于找不到AcUt.dll,无法继续执行代码。重新安装程序可能解决此问题。遇到AutoCAD启动系统错误,由于找不到dll文件该怎么处理呢?

huoxu369的博客 1万+

【黑马点评优化】2-Canel实现多级缓存(Redis+Caffeine)同步

【黑马点评优化】2-Canel实现多级缓存(Redis+Caffeine)同步

m0_52031708的博客 3848

kettle多表数据迁移

点击 文件——新建——作业,在左侧的 核心对象 标签下选择 通用,双击添加一个 start ,一个 转换 ,一个 作业 和一个 成功 到右侧的作业面板,这些作业项都可以改名字。点击文件—新建—转换,在左侧的 核心对象 标签下选择 输入 下的 表输入,双击添加到右侧的转换面板,再选择 作业 下的 复制记录到结果 ,双击添加到右侧的转换面板。新建转换,在左侧的 核心对象 标签下选择 作业 下的 从结果获取记录,双击添加到右侧的转换面板,再选择 作业 下的 设置变量 ,双击添加到右侧的转换面板。

u014061745的博客 1342

基于 Python 的 LIF 模型:探索神经元同步与小世界网络

首先,我们定义了一个LIFNeuronself.soma.L = self.soma.diam = 12.6157 # 固定神经元形状self.cm = cm # 电容self.V_rest = V_rest # 静息电位self.V = V_rest # 初始化膜电位在初始化过程中,每个神经元被赋予初始的静息电位,并且其膜电位会在后续的模拟过程中动态变化。

qq_36224726的博客 1426

2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)

2025年全国青少年信息素养大赛初赛真题(算法创意实践挑战赛C++初中组:文末附答案)

王老师青少年编程 3398

基于simulink创建一个针对双馈异步风力发电机并网运行的仿真模型

摘要:本文详细介绍了基于Simulink的双馈异步风力发电机(DFIG)并网运行仿真建模方法。系统包含风速输入、风力机、双馈发电机、电力电子变换器、控制器和并网接口等模块,通过8个步骤完整呈现了建模流程,包括风速模拟、机械功率计算、发电机特性建模、变流器控制策略设计等关键环节。仿真可评估系统在不同风速条件下的动态响应、最大功率跟踪能力和发电效率,为风力发电系统的优化设计提供有效验证手段。模型可根据实际需求扩展环境因素和电网交互等细节,提高仿真精度。

amy_mhd的博客 334

Rancher入门到精通 - Nginx Ingress 配置指南

Rancher 是一个开源的容器管理平台,它提供了一套完整且易于使用的工具来部署、管理和扩展容器化应用。而 Nginx Ingress 则是一个常用的开源 Ingress 控制器,用于将外部请求流量导入到 Kubernetes 集群中的服务。在开始之前,请确保您已经正确安装了 Rancher 平台和 Nginx Ingress 控制器。

TechInk的博客 1311

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

上一篇: python编写小游戏之三入最最简陋简单贪食蛇编写2
下一篇: 关于用pygame来编写类满天星游戏的全记录二
jackwsd
博客等级 码龄18年 79粉丝 67原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值