Programación General > C/C++
Juego sokoban problema con movimiento
(1/1)
p998:
Muy buenas
He estado haciendo el juego sokoban , y muy bien hasta la hora de mover un objeto.
el planteamiento es este x2 y2 es el objeto i x y el puntero, Si se pulsa una de las flechas cuando el objeto esta al lado este se borra i se muestra en una casilla mas , por ejemplo si el objeto esta a la izquierda del puntero i se pulsa la flecha izquierda este se a de mover a la izquierda. Os dejo aqui el programa aver si me podeis echar una mano.
--- Código: C++ ---#include <iostream>#include <stdlib.h>#include <string>#include <conio.h>#include <windows.h>#include <stdio.h>#include <time.h>using namespace std;void gotoxy_(int x,int y);void cuadrado();void objeto();void error();void hora();void crono();void menu();void moverobjeto();int x,y,x1,y1,x2,y2;int key=0;int main(){ srand(time(NULL)); hora();menu();//crono();cuadrado();x2=19; y2=12;gotoxy_(x2,y2);cout<<'a'; x= 19; y= 16; gotoxy_(x,y); while(key!=27){ key=getch(); if(key==72|key==75|key==80|key==77) { x1=x; y1=y; } if(x==x2 && y==y2+1) { gotoxy_(x2,y2); cout<<' '; y2++; gotoxy_(x2,y2); cout<<'a'; } if(x==x2+1 && y==y2) { gotoxy_(x2,y2); cout<<' '; x2++; gotoxy_(x2,y2); cout<<'a'; } if(key==80) { if(x==x2 && y==y2-1) { gotoxy_(x2,y2); cout<<' '; y2--; gotoxy_(x2,y2); cout<<'a'; } } if(key==77) { if(x==x2 && y==y2) { gotoxy_(x2,y2); cout<<' '; x2++; gotoxy_(x2,y2); cout<<'a'; } } if(key==72) { //cout<<"up"<<endl; y--; if (y<11) { error(); } } if(key==75) { //cout<<"left"<<endl; x--; if (x<11) { error(); } } if(key==80) { //cout<<"down"<<endl; y++; if (y>19) { error(); } } if(key==77) { //cout<<"right"<<endl; x++; if (x>33) { error(); } } if(key==72|key==75|key==80|key==77) { gotoxy_(x,y); cout<<' '; gotoxy_(x,y); cout<<'O'; gotoxy_(x1,y1); cout<<' '; } if(x>=14 && x<=33 && y==17) { error(); } if(x>=10 && x<=27 && y==13) { error(); } }//end while getch(); } void cuadrado(){x= 10; y= 20; gotoxy_(x,y); printf("*"); x= 11; y= 20; gotoxy_(x,y); printf("*"); x= 12; y= 20; gotoxy_(x,y); printf("*"); x= 13; y= 20; gotoxy_(x,y); printf("*"); x= 14; y= 20; gotoxy_(x,y); printf("*"); x= 15; y= 20; gotoxy_(x,y); printf("*"); x= 16; y= 20; gotoxy_(x,y); printf("*"); x= 17; y= 20; gotoxy_(x,y); printf("*"); x= 18; y= 20; gotoxy_(x,y); printf("*"); x= 19; y= 20; gotoxy_(x,y); printf("*"); x= 20; y= 20; gotoxy_(x,y); printf("*"); x= 21; y= 20; gotoxy_(x,y); printf("*"); x= 22; y= 20; gotoxy_(x,y); printf("*"); x= 23; y= 20; gotoxy_(x,y); printf("*"); x= 24; y= 20; gotoxy_(x,y); printf("*"); x= 25; y= 20; gotoxy_(x,y); printf("*"); x= 26; y= 20; gotoxy_(x,y); printf("*"); x= 27; y= 20; gotoxy_(x,y); printf("*"); x= 28; y= 20; gotoxy_(x,y); printf("*"); x= 29; y= 20; gotoxy_(x,y); printf("*"); x= 30; y= 20; gotoxy_(x,y); printf("*"); x= 31; y= 20; gotoxy_(x,y); printf("*"); x= 32; y= 20; gotoxy_(x,y); printf("*"); x= 33; y= 20; gotoxy_(x,y); printf("*"); x= 34; y= 20; gotoxy_(x,y); printf("*"); //////////////// x= 10; y= 10; gotoxy_(x,y); printf("*"); x= 11; y= 10; gotoxy_(x,y); printf("*"); x= 12; y= 10; gotoxy_(x,y); printf("*"); x= 13; y= 10; gotoxy_(x,y); printf("*"); x= 14; y= 10; gotoxy_(x,y); printf("*"); x= 15; y= 10; gotoxy_(x,y); printf("*"); x= 16; y= 10; gotoxy_(x,y); printf("*"); x= 17; y= 10; gotoxy_(x,y); printf("*"); x= 18; y= 10; gotoxy_(x,y); printf("*"); x= 19; y= 10; gotoxy_(x,y); printf("*"); x= 20; y= 10; gotoxy_(x,y); printf("*"); x= 21; y= 10; gotoxy_(x,y); printf("*"); x= 22; y= 10; gotoxy_(x,y); printf("*"); x= 23; y= 10; gotoxy_(x,y); printf("*"); x= 24; y= 10; gotoxy_(x,y); printf("*"); x= 25; y= 10; gotoxy_(x,y); printf("*"); x= 26; y= 10; gotoxy_(x,y); printf("*"); x= 27; y= 10; gotoxy_(x,y); printf("*"); x= 28; y= 10; gotoxy_(x,y); printf("*"); x= 29; y= 10; gotoxy_(x,y); printf("*"); x= 30; y= 10; gotoxy_(x,y); printf("*"); x= 31; y= 10; gotoxy_(x,y); printf("*"); x= 32; y= 10; gotoxy_(x,y); printf("*"); x= 33; y= 10; gotoxy_(x,y); printf("*"); x= 34; y= 10; gotoxy_(x,y); printf("*"); ////////// x= 34; y= 11; gotoxy_(x,y); printf("*"); x= 34; y= 12; gotoxy_(x,y); printf("*"); x= 34; y= 13; gotoxy_(x,y); printf("*"); x= 34; y= 14; gotoxy_(x,y); printf("*"); x= 34; y= 15; gotoxy_(x,y); printf("*"); x= 34; y= 16; gotoxy_(x,y); printf("*"); x= 34; y= 17; gotoxy_(x,y); printf("*"); x= 34; y= 18; gotoxy_(x,y); printf("*"); x= 34; y= 19; gotoxy_(x,y); printf("*"); x= 10; y= 11; gotoxy_(x,y); printf("*"); x= 10; y= 12; gotoxy_(x,y); printf("*"); x= 10; y= 13; gotoxy_(x,y); printf("*"); x= 10; y= 14; gotoxy_(x,y); printf("*"); x= 10; y= 15; gotoxy_(x,y); printf("*"); x= 10; y= 16; gotoxy_(x,y); printf("*"); x= 10; y= 17; gotoxy_(x,y); printf("*"); x= 10; y= 18; gotoxy_(x,y); printf("*"); x= 10; y= 19; gotoxy_(x,y); printf("*"); //dentro x= 10; y= 13; gotoxy_(x,y); printf("*"); x= 11; y= 13; gotoxy_(x,y); printf("*"); x= 12; y= 13; gotoxy_(x,y); printf("*"); x= 13; y= 13; gotoxy_(x,y); printf("*"); x= 14; y= 13; gotoxy_(x,y); printf("*"); x= 15; y= 13; gotoxy_(x,y); printf("*"); x= 16; y= 13; gotoxy_(x,y); printf("*"); x= 17; y= 13; gotoxy_(x,y); printf("*"); x= 18; y= 13; gotoxy_(x,y); printf("*"); x= 19; y= 13; gotoxy_(x,y); printf("*"); x= 20; y= 13; gotoxy_(x,y); printf("*"); x= 21; y= 13; gotoxy_(x,y); printf("*"); x= 22; y= 13; gotoxy_(x,y); printf("*"); x= 23; y= 13; gotoxy_(x,y); printf("*"); x= 24; y= 13; gotoxy_(x,y); printf("*"); x= 25; y= 13; gotoxy_(x,y); printf("*"); x= 26; y= 13; gotoxy_(x,y); printf("*"); x= 27; y= 13; gotoxy_(x,y); printf("*"); // x= 14; y= 17; gotoxy_(x,y); printf("*"); x= 15; y= 17; gotoxy_(x,y); printf("*"); x= 16; y= 17; gotoxy_(x,y); printf("*"); x= 17; y= 17; gotoxy_(x,y); printf("*"); x= 18; y= 17; gotoxy_(x,y); printf("*"); x= 19; y= 17; gotoxy_(x,y); printf("*"); x= 20; y= 17; gotoxy_(x,y); printf("*"); x= 21; y= 17; gotoxy_(x,y); printf("*"); x= 22; y= 17; gotoxy_(x,y); printf("*"); x= 23; y= 17; gotoxy_(x,y); printf("*"); x= 24; y= 17; gotoxy_(x,y); printf("*"); x= 25; y= 17; gotoxy_(x,y); printf("*"); x= 26; y= 17; gotoxy_(x,y); printf("*"); x= 27; y= 17; gotoxy_(x,y); printf("*"); x= 28; y= 17; gotoxy_(x,y); printf("*"); x= 29; y= 17; gotoxy_(x,y); printf("*"); x= 30; y= 17; gotoxy_(x,y); printf("*"); x= 31; y= 17; gotoxy_(x,y); printf("*"); x= 32; y= 17; gotoxy_(x,y); printf("*"); x= 33; y= 17; gotoxy_(x,y); printf("*"); }void gotoxy_(int x,int y){ HANDLE consola; COORD posicion; consola = GetStdHandle(STD_OUTPUT_HANDLE); posicion.X= x; posicion.Y= y; SetConsoleCursorPosition(consola, posicion); } void error() { system("cls"); printf("GAME OVER!!"); printf("n"); printf("Pulse escape para empezar de nuevo"); if (key==27) { system("cls"); //ir a main } }void hora(){ time_t rawtime; time ( &rawtime ); printf ( "La hora actual es: %s", ctime (&rawtime) ); } void crono(){ int segundos, minutos, horas; segundos = minutos = horas = 0; while (minutos < 2){ if (segundos == 60){ minutos++; segundos = 0; } if (minutos == 60){ horas++; minutos = 0; } printf("%02d:%02d:%02dn", horas, minutos, segundos); Sleep(1000); segundos++; } } void menu(){system("color 1f");printf("nssssssss oooooooo kk kkk oooooooo bbbbbbbb aaaaaaaaaa nnn nnnnn");printf("nssssssss oooooooo kkk kkk oooooooo bbbb b aaa aaaa nnnn nnnnn");printf("nssss oooooooo kkk kkkk oooooooo bbbbb b aaa aaaa nnnnnnnnnn");printf("nsss ooo ooo kkkkkkk ooo ooo bbbbb b aaaaaaaaaa nnnnnnnnnn");printf("nssssssss ooo ooo kkkkkk ooo ooo bbbbbbbb aaaaaaaaaa nnnnnnnnnn");printf("nssssssss ooo ooo kkkkkkk ooo ooo bbbbb b aaaaaaaaaa nnnnnnnnnn");printf("n ssss oooooooo kkk kkk oooooooo bbbbb b aaaaaaaaaa nnnnnnnnnn");printf("nssssssss oooooooo kkk kkkk oooooooo bbbbb b aaa aaaa n nnnnnnn");printf("nssssssss oooooooo kkk kkkk oooooooo bbbbbbbb aaa aaaa n nnnnnn");
Navegación
Ir a la versión completa