目录
贪吃蛇
贪吃蛇是一种经典的计算机游戏,玩家通过操作蛇的移动方向,让蛇吃到食物的过程中不断变长,直到蛇头碰到游戏界面边缘或撞到自己的身体为止。贪吃蛇最早出现在20世纪70年代,现在已经成为了一个非常流行的休闲游戏。本项目可在Linux环境运行,使用ncurses库获取用户键盘输入,和界面刷新,并用线程让两个循环一起执行。文中贪吃蛇的移动使用二维数组实现。
一.运行环境
Linux 是一种自由和开放源代码的类 Unix 操作系统,它最初是由林纳斯·托瓦兹在1991年创建的。它被广泛用于服务器及其他大型计算机系统上,也被应用于个人电脑和移动设备这样的嵌入式系统上。Linux 操作系统具有高度的可定制性、安全性、稳定性和可靠性,可用于各种不同的用途。它是开源软件运动的一部分,意味着它的源代码是公开的,可以被任何人自由地使用、修改和分发。
二.ncurses库的使用
1.安装ncueses库
$ sudo apt-get install libncurses5-dev libncursesw5-dev //Ubuntu
2.引用头文件
#include <curses.h>
编译时要链接 -lcurses
1)initscr(); 初始化屏幕,启动curses模式
2)getch(); 获取一个字符 例: int c = getch();
3)endwin(); 退出curses模式
4)move(0,0); 锁定光标在(0:0)
5)refresh(); 刷新界面
6)noecho(); 不显示按键符号
7)printw(); 和printf一样在终端输入
8)在Ncurses中使用功能键必须调用:key(stdscr,1);
三.图形界面规划
定义二维数组map[20][20];
规定数组大于0打印蛇身,数组小于0打印食物
实现两个功能计时和得分
void mymap(){
move(0,0);
int i;
int j;
tTime++;
second++;
if(second > 60)
{
second = 0;
minute++;
}
if(minute > 60)
{
minute = 0;
hour++;
}
for(i=0;i<20;i++){
for(j=0;j<20;j++){
if((i==0)||(i==19)||(j==0)||(j==19)){
printw("$$");
}
else if(map[i][j]>=1){
printw("()");
}
else if(map[i][j]==-1){