So I am trying to make an text based game in C and I'm not sure if there is an way to automate doing this:
int karte_plans() {
printf("\n ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ ▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬ ");
printf("\n┃----------------------------------------------------------------------------┃ ┃ ┃ ┃ ┃");
printf("\n┃********************************** Karte ***********************************┃ ┃ Pilsēta ┃ Apskates objekti ┃ EU Stacija ┃");
printf("\n┃----------------------------------------------------------------------------┃ ┃ ┃ ┃ ┃");
printf("\n┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃ ┃ ┃ ┃ ┃");
printf("\n┃ * / _/ ^___/ / `^ ┃ ┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃");
printf("\n┃ | __/ | | ┃ ┃ ┃ ┃ ┃ ┃");
printf("\n┃ ^___ ____/ .* | | ┃ ┃ Rīga ┃ 1 ┃ 2 ┃ A ┃");
printf("\n┃ _|| / ___________ _/ ┃ ┃ ┃ ┃ ┃ ┃");
printf("\n┃ / / |___/ ^ / ┃ ┃ ┃ ┃ ┃ ┃");
printf("\n┃ /_/ / ^ ___/ ┃ ┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃");
printf("\n┃ | ^_/ | ┃ ┃ ┃ ┃ ┃ ┃");
printf("\n┃ . * | |_ ┃ ┃ Tukums ┃ 3 ┃ 4 ┃ B ┃");
printf("\n┃ __/ | | ` ┃ ┃ ┃ ┃ ┃ ┃");
printf("\n┃ __/ `_ | | ┃ ┃ ┃ ┃ ┃ ┃");
printf("\n┃ Ventspils /X ` | | ┃ ┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃");
printf("\n┃ / |` _ Talsi `_ | | ┃ ┃ ┃ ┃ ┃ ┃");
printf("\n┃ | | ` X__ ` / `_ ┃ ┃ Talsi ┃ 5 ┃ 6 ┃ C ┃");
printf("\n┃ | | ` ` / __X Sigulda | ┃ ┃ ┃ ┃ ┃ ┃");
printf("\n┃ /Kuldīga X X Tukums` _____/ _/ | ┃ ┃ ┃ ┃ ┃ ┃");
printf("\n┃ / | `_ _X______/ |┃ ┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃");
printf("\n┃ | ` `_ / Rīga | ┃ ┃ ┃ ┃ ┃ ┃");
printf("\n┃ | Liepāja ____`X______`X_/ | ┃ ┃ Ventspils ┃ 7 ┃ 8 ┃ D ┃");
printf("\n┃ |X_________/ Saldus Jelgava ^ |┃ ┃ ┃ ┃ ┃ ┃");
printf("\n┃ | / ^ | ┃ ┃ ┃ ┃ ┃ ┃");
printf("\n┃ | _________ ___________ ____/ ^___ |__┃ ┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃");
printf("\n┃ | _/ ` ` `` `__ _/ ^┃ ┃ ┃ ┃ ┃ ┃");
printf("\n┃ | __/ `__ / ┃ ┃ Liepāja ┃ 9 ┃ 10 ┃ E ┃");
printf("\n┃ | / `___ ___/ ┃ ┃ ┃ ┃ ┃ ┃");
printf("\n┃ |' `|` ┃ ┃ ┃ ┃ ┃ ┃");
printf("\n┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃ ┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬┃▬▬▬▬▬▬▬▬▬▬▬▬▬▬▬┃");
char izv[1][1];
printf("\nIzvēlies nākamo staciju: ");
scanf("%s",izv);
switchs(izv) {
icases("A")
main();
break;
icases("B")
palidzība();
break;
icases("C")
main();
break;
icases("D")
palidzība();
break;
icases("E")
main();
break;
icases("1")
palidzība();
break;
icases("2")
main();
break;
icases("3")
palidzība();
break;
icases("4")
main();
break;
icases("5")
palidzība();
break;
icases("6")
main();
break;
icases("7")
palidzība();
break;
icases("8")
main();
break;
icases("9")
palidzība();
break;
icases("10")
palidzība();
break;
defaults
printf("Kļūdaina ievade, ieraksti jebkuru burtu vai skaitli, kas rādīts tabulā.");
karte_plans();
break;
} switchs_end;
}
What I am trying to do is allow the player to move only to control points that are 1 square around him so if the player is in the "6" square then he would be able to move to the "3", "4", "B","C", "D", "8", "7" and "5" square like the king in chess and blank out the remaining ones with an asterisk.With an switch statement (The one here is just an slightly modified one for strings) It can be done manually but that would take a long time for all the options and wouldn't be very efficient.
Thank you for your help!