Mam problem. Ucze sie programowac w c++ i pisze pierwsza w swoim zyciu mini-gierke. Do tej pory napisałem kod, ktory ma za zadanie narysowac plansze, po ktorej bedzie posuwal sie gracz. Kompilator wszystko mi to ładnie kompiluje lecz przy uruchamianiu widze:
"Program wykonał nieprawidłową operację... itd."
szczegóły:
MINNER spowodował błąd: nieprawidłowa strona w
module MINNER.EXE przy 015f:004011cc.
Rejestry:
EAX=0000092d CS=015f EIP=004011cc EFLGS=00010246
EBX=0041a9bc SS=0167 ESP=0065fdf0 EBP=0065fdf8
ECX=0041ab4c DS=0167 ESI=00000000 FS=46ef
EDX=00000005 ES=0167 EDI=00000000 GS=0000
Bajtów w CS
89 34 81 40 83 fa 14 7c dc 42 83 fa 0f 7e cf ba
Stos:
00415108 00550000 0065fe04 004012d1 0041a9bc 0065fe30 0041319e 00000001 006721c8 00672330 00000000 81632fdc 00550000 bffa191f 0065ff68 0040c2b4
Oto kod:
#include <conio.h>
#include <iostream.h>
class minner { // klasa gry
enum {way, blok, bomba, punkt}; // mozliwe pola gry
int plansza[20][20]; // plansza do gry
public:
void rysuj(void);
void instalacja(void);
};
minner tworz_obiekt;
void minner::instalacja() {
clrscr();
int x,y;
for(x=5;x<=15;x++)
for(y=5;y<=17;y+=6)
plansza[x][y] = blok; // tworze 3 pionowe bloki
for(x=0;x<=4;x++)
for(y=0;y<20;y++)
plansza[x][y] = way; // tworze puste pola w pierwszych 5 liniach planszy
for(x=5; x<=15; x++) {
for(y=0; x<20; y++) {
if(y==5 || y==11 || y==17) continue;
plansza[x][y] = way; // tworze puste pola miedzy blokami
}
}
for(x=16;x<=20;x++)
for(y=0;y<20;y++)
plansza[x][y] = way; // tworze puste pola w ostatnich 4 liniach planszy
}
void minner::rysuj() {
textbackground(0);
int x,y,count,kolor;
gotoxy(1,1);
for(x=0;x<20;x++) {
for(y=0;y<20;y++)
{
switch(plansza[x][y]) {
case way: kolor=11; break;
case blok: kolor=4; break;
case punkt: kolor=1; break;
case bomba: kolor=1; break;
}
for(count=0;count<3;count++){
textcolor(kolor);
cprintf("Ű");
}
}
cout << endl;
}
}
main() {
tworz_obiekt.instalacja();
tworz_obiekt.rysuj();
}
Prosze o pomoc i przepraszam, ze to takie długie wyszło!