您的位置:求问网 > 杂谈 > >正文

​c语言贪吃蛇最简单代码

摘要c语言贪吃蛇最简单代码 #include ltstdio.hgt #include ltwindows.hgt #include lttime.hgt #include ltconio.hgt #define frame_height 20 //define map size #define frame_width 40 #define UP w //define operate key #define DOWN s #define L...

c语言贪吃蛇最简单代码

c语言贪吃蛇最简单代码

#include &ltstdio.h&gt

#include &ltwindows.h&gt

#include &lttime.h&gt

#include &ltconio.h&gt

#define frame_height 20 //define map size

#define frame_width 40

#define UP w //define operate key

#define DOWN s

#define LEFT a

#define RIGHT d

int i,j,k

char ch=UP //initial direction

int grow=0 //flag: if snake grow

struct Food{

int x

int y

}food

struct Snake{

int x[50]

int y[50]

int len

int speed

}snake //snake[0] is head

void init_map(void)

void update_food(void)

void move_snake(void)

int is_alive(void)

void get_speed(void)

void gotoxy(int x, int y)

int main()

{

init_map() //初始化地图

while(1)

{

update_food() //是否产生食物

get_speed() //获取速度

move_snake() //移动蛇身

Sleep(snake.speed) //移动速度

if(!(is_alive())) //蛇的死活(撞墙或自食)

break

}

printf("Game Over!")

getch()

return 0

}

//initialize

void init_map(void)

{

//initial food

srand(time(NULL))

food.x=rand()%(frame_height-2)+1

food.y=rand()%(frame_width-2)+1

gotoxy(food.x, food.y)

printf("!")

//initial snake

snake.x[0]=frame_height/2

snake.y[0]=frame_width/2

gotoxy(snake.x[0], snake.y[0])

printf("@")

snake.len=3

snake.speed=200

for(k=1k&ltsnake.lenk++)

{

snake.x[k]=snake.x[k-1]+1

snake.y[k]=snake.y[k-1]

gotoxy(snake.x[k], snake.y[k])

printf("@")

}

//initial bar

for(j=0j&ltframe_widthj++)

{

gotoxy(0, j)

printf("#")

gotoxy(frame_height-1, j)

printf("#")

}

for(i=1i&ltframe_height-1i++)

{

gotoxy(i, 0)

printf("#")

gotoxy(i, frame_width-1)

printf("#")

}

}

//generate food

void update_food()

{

if(snake.x[0]==food.x&amp&ampsnake.y[0]==food.y)

{

srand(time(NULL))

food.x=rand()%(frame_height-2)+1

food.y=rand()%(frame_width-2)+1

gotoxy(food.x, food.y)

printf("!")

snake.len++

grow=1

}

}

//move snake

void move_snake()

{

if(kbhit())

ch=getch()

if(!grow)

{

gotoxy(snake.x[snake.len-1], snake.y[snake.len-1])

printf(" ")

}

for(k=snake.len-1k&gt0k--)

{

snake.x[k]=snake.x[k-1]

snake.y[k]=snake.y[k-1]

}

switch(ch)

{

case UP: snake.x[0]--break

case DOWN: snake.x[0]++break

case LEFT: snake.y[0]--break

case RIGHT: snake.y[0]++break

default: break

}

gotoxy(snake.x[0], snake.y[0])

printf("@")

grow=0

gotoxy(frame_height, 0)

}

//is alive

int is_alive(void)

{

if(snake.x[0]==0||snake.x[0]==frame_height-1||snake.y[0]==frame_width-1||snake.y[0]==0)

return 0

for(k=1k&ltsnake.lenk++)

if(snake.x[k]==snake.x[0]&amp&ampsnake.y[k]==snake.y[0])

return 0

return 1

}

//speed up

void get_speed(void)

{

if(snake.len&lt=6) snake.speed=200

else if(snake.len&lt=10) snake.speed=100

else if(snake.len&lt=20) snake.speed=50

else if(snake.len&lt=30) snake.speed=30

else snake.speed=20

}

