我罗斯方块最终篇

这个作业属于哪个课程 2020年面向对象程序设计
这个作业要求在哪里 我罗斯方块最终篇
这个作业的目标 •代码git仓库链接。 •运行截图/运行视频 •代码要点 •收获与心得 •依然存在的问题
其他参考文献 俄罗斯方块新增行算法
学生 031903141 陈莉莹
我的仓库地址 (https://github.com/031903141/-2020)

一、写出程序的步骤

1.之前找到了的俄罗斯方块教学,到后面发现不完整,当时就懵了,知道要提交最终篇,我和当时的组员们研究了很久,没能把这个游戏写出来,所以最终篇我们组没有提交。

由于这段时间放暑假了,时间非常充裕,我想重新试试看自己能不能做完这个游戏。这次我很幸运的在b站看到了rock老师的俄罗斯方块教学视频。

(地址如下:https://www.bilibili.com/video/av883067892/)

2.首先,我配置了SFML环境,跟着视频里一步一步敲下代码,顺利的完成了单人版的俄罗斯方块。然后根据单人版的代码,比较容易的写完了双人版的俄罗斯方块

(几乎把代码复制了一遍,然后修改一下变量就完成了)。

3.根据作业要求,我还差此消彼长(即当玩家方块填满一整行时,会消除这行方块,然后使得另一玩家的方块底部随机增加一行带空格的)的函数。

在思考了很久以后,我终于写出来啦。代码如下:

//增加垃圾行
void addLine()
{
    for (int i = 0; i < ROW_COUNT; i++)
    {
        for (int j = 0; j < COL_COUNT; j++)
            table[i][j] = table[i + 1][j];
    }

    int sum = rand() % 10;
    if ( sum == 0 ) sum = 3;
    for (int l = 0; l < sum; l++)
        table[20][rand() % 10] = rand() % 7;
}

二、运行视频

视频地址:http://m.youku.com/v_show/id_XNDcyNzIwNjQ3Mg==.html?pgcpgcid=UNzk5MjUzMzE4NA%3D%3D&sharekey=9dc5b0f4b32a8789eeff40f7941312893
(最后有出现消行与另一方的垃圾行)

游戏截图:

三、感悟与游戏设计的不足

首先,我的感受真的是“世上无难事,只怕有心人”。当时,我觉得完成这个游戏对我来说是不可能的事情,稍稍挣扎了一下就放弃了。可这次,我只是抱着试试看的心情,

居然一步一步把一个小游戏完整写出来了。我想我以后再不会这么轻易放弃了。这次作业不仅让我学习了很多编程知识(尤其是SFML的使用),更重要的是使我的心态发生了改变。

虽然我大致写出了这个游戏,但它仍存在许多不足与问题。例如,界面不够美观,功能不完善(比如说不能用空格暂停和开始游戏选项),等等。

(but!! rock老师教我们写的背景音乐听起来超带感的!!!)

posted @ 2020-06-25 21:49  Zenlena  阅读(...)  评论(...编辑  收藏