Giter Site home page Giter Site logo

tetris's Introduction

Tetris

俄罗斯方块小游戏 程序使用easyX 图形库绘图,请安装easyX图形库,项目源码可在vs和vc++6.0上运行(别的IDE我没试过)。

源.cpp为项目代码 Tetris.exe是可以运行的俄罗斯方块游戏程序。

游戏按键:键盘方向键上键 翻转 键盘下键 强制下落 键盘左键 左移 键盘右键 右移

实现思路: 使用一个15行10列的二维数组,表示所有页面所有方格,用0表示 空白格 1表示填充格(已经下落完毕的方块) 2 表示正在下落的方块

方块翻转过程:根据空中(也就是正在下落的)方块的位置和形状,预想方块顺时针翻转后到达的位置,判断是否可翻转(当要翻转到的位置被占用或出界则无法翻转)。

方块下落完成判断标准:点击下按键或当前时间距离上次方块下落时间大于阈值,且正在下落的方块下面刚好是一件被填充的方块,或者是边界,则下落完成,修改当前下落方块状态为下落完成。

方块消除: 每次方块下落完成后,会遍历二维数组进行消除。当数组有一行状态都为填充状态(即都为1)时,消除这行,再把所有本行上的所有填充状态下的方块下调一行(即修改数组数据)。

游戏结束判断: 上次下落完成后,生成新的方块,若新的方块的生成位置,已经被填充,则游戏结束。

声明: 游戏随机数生成有些问题,导致有时生成的方块顺序好像有规律。

因为本游戏是本人娱乐练习完成,故变量命名命名很不规范....很多都用了拼音(也是因为当时还有养成按标准命名的习惯),很多地方都没有注释,现在能看到的大部分注释,也是我最近才加的。(抱歉)

游戏主体使用的逻辑相当简单,就是条件语句很多。

所有画图格式都用硬编码写死,故要改页面样式需要改一年。(抱歉)

图像变换使用补图法完成,就是把原先的画面,修改某些元素,直接变成当前界面。本可以使用数组数据直接全部重绘的方式代替的。(当时天真的我固执地以为补图法效率应该比重绘页面高)

!!!!!没有心理承受能力,不能忍受垃圾代码的请一定不要认真看源码。真的太乱了,写的像屎一样,很多地方该重用没有重用,功能函数没有抽取。可以配置的地方基本全部写死。注释量极少。 我能理解你的心情(最近自己看到自己几年前写的这个东西,都感觉羞愧难当,简直一坨狗屎)。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.