資源簡(jiǎn)介
本人大一剛學(xué)C,主要通過(guò)此工程進(jìn)行鞏固知識(shí)(注:編譯需要EGE圖形庫(kù))
編譯環(huán)境為VC6.0
代碼片段和文件信息
#include
#include
#include???????????????
#include
#include?
int?xy;?????????????????
int?food_xfood_y;?????????????//食物坐標(biāo)????
int?k=0u;????????????????????????//計(jì)分
int?mode[35][35];???????????????//構(gòu)造界面
char?str[10];??????????????????//name
enum{UPDOWNRIGHTLEFT}point;??//?枚舉方向
void?jiemian()???//開(kāi)始EGE界面
{
????initgraph(640480);
PIMAGE?img=newimage();
getimage(img“\\images\\11.jpg“);
putimage(00img);
delimage(img);
outtext(“按空格鍵開(kāi)始游戲界面......“);
???// setfont(80?30“測(cè)試“);
????//outtextxy(250150“游戲“);
setfont(-160“宋體“);
outtextxy(570440“By:WQQ“);
getch();
closegraph();
}
void?weiqiang()???????????//圍墻設(shè)置
{?
??setfillcolor(EGERGB(0x0?0x80?0x80));
??bar(04040480);
??bar(60040640480);
??bar(0440640480);
}
void?dayin()?????//?打印蛇身及食物
{????int?ij;???
?????weiqiang();
?????for(i=0;i<24;i++)
???????for(j=0;j<31;j++)
???{
?????if(mode[i][j]==2)
?{
????????????setfillcolor(hsl2rgb(float(randomf()?*?360)?1.0f?0.5f));
bar(20*j20*i20*j+2020*i+20);
?}
??????????if(mode[i][j]==3)
??{?????setfillstyle(SOLID_FILLEGERGB(125125125));
? bar(20*j20*i20*j+2020*i+20);
??}
???
???}
}
typedef?struct??snake??????//snake屬性???設(shè)置頭結(jié)點(diǎn)和尾節(jié)點(diǎn)??
{
???int?xy;
???struct?snake?*prior;
???struct?snake?*next;
}snake;
snake?*tail*head;??
void?addhead(int?aint?b)??????????????//增加頭結(jié)點(diǎn)
{struct?snake?*temp;
? temp=(struct?snake*)malloc(sizeof(struct?snake));??//開(kāi)辟內(nèi)存單元
temp->x=a;?????????????????????????????????????????//橫坐標(biāo)
temp->y=b;???????????????????????????????????????//縱坐標(biāo)
temp->prior=NULL;??????????????????????????????????
if(NULL==head)?????????????????????????????????????//如果開(kāi)始為空?那么temp既是頭結(jié)點(diǎn)又是尾節(jié)點(diǎn)
{
??head=tail=temp;
??head->next=NULL;?
}
else??????????????????????????????????????????????
{
???head->prior=temp;??????????????????????????????//將temp設(shè)為頭指針
???temp->next=head;???????????????????????????????//雙向鏈表
???head=head->prior;???????????????????????????????//head設(shè)置為頭指針
}
mode[a][b]=2;?????????//將節(jié)點(diǎn)處設(shè)置打印記號(hào)?蛇身為2!!!!!!
}
void?deletetail()??????????//刪除尾節(jié)點(diǎn)?????
{???
???mode[tail->x][tail->y]=0;??//打印記號(hào)?
???tail=tail->prior;?????????//尾節(jié)點(diǎn)前移
???tail->next=NULL;??????????//將尾節(jié)點(diǎn)下一位設(shè)為空??達(dá)到刪除目的
????free(tail->next);?????????//釋放內(nèi)存
}
void?init()??//初始化??(界面及蛇身)
{
??int?ij;
??????????for(i=1;i<=30;i++)???????
??{
?????mode[1][i]=mode[22][i]=1;//上下
??}
??????????? for(j=1;j<=22;j++)
{
mode[j][1]=mode[j][30]=1;??//左右
}
???head=tail;
???poin
評(píng)論
共有 條評(píng)論