目录

1 《俄罗斯方块》游戏

2 《俄罗斯方块》游戏Python代码实现

2.1 展现

2.2 Python代码


1 《俄罗斯方块》游戏

《俄罗斯方块》原本是前苏联科学家阿列克谢·帕基特诺夫所开发的教育用软件,之后开始提供授权给各个游戏公司,造成各平台上软件大量发行的现象。

Game Boy版的俄罗斯方块在日本卖出424万套,是Game Boy史上卖最好的游戏。海湾战争时,也是前线美军最常拿消磨时间的游戏之一。

由于俄罗斯方块具有的数学性、动态性与知名度,也经常拿来作为游戏程序设计的练习题材。


2 《俄罗斯方块》游戏Python代码实现

2.1 展现

2.2 Python代码


import os
import sys
import random
from modules import *
from PyQt5.QtGui import *
from PyQt5.QtCore import *
from PyQt5.QtWidgets import *#=============定义俄罗斯方块游戏类==============
class TetrisGame(QMainWindow):def __init__(self, parent=None):super(TetrisGame, self).__init__(parent)# 是否暂停ingself.is_paused = False# 是否开始ingself.is_started = Falseself.initUI()#===========界面初始化===============def initUI(self):# iconself.setWindowIcon(QIcon(os.path.join(os.getcwd(), 'resources/icon.jpg')))# 块大小self.grid_size = 22# 游戏帧率self.fps = 200self.timer = QBasicTimer()# 焦点self.setFocusPolicy(Qt.StrongFocus)# 水平布局layout_horizontal = QHBoxLayout()self.inner_board = InnerBoard()self.external_board = ExternalBoard(self, self.grid_size, self.inner_board)layout_horizontal.addWidget(self.external_board)self.side_panel = SidePanel(self, self.grid_size, self.inner_board)layout_horizontal.addWidget(self.side_panel)self.status_bar = self.statusBar()self.external_board.score_signal[str].connect(self.status_bar.showMessage)self.start()self.center()self.setWindowTitle('Tetris —— 九歌')self.show()self.setFixedSize(self.external_board.width() + self.side_panel.width(), self.side_panel.height() + self.status_bar.height())#=============游戏界面移动到屏幕中间=======================def center(self):screen = QDesktopWidget().screenGeometry()size = self.geometry()self.move((screen.width() - size.width()) // 2, (screen.height() - size.height()) // 2)#==================更新界面==============def updateWindow(self):self.external_board.updateData()self.side_panel.updateData()self.update()#========开始================def start(self):if self.is_started:returnself.is_started = Trueself.inner_board.createNewTetris()self.timer.start(self.fps, self)#==========暂停/不暂停===============def pause(self):if not self.is_started:returnself.is_paused = not self.is_pausedif self.is_paused:self.timer.stop()self.external_board.score_signal.emit('Paused')else:self.timer.start(self.fps, self)self.updateWindow()#============计时器事件=================def timerEvent(self, event):if event.timerId() == self.timer.timerId():removed_lines = self.inner_board.moveDown()self.external_board.score += removed_linesself.updateWindow()else:super(TetrisGame, self).timerEvent(event)#=================按键事件====================def keyPressEvent(self, event):if not self.is_started or self.inner_board.current_tetris == tetrisShape().shape_empty:super(TetrisGame, self).keyPressEvent(event)returnkey = event.key()# P键暂停if key == Qt.Key_P:self.pause()returnif self.is_paused:return# 向左elif key == Qt.Key_Left:self.inner_board.moveLeft()# 向右elif key == Qt.Key_Right:self.inner_board.moveRight()# 旋转elif key == Qt.Key_Up:self.inner_board.rotateAnticlockwise()# 快速坠落elif key == Qt.Key_Space:self.external_board.score += self.inner_board.dropDown()else:super(TetrisGame, self).keyPressEvent(event)self.updateWindow()#==========运行===================if __name__ == '__main__':app = QApplication([])tetris = TetrisGame()sys.exit(app.exec_())

