C语言贪吃蛇实验报告

2026/4/24 17:30:32

运动速度*/ }

break; case 27: exit(0); default:

switch(key1){ case 72:

while(!kbhit()&&judgeGO(snake)) {

upmove(snake);/*上键函数控制蛇向上运动*/ draw(snake); }

break; case 80:

while(!kbhit()&&judgeGO(snake)) {

downmove(snake);/*下键函数控制蛇向下运动*/ draw(snake); }

break; case 75:

while(!kbhit()&&judgeGO(snake)) {

leftmove(snake);/*左键函数控制蛇向左运动*/ draw(snake); }

break; case 77:

while(!kbhit()&&judgeGO(snake) ) {

rightmove(snake);/*右键函数控制蛇蛇向右运动*/ draw(snake); }

break; } } }

/*---------------------------------------------------*/ /*------------是否继续游戏---------------------------*/ gameover();/*判断游戏是否继续的函数*/ if(getch()==27) exit(0); else {

marksn();

12

getch(); }

/*---------------------------------------------------*/ }

/*-------------------------------------------------*/

/*-----------上下左右移动神马的--------------------*/

void downmove(int (*sna)[17])/*控制蛇向下运动的函数*/ {

int x=0,y=0,mark=0; for(x=0;x<16;x++) {

for(y=0;y<16;y++) {

if(sna[x][y]!=0&&sna[x][y]!=HEAD&&sna[x][y]!=FOOD) {

sna[x][y]=sna[x][y]-1;//前面已经说了,12345....标记法,减去1的话,除了头部以外其他的就移动了。 } } }

for(x=0;x<16;x++) {

for(y=0;y<16;y++) {

if(mark

if(sna[x][y]!=HEAD&&sna[x][y]!=FOOD)

mark=sna[x][y];//这个是求头部之后的值。 } }

for(x=0;x<16;x++) {

for(y=0;y<16;y++) {

if(sna[x][y]==HEAD) {

sna[x+1][y]=HEAD;//头部的移动, sna[x][y]=mark+1;//头部的赋值。 return; } } } }

void upmove(int (*sna)[17])/*控制蛇向上运动的函数*/ {

int x=0,y=0,mark=0; for(x=0;x<16;x++)

13

{

for(y=0;y<16;y++) {

if(sna[x][y]!=0&&sna[x][y]!=HEAD&&sna[x][y]!=FOOD) {

sna[x][y]=sna[x][y]-1; } } }

for(x=0;x<16;x++) {

for(y=0;y<16;y++) {

if(mark

if(sna[x][y]!=HEAD&&sna[x][y]!=FOOD) mark=sna[x][y]; } }

for(x=0;x<16;x++) {

for(y=0;y<16;y++) {

if(sna[x][y]==HEAD) {

sna[x-1][y]=HEAD; sna[x][y]=mark+1; return; } } } }

void leftmove(int (*sna)[17])/*控制蛇向左运动的函数*/ {

int x=0,y=0,mark=0; for(x=0;x<16;x++) {

for(y=0;y<16;y++) {

if(sna[x][y]!=0&&sna[x][y]!=HEAD&&sna[x][y]!=FOOD) {

sna[x][y]=sna[x][y]-1; } } }

for(x=0;x<16;x++) {

14

for(y=0;y<16;y++) {

if(mark

if(sna[x][y]!=HEAD&&sna[x][y]!=FOOD) mark=sna[x][y]; } }

for(x=0;x<16;x++) {

for(y=0;y<16;y++) {

if(sna[x][y]==HEAD) {

sna[x][y-1]=HEAD; sna[x][y]=mark+1; return; } } } }

void rightmove(int (*sna)[17])/*控制蛇向右运动的函数*/ {

int x=0,y=0,mark=0; for(x=0;x<16;x++) {

for(y=0;y<16;y++) {

if(sna[x][y]!=0&&sna[x][y]!=HEAD&&sna[x][y]!=FOOD) {

sna[x][y]=sna[x][y]-1; } } }

for(x=0;x<16;x++) {

for(y=0;y<16;y++) {

if(mark

if(sna[x][y]!=HEAD&&sna[x][y]!=FOOD) mark=sna[x][y]; } }

for(x=0;x<16;x++) {

for(y=0;y<16;y++)

15


C语言贪吃蛇实验报告.doc 将本文的Word文档下载到电脑
搜索更多关于: C语言贪吃蛇实验报告 的文档
相关推荐
相关阅读
× 游客快捷下载通道(下载后可以自由复制和排版)

下载本文档需要支付 10

支付方式:

开通VIP包月会员 特价:29元/月

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信:xuecool-com QQ:370150219