Compilalo y mire como funciona... trastealo para ver los cambios.
Al trabajar con esos tableros, les puedes embelleces con lineas y mas cosas segun la tabla asc2, y hasta colores si te propones.
Aprenda sobre gameloop ya que todo juego va sobre un gameloop
Suerte =)
Código C++:
Ver original#include <iostream>
#include <cstdlib>
using namespace std;
//funcion que imprime el mapa. Esta un poco turbinada pero es solo para que veas lo que puedes hacer aun que sea en asc2 XD
void imprimir ( char (*tablero)[9] ) {
system("cls"); //borra tablero anterior
//imprime informacion de coordenadas x y lineas de arriba del tablero
cout << " \xBA x1 x2 x3 x4 x5 x6 x7 x8 \xBA" << endl;
cout << "\xCD\xCD\xCE";
for( int c = 0; c < 25; c++ ){
cout << "\xCD";
}
cout << "\xB9" << endl;
//Esto imprime el tablero y lineas del lado derecho del tablero
for ( int i = 0; i < 8; i++ ) {
cout << "y" << i+1 << "\xBA "; //imprime informacion coordenada y lineas del lado izquierdo
for ( int z = 0; z < 8; z++ ) {
cout << tablero[i][z] << " ";
}
cout << "\xBA" <<endl << " \xBA \xBA" << endl;//imprime lineas del lado derecho y izquierdo
}
//imprime lineas de abajo del tablero y 2 espacios en el final
cout << "\xCD\xCD\xCA";
for( int c2 = 0; c2 < 25; c2++ ){
cout << "\xCD";
}
cout << "\xBC" << endl << endl;
}
int main () {
bool salir = false; // condicion del GAMELOOP
int x; // coordenada x
int y; // coordenada y
//tablero de 8 por 9. 9 por el '\0' de fin de linea "oculto". Le trato como 8 por 8. 8 Filas y 8 columnas
char tablero [8][9] = {
{"________"},
{"________"},
{"________"},
{"________"},
{"________"},
{"________"},
{"________"},
{"________"}
};
imprimir ( tablero );//cada vez que quiera imprimir mapa: LLamo la funcion imprimir y la paso la direccion de tablero.
//GAMELOOP
while( !salir ){
//***ENTRADA*** Aqui leemos datos
cout << "Elija una coordenada de X1 a x9" << endl;
cin >> x;
cout << "Elija una coordenada de Y1 a y9" << endl;
cin >> y;
//***LÓGICA*** Aqui hacemos calculos del juego segun lo que se recebio en la entrada
if (x == 0 || y == 0){
salir = true;
}
x--; // El rango de la matriz es de x0 a x7. Si elijo coordenada x8 quiero elejir x7 por que 7 es el limite de la matriz y no 8. x-- corrije este erro.
y--; //lo mismo XD
if ( x >= 0 && y >= 0 || x <= 7 && y <= 7 )// si no elejimos un rango x,y correcto no se hace asignaciones.
tablero[y][x] = '\x9D';
//***SALIDA*** Aqui imprimimos los cambios
imprimir ( tablero );
}
//imprimimos el adios... ¿Obvio no? XDD
cout << "Adios" << endl;
cin.ignore();
return 0;
}
Si algun dia te das el salto a los 2d aqui tienes buenos tutoriales:
http://www.losersjuegos.com.ar/referencia/articulos