main.c
#include <stdio.h>
#include "snake.h"
char * s_gets(char *st, int n);
void start(snake *ps, food *pd, score *ft); //开始游戏
void open(FILE *pf,score *ps,score *pt); // 打开记录文件
void show(FILE *sp,score *ps); //打印排行
void Interface(void); //游戏界面
int number(void); //游戏选项
int wasd = 'a'; //控制方向
int flag = 1; //控制食物生成
int main(int argc, char *argv[]) {
FILE *sp; // 指向保存数据的二进制文本
int i;
snake snakes; //蛇 分数
score scores[SCORE]; //记录分数,姓名
score ft; //单局的分数,姓名
food pd; //食物
srand((unsigned int) time(0));
Interface();//游戏界面
i = number();//游戏选项
while(i != '3')
{
switch(i)
{
case '1':
start(&snakes,&pd,&ft); //开始游戏
open(sp,scores,&ft); //记录分数
break;
case '2':
show(sp,scores); //查看记录的分数
break;
}
Interface();//游戏界面
i = number();
}
gotoxy(0,0);
printf("帅哥在来玩啊!");
return 0;
}
void show(FILE *sp,score *ps) //打印排行
{
int i,m;
space();
int x, y;
sp = fopen("123.txt","rb");
rewind(sp);
i=0;
while(fread(&ps[i],sizeof(score),1,sp)>0)
i++;
fclose(sp);
for(x=MOVE;x<WRID+MOVE;x+=2)
{
gotoxy(x, 0);
printf(WALL);
gotoxy(x,HIGH);
printf(WALL);
}
for(y=1;y<HIGH;++y)
{
gotoxy(MOVE,y);
printf(WALL);
gotoxy(WRID+MOVE-2,y);
printf(WALL);
}
if(i == SCORE)
{
for(m=0;m<i;m++)
{
gotoxy((WRID+MOVE)/2-6,HIGH/2-2+m);
printf("%d:姓名:%-6s 分数: %d ",m+1,ps[m].name,ps[m].count);
}
}
else if(i < SCORE && i >0)
{
for(m=0;m<i;m++)
{
gotoxy((WRID+MOVE)/2-6,HIGH/2-2+m);
printf("%d:姓名:%-6s 分数: %d ",m+1,ps[m].name,ps[m].count);
}
for(m=i;m<SCORE;++m)
{
gotoxy((WRID+MOVE)/2-6,HIGH/2-2+m);
printf(