• 我罗斯方块最终篇报告


    <!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8"/> <title>Markdown在线编辑器 - www.MdEditor.com</title> <link rel="shortcut icon" href="https://www.mdeditor.com/images/logos/favicon.ico" type="image/x-icon"/> </head> <body><table> <thead> <tr> <th>这个作业属于哪个课程</th> <th><a title="2020年面向对象程序设计" href="https://edu.cnblogs.com/campus/fzu/2020OOP">2020年面向对象程序设计</a></th> </tr> </thead> <tbody> <tr> <td>这个作业要求在哪里</td> <td><a title="我罗斯方块最终篇 " href="https://edu.cnblogs.com/campus/fzu/2020OOP/homework/10814">我罗斯方块最终篇 </a></td> </tr> <tr> <td>小组成员</td> <td>031902602 陈志良 031902601 陈帅 031902629 杨寓荃</td> </tr> <tr> <td>Github</td> <td><a title="项目地址" href="https://github.com/czl411/woluosi/tree/master">项目地址</a></td> </tr> </tbody> </table> </body> </html>

    视频:

     <!DOCTYPE html> <html lang="zh"> <head> <meta charset="utf-8"/> <title>Markdown在线编辑器 - www.MdEditor.com</title> <link rel="shortcut icon" href="https://www.mdeditor.com/images/logos/favicon.ico" type="image/x-icon"/> </head> <body><p><a title="视频链接" href="https://www.bilibili.com/video/BV1hK4y147jz/">视频链接</a></p> </body> </html>

    截图:

    规则界面:

    单人:

     双人:

    完成该作业的过程:

    ①:因为这次是为了设计双人版的,所以我们首先是先做一个单人版,后面再这个基础上设计双人版。

    ②:各类函数实现着实有点难。

    ③:我们在实现对方块做操作时,对键盘的读入,使用了GetAsyncKeyState()函数。

    代码要点:

    ①:对方块的储存,我们没有用三维,我们采用的是一个内涵二维数组的结构体,然后定义一个二维的结构体数组,以此达到目的。

    ②:对于如何实现双人呢,刚开始,我们想到的是线程,但是百度了之后,对于线程还是有点难理解,后面就我们自己想了个方法:

    通过请教其他同学,我们知道了GetAsyncKeyState函数,这个函数可以响应键盘上按键的状态,通过这个函数我们就可以实现:在一个循环内,有两个玩家同时进行操作。开始的时候,我们通过一下方式调用该函数
    if(GetAsyncKeyState(VK_LEFT)&0x25)
    但发现用这种方式调用时,有的字母无法响应。于是改成了以下方式
    ​if(GetAsyncKeyState(VK_LEFT)&0x8000)
    ​但却又出现了其他问题,我们原先采用的是在一次下落中通过进行10000次循环来读入键盘操作,而在键盘按下的整个过程中会经历多个循环,就会导致一次按键进行了多次操作。最终我们改变了循环方式,在每次读入键盘循环的末尾加入Sleep(120),让程序休眠,避免了一次按键多次操作的情况,同时将循环次数改为5次,意味着一次下落内可进行的操作为5次。
    最终完成了双人模式的​实现。

    ③:对代码的旋转实现,我们是把各种方块都弄好(dia[m][n]),只要(n+1)%=4,即可完成。

    ④:在键盘的读入时,不能同时读入S与↓,也就是说不能同时加速,这是一个问题。

    ⑤:我们组的作品没有做窗口化的处理。

    ⑥:我们组的代码分块没有具体的分,写的较为复杂,没有较多用到面向对象程序设计的方法。

    ⑦:缺少重玩的功能,以及记录最高分的功能。

    ⑧:无背景音乐。

    ⑨:美观度急缺。

    收获与心得:

    怎么说呢,在看完其他组的作品报告之后呢,我们组自愧不如。我们组的我罗斯应该是’食物链低端‘的那种,真的太强了!!其实,在做这个我罗斯之前,我们的内心是有点害怕的,因为第一次做一个小游戏,但也是有点兴奋的。至于收获嘛,对于我,我第一次接触了其他新的事物,比如方块着色、清除光标、光标移动、sleep函数、以及我们组用到的GetAsyncKeyState函数,着实是长知识了一回,同时,我也认识到了我自己的不足,还是以上学期的思维写代码,没有用面向对象的思维写,着实惭愧,但我还是希望我在今后的学习道路上更加努力。

  • 相关阅读:
    2021年下半年北京市中小学教师资格考试笔试报名公告
    高效演讲
    php的Allowed memory size of 134217728 bytes exhausted问题解决办法
    1111error
    http 500 错误
    xshell连接centons
    Vue 计算属性
    Vue 自定义指令
    Vue 事件绑定
    Vue v-cloak指令解决插值表达式“闪动”问题
  • 原文地址:https://www.cnblogs.com/czl411/p/13114338.html
Copyright © 2020-2023  润新知