您好,現(xiàn)在蔡蔡來為大家解答以上的問題。c語言小游戲代碼越短越好,c語言小游戲代碼相信很多小伙伴還不知道,現(xiàn)在讓我們一起來看看吧!
1、“貪吃蛇”C代碼,在dev C++試驗(yàn)通過(用4個(gè)方向鍵控制)#include
2、因?yàn)檫@個(gè)要打印的字符占2個(gè)位置?? {Color(2); ? //設(shè)定打印顏色為綠色? ?? gtxy(i,0); ?printf("■"); ?//打印上邊框? ?? gtxy(i,H); printf("■"); ?//打印下邊框?? }?for(i=1;i 3、這兒用來暫停? }? if (Flag==0) ? //如沒吃食物,才執(zhí)行下面操作擦掉蛇尾? ?? { gtxy(snk.x[***.len-1],snk.y[***.len-1]); ?printf("?"); }?int i;?for (i = ***.len - 1; i > 0; i--) ?//從蛇尾起每節(jié)存儲前一節(jié)坐標(biāo)值(蛇頭除外)?????? { snk.x[i]=snk.x[i-1]; ?snk.y[i]=snk.y[i-1]; }?switch (dir)? //判斷蛇頭該往哪個(gè)方向移動,并獲取最新坐標(biāo)值?????? { case 1: snk.y[0]--; break; ??//dir=1要向上移動?????? ? case 2: snk.y[0]++; break;? //dir=2要向下移動?????? ? case 3: snk.x[0]-=2; break;? //dir=3要向左移動?????? ? case 4: snk.x[0]+=2; break;? //dir=4要向右移動?????? }?Color(9);? gtxy(snk.x[0], snk.y[0]); printf("■"); ? //打印蛇頭? if (snk.x[0] == fod.x && snk.y[0] == fod.y) ? //如吃到食物則執(zhí)行以下操作? ?? { printf("7"); ***.len++; score += 100; ***.speed -= 5; Flag = 1; } //7是響鈴? else Flag = 0; ? //沒吃到食物Flag的值為0? if(***.speed<150) ***.speed= ***.speed+5; ? //作弊碼。 4、不讓速度無限加快}void putFod( )? //投放食物{ if (Flag == 1)? //如吃到食物才執(zhí)行以下操作,生成另一個(gè)食物? ??{ while (1)?????? ??{ int i,n= 1;?????? ???srand((unsigned)time(NULL));? //初始化隨機(jī)數(shù)發(fā)生器srand( )?????? ? ?fod.x = rand( ) % (W - 4) + 2;? //產(chǎn)生在游戲框范圍內(nèi)的一個(gè)x坐標(biāo)值?????? ? ?fod.y = rand( ) % (H - 2) + 1;? //產(chǎn)生在游戲框范圍內(nèi)的一個(gè)y坐標(biāo)值?????? ? ?for (i = 0; i < ***.len; i++) ??//隨機(jī)生成的食物不能在蛇的身體上????????????? ?{ if (fod.x == snk.x[i] &&fod.y == snk.y[i]) { n= 0; break;} }?????? ???if (n && fod.x % 2 == 0) break; ?//n不為0且橫坐標(biāo)為偶數(shù),則食物坐標(biāo)取值成功?????? ??}? ? ?? Color(12);? //設(shè)定字符為紅色? ? ?? gtxy(fod.x, fod.y); ?printf("●"); ? //光標(biāo)到取得的坐標(biāo)處打印食物? ? }?? return;}int Over( )? //判斷游戲是否結(jié)束的函數(shù){ int ?i;? Color(7);? gtxy(2,H+1); printf(“暫停鍵:space.”); ?//以下打印一些其它信息? gtxy(2,H+2); printf(“游戲得分:%d”,score);? if (snk.x[0] == 0 || snk.x[0] == W) return 1;? //蛇頭觸碰左右邊界? if (snk.y[0] == 0 || snk.y[0] == H) return 1;? //蛇頭觸碰上下邊界? for (i = 1; i < ***.len; i++)?????? { if (snk.x[0] == snk.x[i] && snk.y[0] == snk.y[i]) return 1; }? //蛇頭觸碰自身? return 0; ?? //沒碰到邊界及自身時(shí)就返回0}void Color(int a) ? //設(shè)定顏色的函數(shù){? SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE ),a );? }。 本文就為大家分享到這里,希望小伙伴們會喜歡。