俄罗斯方块游戏(Python实现)相关推荐

  1. python编的俄罗斯方块游戏下载_python写的俄罗斯方块游戏

    python写的俄罗斯方块游戏 功能包括:记录所花费时间;消去的总行数;总分;排行榜,最高记录查看等. 排行榜中包含一系列的统计功能,如单位时间消去的行数,单位时间得分等. from Tkinter ...

  2. python俄罗斯方块算法详解_用 Python 写一个俄罗斯方块游戏 (

    @@ -2,34 +2,34 @@ > * 原文作者:[Dr Pommes](https://medium.com/@pommes) > * 译文出自:[掘金翻译计划](https://g ...

  3. python商城源码_自学Python才几天,就成功编写出俄罗斯方块游戏,附自学教程

    人们常说,python不适合做游戏,但我偏爱玩游戏,做不了大的,做个小的也行啊. 于是,我在自己毫无基础的条件下,用两天时间学python基础理论,再用已有的俄罗斯方块游戏源码和源文件,在我的不懈努力 ...

  4. python编的俄罗斯方块游戏_python编写俄罗斯方块

    本文实例为大家分享了python实现俄罗斯方块的具体代码,供大家参考,具体内容如下 #coding=utf-8 from tkinter import * from random import * i ...

  5. Python 写一个俄罗斯方块游戏

    使用 Python 的 PyGame 库写一个俄罗斯方块游戏的逐步指南 很多人学习python,不知道从何学起. 很多人学习python,掌握了基本语法过后,不知道在哪里寻找案例上手. 很多已经做案例 ...

  6. python下俄罗斯方块的游戏设计_[源码和文档分享]基于Python的PyGame的俄罗斯方块游戏设计与实现...

    摘 要 近年来,随着游戏产业的突飞猛进,游戏玩家的技术也是与日俱增,当你看见游戏高手完美的表演时,你是否想过我也能达到那种水平,本程序用Python语言编写俄罗斯方块,左侧显示正在运行的游戏,右边显示 ...

  7. 用 Python 写一个俄罗斯方块游戏

    使用 Python 的 PyGame 库写一个俄罗斯方块游戏的逐步指南 在这篇教程中,我们会用 Python 的 PyGame 库写一个简单的俄罗斯方块游戏.里面的算法很简单,但对新手可能有一点挑战性 ...

  8. 基于Python的俄罗斯方块游戏设计与实现 报告+项目源码

    资源下载地址:https://download.csdn.net/download/sheziqiong/85630943 资源下载地址:https://download.csdn.net/downl ...

  9. 用python 和pyqt5写俄罗斯方块游戏

    # 俄罗斯方块游戏 效果展示 本章我们要制作一个俄罗斯方块游戏. ## Tetris > 译注:称呼:方块是由四个小方格组成的 俄罗斯方块游戏是世界上最流行的游戏之一.是由一名叫Alexey P ...

  10. Python 实战开发俄罗斯方块游戏

    "人生苦短,我用 Python",这是网络上的一句戏言,却真实反映了 Python 语言的江湖地位.2017年 IEEE Spectrum 杂志发布的编程语言排行榜中,Python ...

最新文章

  1. 转: IO设计模式:Reactor和Proactor对比
  2. 入门NLP最优解:从项目实践轻松入手!
  3. R语言数据包自带数据集之mtcars数据集字段解释、数据导入实战
  4. 提升平面设计思维能力的实用技巧
  5. 【Javascript】复选框的全选与全不选
  6. 视音频编解码学习工程:FLV封装格式分析器
  7. java byte 判断相等_深入理解Java装箱与拆箱
  8. 国外少儿PYTHON编程书推荐
  9. 7个C语言小程序让你快速入门程序世界
  10. go int 转string_go 变量传递和切片
  11. matlab表白_撩妹攻略|理工男专属情人节表白礼物来啦~
  12. Wannafly Winter Camp 2019 Day4 G 置置置换 (oeis/DP)
  13. wap网页如何跳转到微信一键关注公众号
  14. 解析dex2oat的实现
  15. 基于非洲秃鹫优化算法的函数寻优算法
  16. Byte和Integer互转
  17. 中国到欧洲专线快递要多长时间
  18. kali linux u盘 live,Kali Linux Live U盘安装过程
  19. 用python搭建一个服务器
  20. LTE学习笔记之无线资源管理

热门文章

  1. 团队管理19--团队分工
  2. linux 龙芯cpu 测试,龙芯CPU实测!对比赛扬 没想到会这样
  3. 杨元庆:税收影响联想电脑国内售价
  4. 自制Beamer主题
  5. 微信诈骗产业链,俩字儿是核心:杀熟
  6. 【Jupyter notebook更改默认浏览器】
  7. 典型无线复习资料---有这不怕挂科
  8. [ffmpeg][goav]ffmpeg代码例子pcmu重采样并转码aac格式
  9. 深度剖析Java集合之Stack
  10. 宁盾堡垒机双因素认证方案