// Constante globale: const int maxlung=50; const int minlung=20; const int maxlat=30; const int minlat=10; const string[] cardinale={"", "Nord", "Est", "Sud", "Vest"}; // Variabile globale: int lungime=0, latime=0; int x=0, y=0; int directie=1; int p=0, v=0; // pentru pan si volume. int[][] sala; // Obiecte: sound pas, perete; void main() { show_game_window("Explorare spatiu"); install_keyhook(); // Functia spune este definita de noi: spune("Bine ai venit! Explorare placuta!"); // Se incarca intr-o functie toate sunetele in memorie: incarcare_sunete(); // Functia lucruri_initiale() apeleaza construirea si golirea salii: lucruri_initiale(); start_joc(); exit(); // deocamdata nu se ajunge la el niciodata. } void lucruri_initiale() { creare_sala(); } void incarcare_sunete() { pas.load("sunete\\pas.ogg"); perete.load("sunete\\perete.ogg"); } void creare_sala() { spune("Asteapta, se construieste sala!", false); // Setam marimi random pentru lungimea si latimea salii: lungime=random(minlung, maxlung); latime=random(minlat, maxlat); // Redimensionam array-ul bidimensional la valorile lungimii si latimii: sala.resize(lungime); for(int i=0; i4) directie=1; } spune_directie(); } void deplasare() { if(directie==1) { y++; if(y>=latime) { y=latime-1; redare_perete(); } else { redare_pas(); } } else if(directie==3) { y--; if(y<0) { y=0; redare_perete(); } else { redare_pas(); } } else if(directie==2) { x++; if(x>=lungime) { x=lungime-1; redare_perete(); } else { redare_pas(); } } else if(directie==4) { x--; if(x<0) { x=0; redare_perete(); } else { redare_pas(); } } } void spune_directie() { spune(cardinale[directie], true); } void spune_coordonate() { int x_real=x+1; int y_real=y+1; spune("x "+x_real+", y "+y_real+".", true); } void calculare_pv() { // Calculare volume pentru axa y: v=y*-1; // Calculare pan pentru axa x: // Pentru partea dreapta: if(x>=(lungime/2)) { p=x-(lungime/2); } else { p=(lungime/2-x)*-1; } } void redare_pas() { calculare_pv(); pas.stop(); pas.pan=p; pas.volume=v; pas.play(); } void redare_perete() { calculare_pv(); perete.stop(); perete.pan=p; perete.volume=v; perete.play(); }