資源簡介
Linux環(huán)境下貪吃蛇源代碼,基于C語言實(shí)現(xiàn)的。用到知識(shí)點(diǎn)包括雙鏈表,文件操作,frame buffer接口,鍵盤接口等等。實(shí)現(xiàn)了隨機(jī)生成實(shí)物,游戲暫停,運(yùn)行,退出狀態(tài)顯示,退出時(shí)提示是否保存,下次運(yùn)行時(shí)可以加載。也可以手動(dòng)設(shè)定起始長度,起始速度,以及速度和成績的顯示。
代碼片段和文件信息
#include?“fb.h“
#include?
struct?fb_info?fb;
int?fb_init(void)
{
int?w?h?bpp;
char?*?addr;
int?fd?ret;
struct?fb_var_screeninfo?var;
fd?=?open(“/dev/fb0“?O_RDWR);
if(fd?0)
return?-1;
ret?=?ioctl(fd?FBIOGET_VSCREENINFO?&var);
if(ret?0)
return?-1;
//w?=?var.xres+10;//1366*768
w?=?var.xres;//1280*720
h?=?var.yres;
bpp?=?var.bits_per_pixel/8;
printf(“w?=?%d?h?=?%d?bpp?=?%d\n“?w?h?bpp);
addr?=?mmap(NULL?w*h*bpp?PROT_WRITE|PROT_READ?MAP_SHARED?fd?0);
if(addr?==?MAP_FAILED)
return?-1;
fb.w?=?w;
fb.h?=?h;
fb.bpp?=?bpp;
fb.addr?=?addr;
close(fd);
return?0;
}
int?fb_destroy(void)
{
munmap(fb.addr?fb.w*fb.h*fb.bpp);
return?0;
}
int?fb_pixel(int?x?int?y?int?c)
{
char?*?l?*?p;
l?=?fb.addr?+?y?*?fb.w?*?fb.bpp;
p?=?l?+?x?*?fb.bpp;
*(int?*
?屬性????????????大小?????日期????時(shí)間???名稱
-----------?---------??----------?-----??----
?????文件??????15870??2014-08-16?16:27??snake\main
?????文件?????????27??2014-08-16?16:40??snake\map.dat
?????文件???????2131??2014-08-14?09:57??snake\keyboard.c
?????文件????????300??2014-06-12?19:02??snake\fb.h
?????文件???????9699??2014-08-16?16:27??snake\main.c
?????文件????????273??2013-11-01?16:21??snake\keyboard.h
?????文件?????????46??2014-08-12?18:24??snake\makefile
?????文件????????822??2014-08-16?15:56??snake\fb.c
?????文件????????620??2014-08-19?07:24??snake\readme.txt
?????目錄??????????0??2014-08-16?16:53??snake
?????文件????????165??2014-08-16?16:53??snake\README
-----------?---------??----------?-----??----
????????????????29953????????????????????11
- 上一篇:備忘錄C語言實(shí)現(xiàn)
- 下一篇:libstdc++.so.5
評(píng)論
共有 條評(píng)論