codice:
#include <iostream>
using namespace std;
// Variabili globali.
bool fineGioco = false;
char tastoMovimento;
char mappaDiGioco[10][10] =
{
{'"', '"', '"', '"', '"', '"', '"', '"', '"', '"'},
{'"', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '"'},
{'"', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '"'},
{'"', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '"'},
{'"', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '"'},
{'"', ' ', ' ', ' ', '*', ' ', ' ', ' ', ' ', '"'},
{'"', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '"'},
{'"', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '"'},
{'"', ' ', ' ', ' ', ' ', ' ', ' ', ' ', ' ', '"'},
{'"', '"', '"', '"', '"', '"', '"', '"', '"', '"'},
};
// Funzioni (procedure).
void visualizzaMappa();
void movimentoPersonaggio();
int main()
{
visualizzaMappa();
movimentoPersonaggio();
return 0;
}
// Questa funzione stampa a video la mappa.
void visualizzaMappa()
{
int iRiga = 0;
int iColonna = 0;
system("cls");
for (iRiga = 0; iRiga < 10; iRiga++)
{
for (iColonna = 0; iColonna < 10; iColonna++)
{
cout << mappaDiGioco[iRiga][iColonna];
}
cout << endl;
}
cout << endl;
}
// Questa funzione controlla l'input di movimento.
void movimentoPersonaggio()
{
int iRiga = 0;
int iColonna = 0;
// Controllo la posizione del personaggio.
do
{
cin >> tastoMovimento;
for (iRiga = 0; iRiga < 10; iRiga++)
{
for (iColonna = 0; iColonna < 10; iColonna++)
{
if (mappaDiGioco[iRiga][iColonna] == '*')
{
if (((mappaDiGioco[(iRiga+1) || (iRiga-1)][iColonna]) && (mappaDiGioco[iRiga][(iColonna+1) || (iColonna-1)])) == '"')
{
movimentoPersonaggio();
}
else
{
switch (tastoMovimento)
{
case 'w':
case 'W':
mappaDiGioco[iRiga][iColonna] = ' ';
mappaDiGioco[iRiga-1][iColonna] = '*';
break;
case 'a':
case 'A':
mappaDiGioco[iRiga][iColonna] = ' ';
mappaDiGioco[iRiga][iColonna-1] = '*';
break;
case 's':
case 'S':
mappaDiGioco[iRiga][iColonna] = ' ';
mappaDiGioco[iRiga+1][iColonna] = '*';
break;
case 'd':
case 'D':
mappaDiGioco[iRiga][iColonna] = ' ';
mappaDiGioco[iRiga][iColonna+1] = '*';
break;
default:
break;
}
}
}
}
}
visualizzaMappa();
} while (fineGioco == false);
}
Innanzitutto, non funziona.