prosze o pomoc dla chetnych. mam nieskonczona "gre" . NIE CHODZI O TO ZEBY JA DOKONCZYC, tylko naprawic buga. przez niego aplikacja sie wlacza i nic nie robi. kompiluje sie dobrze. uzywam DEVCPP.
main.cpp
/*
*
* Gra bez nazwy:
* main.cpp
* (C) 2004 by Matthew
*
*/
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include "main.h" // Wszystko tutaj :>
void GotoXY(short x,short y)
{
HANDLE hConsoleOutput;
COORD Cursor_an_Pos = { x,y};
hConsoleOutput = GetStdHandle(STD_OUTPUT_HANDLE);
SetConsoleCursorPosition(hConsoleOutput , Cursor_an_Pos);
}
int main(int argc, char *argv[])
{
srand((unsigned)time(NULL)); // Do losowania
GraTrwa = true; //Gra zaczyna trwac
CzyGraSkonczona = false; //Czy wyswietlic G.Over
//Losowanie pozycji wrogow
for (int I=0; I<=10; I++)
{
Wrogowie[I].X = (rand() % 80);//??
Wrogowie[I].Y = (rand() % 25);//??
}
while(GraTrwa);
{
if (kbhit())
{
switch(getch())
{
case 2: { Gracz.Y--; RobCoTrzeba(); } break; //Dol
case 8: { Gracz.Y++; RobCoTrzeba(); } break; //Gora
case 6: { Gracz.X++; RobCoTrzeba(); } break; //Prawo
case 4: { Gracz.X--; RobCoTrzeba(); } break; //Lewo
case VK_ESCAPE: { GraTrwa = false; } //Esc - Wyjscie z gry
}
}
}
if (CzyGraSkonczona)
{
printf("G A M E O V E R");
system("PAUSE");
}
else
{
printf("Narka :-)");
}
return 0;
}
void RuszajWrogami() // SZTUCZNA INTELIGENCJA WROGOW
{
for (int I=0; I<=10; ++I)
{
if (Gracz.X >= Wrogowie[I].X) Wrogowie[I].X++; // Przesun aktualnego wroga w prawo
if (Gracz.X <= Wrogowie[I].X) Wrogowie[I].X--; // Przesun aktualnego wroga w lewo
if (Gracz.Y >= Wrogowie[I].Y) Wrogowie[I].Y++; // Przesun aktualnego wroga w gore
if (Gracz.Y <= Wrogowie[I].Y) Wrogowie[I].Y--; // Przesun aktualnego wroga w dol
}
}
void Rysuj() // RYSUJE CALA CZADOWA SCENE
{
system("cls");
GotoXY(Gracz.X, Gracz.Y);
printf("A");
//Petla rysujaca wrogów (#)
for (int I=0; I<=10; I++)
{
GotoXY(Wrogowie[I].X, Wrogowie[I].Y);
printf("#");
}
}
void SprawdzKolizje() // SPRAWDZA KOLIZJE MIEDZY WROGAMI I GRACZEM
{
bool Kolizja = true; //Zmienna zawiera informacje czy zderzyl sie gracz z wrogiem
for (int I=0; I<=10; ++I)
{
if ((Gracz.X != Wrogowie[I].X) && (Gracz.Y != Wrogowie[I].X))
{
Kolizja = false; // Nie ma kolizji
}
}
if (!Kolizja)
{
Punkty++; // Jesli nie ma kolizji dodaj punkty.
}
else
{
GraTrwa = false; // jesli jest to wyjdz z gry
}
}
void RobCoTrzeba() // AI, KOLIZJA I RYSOWANIE
{
RuszajWrogami();
SprawdzKolizje();
Rysuj();
}
void GraSkonczona()
{
GraTrwa = false;
CzyGraSkonczona = true;
}
main.h
/*
*
* Gra bez nazwy:
* main.h
* (C) 2004 by Matthew
*
*/
void Rysuj();
void RuszajWrogami();
void SprawdzKolizje();
void RobCoTrzeba();
void GraSkonczona();
struct { int X, Y; }Gracz; //Czyli pozycja gracza
struct Wrog { int X, Y; }; //Pozycja wroga
struct Wrog Wrogowie[10]; //Wszyscy wrogowie
int Punkty; //Liczba punktów
bool GraTrwa; //Czy gra trwa?
bool CzyGraSkonczona; //Czy wyswietlic "Koniec Gry!"?
kto mi pomoze zeby cos sie dzialo??? z gory wielkie THX!!! i pamietajcie : gra jest nieskonczona wiec nie piszcie ze cos jest zle.