开发一个C程序时,你选择命令行方式开发还是集成环境方式开发?比较这两种方式的优劣,你在选择开发工具时应该如何考虑。
能用开发环境就用开发环境。没有开发环境才用命令方式。
命令方式适合没有图形界面的服务器或者远程终端、需要和自动化工具集成,比如说批量构建,你搭建一个oj一类的网站或者做一个开发工具,那么后端调用命令。
总之,命令是给机器用的,人有方便的不用,是自找麻烦。
保存游戏数据
void save_game()
{
FILE *fp;
if ((fp = fopen("information.dat","w")) == NULL)
{
printf("open file fail,at read_information-if-1.\n");
return;
}
fwrite("SNAKE",5,1,fp);
fwrite(&ver,4,1,fp);
fwrite(&snake_length,4,1,fp);
fwrite (&cur_dir,4,1,fp);
psnake p;
p = link_head;
while (p != NULL)
{
fwrite (&p->data,sizeof(Snake_data),1,fp);
p = p->next;
}
fwrite (food,sizeof(pfood),1,fp);
fwrite(&score,4,1,fp);
fwrite(&speed,4,1,fp);
fclose(fp);
fp=NULL;
}
读取游戏数据
void read_game()
{
int n,t = 1;
signed int read_dir;
char buf[6];
FILE *fp;
if ((fp = fopen("information.dat","r")) == NULL)
{
init_food();
init_snake();
printf("open file fail,at read_information-if-1.\n");
return;
}
if(fp) fclose(fp);
fp = fopen("information.dat","r");
fread(buf,5,1,fp);
if (strncmp(buf,"SNAKE",5) != 0)
{
init_food();
init_snake();
}
else
{
fread (&ver,4,1,fp);
if (ver == 1)
{
int i;
fread (&snake_length,4,1,fp);
fread (&read_dir,4,1,fp);
psnake p,ptail;
for (i = 0; i < snake_length; i++)
{
p = (psnake)malloc(sizeof(psnake));
if (p ==NULL)
{
printf("malloc fail,at read_information\n");
return;
}
fread(&p->data,sizeof(Snake_data),1,fp);
if (t == 1)
{
link_head = p;
ptail = p;
t = 0;
}
else
{
ptail->next = p;
ptail = p;
}
}
ptail->next = NULL;
snake_head = ptail;
cur_dir = read_dir;
food = (pfood)malloc(sizeof(pfood));
fread(food,sizeof(pfood),1,fp);
fread (&score,4,1,fp);
fread (&speed,4,1,fp);
}
else if (n == 1)
{
init_food();
init_snake();
}
}
fclose(fp);
fp = NULL;
}
暂停游戏。游戏过程中可暂停、可继续,暂停时也可保存并退出游戏。
int stop_game() //游戏暂停(可保存退出)
{
char ch;
MOVETO(11,3);
printf("Game stoping,Press space to continu");
while (1)
{
if ((ch = getchar()) == 'q')
{
MOVETO(1,25);
save_game();
RestoreConsole();
return 0;
}
else if ((ch = getchar()) == ' ')
return 1;
}
}