| Snake snake; Frame frame; void main() { InitGraphMode(); do { CreateFrame(); }while(PlayGame()); CloseGraphMode(); } void InitGraphMode() { int gdriver=DETECT,gmode; initgraph(&gdriver,&gmode,"../bgi/"); cleardevice(); } void CloseGraphMode() { cleardevice(); closegraph(); } void CreateFrame() { setbkcolor(CYAN); //下面的四行代码用于计算主框架的左上角和右下角的坐标 frame.left=(getmaxx()+1-BlockWidth*RowOfFrame)/2; frame.top=(getmaxy()+1-BlockHeight*ColumnOfFrame)/2; frame.right=frame.left+BlockWidth*RowOfFrame; frame.bottom=frame.top+BlockHeight*ColumnOfFrame; Head(frame.left+100,frame.top-20); setfillstyle(SOLID_FILL,LIGHTGRAY); bar(frame.left,frame.top,frame.right,frame.bottom); setlinestyle(SOLID_LINE,1,1); setcolor(DARKGRAY); line(frame.left,frame.top,frame.right,frame.top); line(frame.left,frame.top,frame.left,frame.bottom); setlinestyle(SOLID_LINE,1,1); setcolor(WHITE); line(frame.left,frame.bottom,frame.right,frame.bottom); line(frame.right,frame.top,frame.right,frame.bottom); setlinestyle(DOTTED_LINE,1,1); setcolor(BLUE); for(int row=1;row<RowOfFrame;row++) line(frame.left+row*BlockWidth,frame.top,frame.left+row*BlockWidth,frame.bottom); for(int column=1;column<ColumnOfFrame;column++) line(frame.left,frame.top+column*BlockHeight,frame.right,frame.top+column*BlockHeight); Foot(frame.left,frame.bottom+20); } |