当前位置: 首页 > news >正文

Linux环境下基于Ncurses开发贪吃蛇小游戏

我们在Linux环境下基于ncurses开发了一个简易的贪吃蛇小游戏,具体情况如下:

使用链表代替贪吃蛇的身子;

基于ncurses获取用户键盘输入,控制贪吃蛇的上下左右移动;

基于多线程的概念实现控制贪吃蛇移动和自行游动的功能;

一、控制贪吃蛇的移动

本质上贪吃蛇的上下左右移动的原理就是,用来表示贪吃蛇的链表的更新,因为贪吃蛇的移动不会改变贪吃蛇身子的长度,只会改变贪吃蛇的位置。那么在链表的基础上去看,就代表只更新节点的位置,不去增加或减少节点的总数量。

我们可以通过改变代表贪吃蛇身子的链表的头尾节点的位置,来表示贪吃蛇的上下左右移动,在每次更新链表节点位置以后,通过重新扫面地图的显示来表示贪吃蛇的移动。

在重新扫描地图的显示时,由于ncurses的显示机制,会遇到地图无法覆盖的问题,那么只需要使用move(0,0),通过确定重新扫描时地图的显示位置,来覆盖移动前的位置,就能做到贪吃蛇的上下左右移动效果。

while(1){con = getch();if(con == KEY_RIGHT){move_right();gameMap();}}

二、贪吃蛇的撞墙判定

贪吃蛇的撞墙一般出现在移动后的情况下,那么我们需要在移动后加一个判定,判定移动后的贪吃蛇的尾巴节点的行和列是否等于地图边界的值,如果相等就判定撞墙,重新初始化地图界面,释放原链表的

http://www.xdnf.cn/news/380935.html

相关文章:

  • Java 内存模型 JMM
  • Edububtu 系统详解
  • Exploring Temporal Event Cues for Dense Video Captioning in Cyclic Co-Learning
  • 一个好用的快速学习的网站
  • python打卡day21
  • JavaScript基础-作用域概述
  • JDK10新特性
  • Apache Shiro 1.2.4 反序列化漏洞(CVE-2016-4437)
  • 二进制与十六进制数据转换:原理、实现与应用
  • DAY 21 常见的降维算法
  • 简述Web和HTTP
  • centos7.9上安装 freecad 指定安装位置
  • WinCC V7.2到V8.0与S71200/1500系列连接通讯教程以及避坑点
  • 码蹄集——向下取整(求立方根)、整理玩具、三角形斜边、完全平方数、个人所得税
  • MQTT协议介绍
  • 数据结构算法习题通关:树遍历 / 哈夫曼 / 拓扑 / 哈希 / Dijkstra 全解析
  • Python中的列表list使用详解
  • 重复的子字符串
  • 【ts】defineProps数组的类型声明
  • 人工智能100问☞第19问:什么是专家系统?
  • 自定义类型-结构体(二)
  • 基于ssm的超市库存商品管理系统(全套)
  • Vue.js框架的优缺点
  • 2025年PMP 学习六 -第5章 项目范围管理 (5.1,5.2,5.3)
  • ubunut20.04 安装运行lvi-sam
  • JavaSE核心知识点02面向对象编程02-05(方法)
  • 【比赛真题解析】混合可乐
  • 翻转数位题目解释和代码
  • C语言复习--动态内存管理
  • 同步、异步、并发的区别