Code:
short snakepos[897][2] = {39, 11}, applepos[2], key, alive = 1, do_over, err, score[2] = {0, 0}, i, i2, i3 = 0;
short speed[2] = {8, 62}, size = 5, dir[2], sizeincrease = 3, allowpause = 1, beep = 0, wrap = 1, applecount = 1, colors[3][2] = {{3, 0},{12, 4},{2, 11}}, staticspeed = 0;
long timeout;
unsigned char snake = 177, apple[2] = {178, 176}, screen[81] = "", area[80][23], test[2], filename[260];
FILE *settings;
int main(int argc, char *argv[])
{
randomize();
// Loop for playing the game again
while (1) {
// Read settings
if (argc >= 3)
strcpy(filename, argv[2]);
else
strcpy(filename, "settings.cfg");
if (settings = fopen(filename, "r")) {
while (1) {
fscanf(settings, "%s%*c", screen);
if (strstr(screen, "SNAKE=")) {
getvalue(6);
snake = strtol(screen, NULL, 10);
}
else if (strstr(screen, "APPLE=")) {
getvalue(6);
apple[0] = strtol(screen, NULL, 10);
apple[1] = strtol(strchr(screen, ',') + 1, NULL, 10);
}
else if (strstr(screen, "APPLECOUNT=")) {
getvalue(11);
applecount = strtol(screen, NULL, 10);
}
else if (strstr(screen, "SIZEINCREASE=")) {
getvalue(13);
sizeincrease = strtol(screen, NULL, 10);
}
else if (strstr(screen, "SPEED=")) {
getvalue(6);
setspeed(strtol(screen, NULL, 10));
}
else if (strstr(screen, "STARTPOSITION=")) {
getvalue(14);
snakepos[0][0] = strtol(screen, NULL, 10) + 1;
snakepos[0][1] = strtol(strchr(screen, ',') + 1, NULL, 10) + 1;
}
else if (strstr(screen, "STARTSIZE=")) {
getvalue(10);
size = strtol(screen, NULL, 10);
}
else if (strstr(screen, "BEEP=")) {
getvalue(5);
beep = strtol(screen, NULL, 10);
}
else if (strstr(screen, "ALLOWPAUSE=")) {
getvalue(11);
allowpause = strtol(screen, NULL, 10);
}
else if (strstr(screen, "WRAP=")) {
getvalue(5);
wrap = strtol(screen, NULL, 10);
}
else if (strstr(screen, "STATICSPEED=")) { // BLARGH! Doesn't work. Help!
getvalue(12);
staticspeed = strtol(screen, NULL, 10);
}
else if (strstr(screen, "BACKGROUNDCOLOR=")) {
getvalue(16);
colors[0][0] = strtol(screen, NULL, 10);
colors[0][1] = strtol(strchr(screen, ',') + 1, NULL, 10);
}
else if (strstr(screen, "APPLECOLOR=")) {
getvalue(11);
colors[1][0] = strtol(screen, NULL, 10);
colors[1][1] = strtol(strchr(screen, ',') + 1, NULL, 10);
}
else if (strstr(screen, "SNAKECOLOR=")) {
getvalue(11);
colors[2][0] = strtol(screen, NULL, 10);
}
else if (strstr(screen, "SCORECOLOR=")) {
getvalue(11);
colors[2][1] = strtol(screen, NULL, 10);
}
else {
fclose(settings);
break;
}
}
//There's more too but this the necessary stuff
The getvalue function: