Linux下使用Curses库+时钟信号编写视频小游戏:对战贪吃蛇

本文介绍了如何在Linux环境下使用Curses库开发一款双人对战贪吃蛇的小游戏。通过g++编译,利用cbreak()和noecho()函数实现即时响应与隐藏输入,借助SIGALRM信号定时更新游戏状态。同时,文章讨论了如何通过init_pair()设置颜色,并解决玩家在一帧内连续改变蛇头方向的问题,以确保游戏逻辑的正确性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#include <iostream>
#include <stdio.h>
#include <curses.h>
#include <sys/time.h>
#include <signal.h>
#include <string.h>
#include <unistd.h>
#include <stdlib.h>


这些是用g++编译所需要的头文件,其实用c和c++都可以,我用g++编译的,其实也没用到什么c++的东西,如果用gcc,需要的头文件可能会有变化,反正试一下就好了。

编译命令:

g++ /home/parker/Desktop/double_snake/main.cpp -lcurses -o snake

执行:./snake

虽然我在我的Ubuntu上也装了codeblocks,但是Curses的相关内容,没法在IDE里直接编译运行,必须要到terminal里,执行这句话,用-lcurses来调用系统的编译库,如果还没装curses库就先去下一个。-o后面命名一下。如果是c文件了话,就用gcc,后面.cpp变成.c。

我的主函数:

int main(){
    initscr();
    initcolor();
    cbreak();// keyboard event at once
    noecho();
    clear();
    signal(SIGALRM, update);
	init();
	countrol();
    endwin();
    return 0;
}

initscr()是curses自带的,初始化。

initcolor()是我自己写的,后面说。

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值