关于贪吃蛇的学习

关于贪吃蛇的学习
今天我主要是学习了qt的基本应用和对网上贪吃蛇资源代码中蛇移动和吃食物部分的大致学习

网上资源里面的贪吃蛇是由链表进行实现的
基本思想就是分为三种情况,一种是蛇撞墙,蛇吃自己,和蛇吃食物,以及除了以上两种情况。
首先蛇在每次开始时都要获得一个方块(有矩阵表示)
无事发生则要把该方块当成自己新的蛇头,然后把蛇尾方块删除
吃食物则不用删去尾部
蛇撞墙则游戏结束

其他两种情况就是让这个方块的属性type和墙的type和蛇的type

以下注释均为我对代码的理解
void Board::moveStep(){
getHeadTail();//获取蛇头和蛇尾指针
Node n = matrix[head->x + dx][head->y + dy];
n->label->show();
//n是即将变成蛇头的那个label
if(n->type == BORDER_LABEL || n->type == SNAKE_LABEL){ //倘若吃到自己或者撞墙
qDebug() << “Game over@!!!”;
timer.stop();
QMessageBox::information(this, “提示”, "
** game over ***", QMessageBox::Ok);
}else{
if(n->type == FOOD_LABEL){//倘若蛇已经吃到食物了
n->type = SNAKE_LABEL;
snake.append(n); //在链表尾部添加一个,即在蛇头添加一个
//不移除尾巴
generateFood();//生成下一个食物
}else{
n->type = SNAKE_LABEL;给链表的type附上蛇的标签
snake.append(n);//在链表尾部添加
tail->label->hide(); //把后面的蛇尾给隐藏掉
tail->type = NORMAL_LABEL;
snake.removeFirst();//从链表中删除第一个元素即蛇尾
}
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值