- 1、本文档共12页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
贪吃蛇C程序(gtk)
贪吃蛇源程序
#include gtk/gtk.h
#include stdlib.h
#include unistd.h
#include string.h
#define length 10/*最长蛇节数*/
#define side 24/*每节蛇身以及食物的边长*/
#define p_prize 20/*特殊食物概率*/
GtkWidget *window;/*定义窗体*/
GtkWidget *fixed;/*定义固定容器构件*/
GtkWidget *snake[length];/*蛇的节数*/
GtkWidget *food[length];/*食物数*/
GtkWidget *border_up;/*上边界*/
GtkWidget *border_down;/*下边界*/
GtkWidget *border_left;/*左边界*/
GtkWidget *border_right;/*右边界*/
GtkWidget *game_score_label;/*当前分数标签*/
GtkWidget *game_score[2*length-12];/*当前分数值*/
GtkWidget *game_pause;/*游戏暂停*/
GtkWidget *game_speed_label;/*速度调节标签*/
GtkWidget *game_speed[4];/*当前速度*/
GtkWidget *death;/*游戏失败提示窗口*/
GtkWidget *win;/*游戏通关提示窗口*/
GtkWidget *direction[4];/*改变蛇的方向*/
GdkColor color[20];/*颜色值*/
gint function(gpointer data);/*主体函数*/
void up(void);/*往上*/
void down(void);/*往下*/
void left(void);/*往左*/
void right(void);/*往右*/
gboolean key_control(GtkWidget *widget,GdkEventKey *event);//键盘
void show_pause(void);/*暂停|开始游戏*/
void speed_control0(void);/*速度控制*/
void speed_control1(void);
void speed_control2(void);
void eat(void);/*吃到食物*/
void showwin(void);/*游戏通关*/
void showdeath(void);/*游戏结束*/
gpointer data;
gint sign;/*定时器*/
int i=0;/*暂停 开始状态标记*/
int j=0;/*累加变量*/
int j1=0;
int k=0;/*未设置速度前为0 游戏过程中为1 游戏结束时为-1*/
int snake_x[length],snake_y[length],food_x[length],food_y[length];/*蛇及食物的坐标位置数组*/
int flag=3;/*方向标记*/
int jieshu=6;/*蛇当前节数*/
int stop=1;/*蛇停止运动时stop=1*/
int speed=0;
int op_speed[3]={100,300,500};
int prize[2*length-12]={0};
char score[41][8]={0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40};
char dir[4][4]={上,下,左,右};/*四个方向键的显示值*/
int main(int argc,char *argv[ ])
{
gtk_init(argc,argv);/*初始化*/
window=gtk_window_new(GTK_WINDOW_TOPLEVEL);/*游戏窗口*/
gdk_color_parse (#00F0F0, color[0]);
gdk_color_parse (#F00000, color[1]);
gdk_color_parse (#0F0000, color[2]);
gdk_color_parse (#00F000, color[3]);
gdk_color_parse (#000F00, color[4]);
gdk_color_parse (#0000F0, color[5]);
文档评论(0)