Ok, I already know a few people are gonna be angry I'm asking this question because there is already so much on it, but i just can seem to make any sense of it; how do you get instant Input (on a single character) in C/C++? Im slowly making my way towards a old school 'the legend of zelda' like game, so far the movement seems good, but instant input would really make it better.
Im also sure i'm doing something wrong with the char's and the numbers next to them, if anyone could help me, or provide a tutorial or link I would be very grateful.
Also when researching the 'goto' function, i released many people said it was messy and confusing. Yes, it is a bit time consuming, but not messy or confusing to me at least. Could anybody explain all the hate towards it?
Anyway, sorry for mumbling on, here's the code i have so far, feel free to rip into me if i've made tonnes of rookie mistakes.
// movement test
#include <iostream>
#include <stdio.h>
int main(void){
char move[101];
one:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n O=== \n ==== \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w' ) {
goto one;
}
if (*move == 'a') {
goto one;
}
if (*move == 's') {
goto five;
}
if (*move == 'd') {
goto two;
}
two:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n =O== \n ==== \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w' ) {
goto two;
}
if (*move == 'a') {
goto one;
}
if (*move == 's') {
goto six;
}
if (*move == 'd') {
goto three;
}
three:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==O= \n ==== \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w' ) {
goto three;
}
if (*move == 'a') {
goto two;
}
if (*move == 's') {
goto seven;
}
if (*move == 'd') {
goto four;
}
four:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ===O \n ==== \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w' ) {
goto four;
}
if (*move == 'a') {
goto three;
}
if (*move == 's') {
goto eight;
}
if (*move == 'd') {
goto four;
}
five:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n O=== \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w' ) {
goto one;
}
if (*move == 'a') {
goto five;
}
if (*move == 's') {
goto nine;
}
if (*move == 'd') {
goto six;
}
six:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n =O== \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w' ) {
goto two;
}
if (*move == 'a') {
goto five;
}
if (*move == 's') {
goto ten;
}
if (*move == 'd') {
goto seven;
}
seven:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==O= \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w' ) {
goto three;
}
if (*move == 'a') {
goto six;
}
if (*move == 's') {
goto eleven;
}
if (*move == 'd') {
goto eight;
}
eight:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ===O \n ==== \n ==== \n";
std::cin >> move;
if (*move == 'w' ) {
goto four;
}
if (*move == 'a') {
goto seven;
}
if (*move == 's') {
goto twelve;
}
if (*move == 'd') {
goto eight;
}
nine:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n O=== \n ==== \n";
std::cin >> move;
if (*move == 'w' ) {
goto five;
}
if (*move == 'a') {
goto nine;
}
if (*move == 's') {
goto thirteen;
}
if (*move == 'd') {
goto ten;
}
ten:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n =O== \n ==== \n";
std::cin >> move;
if (*move == 'w' ) {
goto six;
}
if (*move == 'a') {
goto nine;
}
if (*move == 's') {
goto fourteen;
}
if (*move == 'd') {
goto eleven;
}
eleven:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n ==O= \n ==== \n";
std::cin >> move;
if (*move == 'w' ) {
goto seven;
}
if (*move == 'a') {
goto ten;
}
if (*move == 's') {
goto fifteen;
}
if (*move == 'd') {
goto twelve;
}
twelve:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n ===O \n ==== \n";
std::cin >> move;
if (*move == 'w' ) {
goto eight;
}
if (*move == 'a') {
goto eleven;
}
if (*move == 's') {
goto sixteen;
}
if (*move == 'd') {
goto twelve;
}
thirteen:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n ==== \n O=== \n";
std::cin >> move;
if (*move == 'w' ) {
goto nine;
}
if (*move == 'a') {
goto thirteen;
}
if (*move == 's') {
goto thirteen;
}
if (*move == 'd') {
goto fourteen;
}
fourteen:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n ==== \n =O== \n";
std::cin >> move;
if (*move == 'w' ) {
goto ten;
}
if (*move == 'a') {
goto thirteen;
}
if (*move == 's') {
goto fourteen;
}
if (*move == 'd') {
goto fifteen;
}
fifteen:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n ==== \n ==O= \n";
std::cin >> move;
if (*move == 'w' ) {
goto eleven;
}
if (*move == 'a') {
goto fourteen;
}
if (*move == 's') {
goto fifteen;
}
if (*move == 'd') {
}goto sixteen;
sixteen:
move[100] = 0;
std::cout << "\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n ==== \n ==== \n ==== \n ===O \n";
std::cin >> move;
if (*move == 'w' ) {
goto twelve;
}
if (*move == 'a') {
goto fifteen;
}
if (*move == 's') {
goto sixteen;
}
if (*move == 'd') {
goto sixteen;
}
return 0;
}