LOADING

加载过慢请开启缓存 浏览器默认开启

大作业开发记

这下真在网站上写日记了(

今天开始学着自己写Qt了,当然,一开始肯定对着GPT写的,代码完全记不全……不过想了想,好像没什么关系,如果之后完全用不到Qt,那随便咯,要用的话,随时可以查呀,用多了自然熟了,好像现在也没有必要追求完全熟记代码,这么一想,就可以毫无负罪感的使用GPT教我所有我不会的代码了,某种意义上这只是一个代码查询的过程,我只是不知道存在QLabel,不知道可以在QHBoxLayout类里addWidget一个Label,不知道可以在x,y处画一个参数为w,h的矩形可以用drawRect,而不至于写不出来一个for循环嵌套实现棋盘绘制。尽管这些GPT都可以写好。我觉得现在在一个指针、类还没正经学的情况下,临摹式地打出QLabel 变量名 = new QLabel(),然后知道这大概在干什么,想调整功能会调整,差不多得了

一个小时的结果
一个小时的成果belike

又过了大概一小时吧,现在能按规则走路了,画出了可行范围。规则判断我一开始打算按xy坐标一个一个情况枚举的,但想想不太对,应该有更简单的做法,问了AI,果然,可以直接通过数值运算得到行走方向,从而判断是否可行,这种判断自己想不到吗?也许可以,然而急不可待地问了AI,可以说节省了时间,或者也可以认为有点懒于思考。怎么说呢,因为我自己定义自己在这个作业中的身份是小白,从而我总是在遇到问题是直接寻求AI帮助,哪怕这件事情似乎并没有使用到超出我知道的信息。这也许并不太好?

现在的样子:
现在的棋盘

以及我上述说明的聪明的判断行走路径的方法:

int dx = (x_now == x_to ? 0 : (x_to - x_now) / abs(x_to - x_now));
int dy = (y_now == y_to ? 0 : (y_to - y_now) / abs(y_to - y_now));
int pos_x = x_now;
int pos_y = y_now;
flag = 1;

while(pos_x != x_to || pos_y != y_to) {
    pos_x += dx;
    pos_y += dy;
    if(board[pos_x][pos_y] != 0) {
        flag = 0;
        break;
    }
}

好了又来汇报进度了( 现在20:54,实现了回合交换(connect发射信号那一坨好长啊……),实现了射箭,具体实现逻辑好像都挺简单的,射箭直接基本copy放棋子就好了ohyeah

现在的棋盘