Hola buenas, soy nuevo por aqui, he leido que aqui no pides aqui un codigo y te lo dan por flojera y tal pero si te pueden ayudar si tienes el codigo medio hecho que es mi caso. El juego que estoy realizando es el de Luces Fuera en el formato c++. El problema que tengo es cuando abandonas el juego y la maquina tiene que hacer la solucion paso a paso, que no tengo manera de hacerlo... lo demás el movimiento del jugador y tal, esta casi listo. Les paso el codigo si lo necesitan para saber como lo hago: (el una matriz de 5x5).
Muchas gracias a los que me ayuden si puede ser...
Mod: tema modificado, para publicar código usa etiquetas GeSHi
Código (cpp) [Seleccionar]
#include <iostream>
#include <cstdio>
#include <cstdlib>
#include <ctime>
using namespace std;
void tablero(char c[5][5]);
void intro_primera(char c[5][5]);
void Jugador(char c[5][5]);
void cambiarc(char c[5][5],int i,int j);
void cambiarc2(char c[5][5],int i,int j);
void solucion(char c[5][5],int i,int j,int k);
int main(){
int i,j,ganador,k;
char c[5][5];;
intro_primera(c);
cout << "BIENVENIDOS AL JUEGO DE LAS LUCES" << endl;
cout << endl;
cout << "Las vacias son las luces apagadas y las O son las luces encendidas" << endl;
cout << endl;
do{
cout << "Va a continuar? De ser asi pulse 1, sino pulse 0" << endl;
cin >> ganador;
if(ganador==0){
cout << "La solucion es..." << endl;
cout << endl;
solucion(c,i,j,k);
}else{
system("cls");
tablero(c);
Jugador(c);
ganador==1;
}
tablero(c);
}while(ganador=!0);
return 0;
}
void tablero(char c[5][5]){
int i,j;
for(i=0; i<5; i++){
for(j=0; j<5; j++){
if(j<4){
cout << " " << c[i][j] << " | ";
}else{
cout << " " << c[i][j] << " | ";
}
}
if(i<5){
cout << "\n------------------------\n";
}
}
cout << endl;
cout << endl;
}
void intro_primera(char c[5][5]){
int i,j,k,a;
srand(time(NULL));
for(i=0;i<5;i++){
for(j=0;j<5;j++){
a=rand()%101;
if(a%2==0){
c[i][j]=' ';
}else{
c[i][j]='O';
}
}
}
}
void Jugador(char c[5][5]){
int i,j,k;
int aux;
k=0;
cout << "Dime los numeros del 0 al 4 en ambos casos" << endl;
cout << endl;
cout << "Dime el primero" << endl;
cin >> i;
cout << endl;
cout << "Dime el segundo" << endl;
cin >> j;
cout << endl;
cambiarc(c,i,j);
cambiarc2(c,i,j);
}
void cambiarc(char c[5][5],int i,int j){
if (c[i][j]=='O'){
c[i][j]=' ';
}else if (c[i][j]==' '){
c[i][j]='O';
}
}
void cambiarc2(char c[5][5],int i,int j){
if(i==0 && j==0){
if(c[i+1][j]=='O'){
c[i+1][j]=' ';
}else if(c[i+1][j]==' '){
c[i+1][j]='O';
}
if(c[i][j+1]=='O'){
c[i][j+1]=' ';
}else if(c[i][j+1]==' '){
c[i][j+1]='O';
}
}
if((i==0 && (j>0 && j<4))){
if(c[i][j-1]=='O'){
c[i][j-1]=' ';
}else if(c[i][j-1]==' '){
c[i][j-1]='O';
}
if(c[i][j+1]=='O'){
c[i][j+1]=' ';
}else if(c[i][j+1]==' '){
c[i][j+1]='O';
}
if(c[i+1][j]=='O'){
c[i+1][j]=' ';
}else if(c[i+1][j]==' '){
c[i+1][j]='O';
}
}
if(i==0 && j==4){
if(c[i+1][j]=='O'){
c[i+1][j]=' ';
}else if(c[i+1][j]==' '){
c[i+1][j]='O';
}
if(c[i][j-1]=='O'){
c[i][j-1]=' ';
}else if(c[i][j-1]==' '){
c[i][j-1]='O';
}
}
if(i==4 && j==0){
if(c[i-1][j]=='O'){
c[i-1][j]=' ';
}else if(c[i-1][j]==' '){
c[i-1][j]='O';
}
if(c[i][j+1]=='O'){
c[i][j+1]=' ';
}else if(c[i][j+1]==' '){
c[i][j+1]='O';
}
}
if(i==4 && j==4){
if(c[i-1][j]=='O'){
c[i-1][j]=' ';
}else if(c[i-1][j]==' '){
c[i-1][j]='O';
}
if(c[i][j-1]=='O'){
c[i][j-1]=' ';
}else if(c[i][j-1]==' '){
c[i][j-1]='O';
}
}
if((i==4 && (j>0 && j<4))){
if(c[i][j-1]=='O'){
c[i][j-1]=' ';
}else if(c[i][j-1]==' '){
c[i][j-1]='O';
}
if(c[i][j+1]=='O'){
c[i][j+1]=' ';
}else if(c[i][j+1]==' '){
c[i][j+1]='O';
}
if(c[i-1][j]=='O'){
c[i-1][j]=' ';
}else if(c[i-1][j]==' '){
c[i-1][j]='O';
}
}
if((i>0 && i<4) && j==0){
if(c[i-1][j]=='O'){
c[i-1][j]=' ';
}else if(c[i-1][j]==' '){
c[i-1][j]='O';
}
if(c[i][j+1]=='O'){
c[i][j+1]=' ';
}else if(c[i][j+1]==' '){
c[i][j+1]='O';
}
if(c[i+1][j]=='O'){
c[i+1][j]=' ';
}else if(c[i+1][j]==' '){
c[i+1][j]='O';
}
}
if((i>0 && i<4) && j==4){
if(c[i-1][j]=='O'){
c[i-1][j]=' ';
}else if(c[i-1][j]==' '){
c[i-1][j]='O';
}
if(c[i][j-1]=='O'){
c[i][j-1]=' ';
}else if(c[i][j-1]==' '){
c[i][j-1]='O';
}
if(c[i+1][j]=='O'){
c[i+1][j]=' ';
}else if(c[i+1][j]==' '){
c[i+1][j]='O';
}
}
if((i>0 && i<4) && (j>0 && j<4)){
if(c[i-1][j]=='O'){
c[i-1][j]=' ';
}else if(c[i-1][j]==' '){
c[i-1][j]='O';
}
if(c[i][j-1]=='O'){
c[i][j-1]=' ';
}else if(c[i][j-1]==' '){
c[i][j-1]='O';
}
if(c[i+1][j]=='O'){
c[i+1][j]=' ';
}else if(c[i+1][j]==' '){
c[i+1][j]='O';
}
if(c[i][j+1]=='O'){
c[i][j+1]=' ';
}else if(c[i][j+1]==' '){
c[i][j+1]='O';
}
}
}
void solucion(char c[5][5],int i,int j,int k){
}
Muchas gracias a los que me ayuden si puede ser...
Mod: tema modificado, para publicar código usa etiquetas GeSHi