c语言控制台贪吃蛇

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(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值