//move cursor

void gotoxy(int x, int y)

{

HANDLE hout

COORD cor

hout=GetStdHandle(STD_OUTPUT_HANDLE)

cor.X=y

cor.Y=x

SetConsoleCursorPosition(hout,cor)

}

标签:

推荐阅读

  • ​朱瞻基三十八岁就突然离世了 朱瞻基真正的死因是什么

    朱瞻基三十八岁就突然离世了 朱瞻基真正的死因是什么 对朱瞻基之死很感兴趣的小伙伴们,趣历史小编带来详细的文章供大家参考。 要说历史上最有个性的一群皇帝,那莫过于明朝的...

    2025-11-29 04:37:40
  • ​史万岁一生为隋朝做了巨大贡献,为何会被隋文帝赐死?

    史万岁一生为隋朝做了巨大贡献,为何会被隋文帝赐死? 据《隋书》记载,史万岁“年轻勇敢,善于骑射,强壮灵活,善于阅读军事书籍”,擅长占卜。下面趣历史小编就为大家带来详...

    2025-11-29 04:35:25
  • ​super juniorD&E赫海高甜合集,李东海把所有的情话都说给了银赫

    super juniorDE赫海高甜合集,李东海把所有的情话都说给了银赫 都说李赫宰宠李东海,我们李总眼里没有镜头,只有东海,牙龈收也收不住。 但是我们赫海是双箭头的呀~移动嘿大概把所...

    2025-11-29 04:33:10
  • ​儿童急走追黄蝶的走是什么意思

    儿童急走追黄蝶的走是什么意思 电子教材 知识点 我会写: 杂:杂色 杂事 杂技 夹杂 人多手杂 稀:稀疏 稀客 稀少 稀有 稀粥 稀饭 篱:篱笆 竹篱茅舍 寄人篱下 蜻:蜻蜓 蜻蜓点水 蜓...

    2025-11-28 17:27:06
  • ​倍耐力轮胎是世界享有盛名的轮胎公司之一,以跨时代的技术

    倍耐力轮胎是世界享有盛名的轮胎公司之一,以跨时代的技术 倍耐力轮胎是世界享有盛名的轮胎公司之一,以跨时代的技术,高标准的生产卓越性和对创新的热切追求闻名于世,具有...

    2025-11-28 17:24:51
  • ​洗衣机的清洁秘籍

    洗衣机的清洁秘籍 洗衣机的清洁秘籍,80%的人都忽略了1⃣️洗衣机右下角是排污口,要定期清理哦⭕️第一步,就是这个右下角的小门!按照小门上面的一个小按钮,往下摁一下,各...

    2025-11-28 17:22:35
  • ​琼瑶丈夫平鑫涛仙逝,他们开启的琼瑶影视宇宙缘起,叫《六个梦》

    琼瑶丈夫平鑫涛仙逝,他们开启的琼瑶影视宇宙缘起,叫《六个梦》 据台媒消息,皇冠集团创办人,著名作家琼瑶的丈夫平鑫涛先生于5月23日过世,享年92岁,后事一切低调从简,用的...

    2025-11-28 17:19:26
  • ​44岁长公主突传脑死亡,泰国王室继承者之争再生变故

    44岁长公主突传脑死亡,泰国王室继承者之争再生变故 (全文共8052个字) 好多天没写文章了,因为之前阳了几天,刚刚转阴。 在浑身疼痛、要死要活的时候,忽然在微博上刷到了泰国...

    2025-11-28 17:17:11
  • ​在南宁的玉林人,神一样的存在

    在南宁的玉林人,神一样的存在 在南宁的所有外地人当中,玉林人是最为特别的——首先是特别多,各行各业,满满的都是他们的身影;其次是特别有影响力。很多行业,玉林人都牢牢...

    2025-11-28 17:14:56
  • ​杨记隆府,民国江湖菜,百年传承重庆老味道

    杨记隆府,民国江湖菜,百年传承重庆老味道 杨记隆府,民国江湖菜,百年传承重庆老味道! 杨记隆府始创于1942年,第一代掌门杨鸣凤以承袭自明代万历年间的家传手艺,与传统江湖...

    2025-11-28 17:12:41
  • ​我走了你别再难过是什么歌(歌曲真的好想你)

    我走了你别再难过是什么歌(歌曲真的好想你) 有人说,感觉自己好像是一艘在茫茫大海中漂泊了很久的船,海面上弥漫着浓雾,不知道终点在哪里,也不知道自己该去往何方。很想知...

    2025-11-28 17:10:26
  • ​下一部历史剧爆款,我押他

    下一部历史剧爆款,我押他 爆火的电视剧《长安十二时辰》由马伯庸同名原著改编。 “非虚构作品改编成影视作品,你既要保证它有戏剧性,同时又要维持作品本身的历史丰满度和质...

    2025-11-28 17:08:11
  • ​为“敦煌女儿” 拍一部电影 目睹灵魂的卓越|大道②

    为“敦煌女儿” 拍一部电影 目睹灵魂的卓越|大道② △△樊锦诗(图片由苗月提供) 【人物简介】 樊锦诗,女,1938年7月生,生于北京,长于上海,祖籍杭州。1958年考入北京大学历...

    2025-11-28 17:05:56
  • ​大学生创业计划书风险资本退出(大学生创新创业项目计划书投资者退出方式)

    大学生创业计划书风险资本退出(大学生创新创业项目计划书投资者退出方式) 多年来,对创业公司和投资机构来说,退出的方式一直都相对简单——要么公司上市,要么公司被收购。...

    2025-11-28 17:03:41
  • ​农家大锅炖鱼的做法

    农家大锅炖鱼的做法 主料 鲤鱼一条,白菜适量 辅料 姜适量,葱适量,蒜适量,香菜适量,大酱适量,糖适量,蚝油适量,生抽适量,五香粉适量,干辣椒适量 1、 鱼去鳞洗净后,去腥...

    2025-11-28 02:56:47
  • ​徐悲鸿著名的十大画

    徐悲鸿著名的十大画 《萧声》、《愚公移山图》、《双鹊》、《漓江春雨》、《九方皋》、《老妇》、《田横五百士》、《日长如小年》、《巴人汲水》、《山鬼》、《群马》、《徯我...

    2025-11-28 02:54:33
  • ​数码宝贝tri.-缅因猫兽不走邪恶进化路线,你还会喜欢它吗?

    数码宝贝tri.-缅因猫兽不走邪恶进化路线,你还会喜欢它吗? 大家好,这里是宅也可以很开心的宅同学~动漫数码宝贝tri.已经完结了一段时间,相信大家对发狂的缅因猫兽一定留下了深...

    2025-11-28 02:52:17
  • ​同光十三绝同指的是谁 同光十三绝介绍

    同光十三绝同指的是谁 同光十三绝介绍 最近不少的网友对这个同光十三绝比较感兴趣,因为是真的有听说过这个东西,所以很多人也还是非常好奇了,但是又不具体的知道这个同光十...

    2025-11-28 02:50:03
  • ​韩国知性美女申敏儿

    韩国知性美女申敏儿 申敏儿(Shin Min A),本名“杨慜娥”,1984年4月5日出生于韩国首尔市。韩国女演员、模特,毕业于韩国东国大学。1998年,14岁的申敏儿陪同朋友参加KIKI专属模特比...

    2025-11-28 02:47:48
  • ​上海到法兰克福机票(法兰克福机票多少钱)

    上海到法兰克福机票(法兰克福机票多少钱) 上海到法兰克福机票价格变化很大,具体取决于时间、航空公司和预定时间。一般而言,旺季价格更高,淡季价格更便宜。推荐提前预定,可...

    2025-11-28 02:45:33