jak zrobic typ zmiennej "kierunek" ktory bedzie mogl miec wartosc:
N,S,W,E,NW,NE,SW,SE ??
typedef enum {N, S, W, E, ...} Kierunek;
...
Kierunek kierunek
thx. mam jeszczew jedno pytanie:
dlaczego to nie dziala?
struct
{
int X, Y;
}Wrog;
Wrog Wrogowie[10];
...
25 D:\C++\x1\main.cpp
parse error before `[' token
Bo w twoim przykladzie Wrog nie jest opisem typu tylko deklaracja zmiennej, uzyj czegos takiego:
struct Wrog
{
int X, Y;
};//Nowy typ struct Wrog
struct Wrog Wrogowie[10];
Aby nie pisac struct polacz opis typu z typedef i juz.
// albo samo bez struct : Wrog Wrogowie[10] / Wróg* Wrogowie=new Wrog[10]; [mf]
(DEVCPP)
THX!!!
napisalem sobie "gre" lecz te bledy... nie potrafie ich wylapac!! pomocy bo zaraz zwariuje!!
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
using namespace std;
void RuszajWrogami();
void Rysuj();
struct
{
int X, Y;
}Gracz;
struct Wrog
{
int X, Y;
};
struct Wrog Wrogowie[10];
//////////////////////////
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[])
{
if (kbhit())
{
switch(getch())
{
case '8':
{
Gracz.Y-=2;
RuszajWrogami();
Rysuj();
}
break;
case '2': // dol
{
Gracz.Y+=2;
RuszajWrogami();
Rysuj();
}
break;
case '6': // prawo
{
Gracz.X+=2;
RuszajWrogami();
Rysuj();
}
break;
case '4': // lewo
{
Gracz.X-=2;
RuszajWrogami();
Rysuj();
}
break;
}
}
return 0;
}
//////////////////////////
void Rysuj()
{
GotoXY(Gracz.X, Gracz.Y);
printf("A");
for (int i=0; i<=10; i++)
{
GotoXY(Wrog[i].X, Wrog[i].Y);
printf("*");
}
}
//////////////////////////
void RuszajWrogami()
{
for (int i=0; i=>10; ++i)
{
if (Gracz.X >= Wrog[i].X) { Wrog[i].X++ };
if (Gracz.X <= Wrog[i].X) { Wrog[i].X-- };
if (Gracz.Y >= Wrog[i].Y) { Wrog[i].Y++ };
if (Gracz.Y <= Wrog[i].Y) { Wrog[i].Y-- };
}
}
//////////////////////////
void RuszajWrogami()
{
for (int i=0; i<=10; ++i) // mniejsze równe
{
if (Gracz.X >= Wrog[i].X) { Wrog[i].X++ };
if (Gracz.X <= Wrog[i].X) { Wrog[i].X-- };
if (Gracz.Y >= Wrog[i].Y) { Wrog[i].Y++ };
if (Gracz.Y <= Wrog[i].Y) { Wrog[i].Y-- };
}
}
dobra poprawilem to
ale jest jeszcze pare bledow:
D:\C++\x1\main.cpp
[Warning] In function void Rysuj()': 89 D:\C++\x1\main.cpp parse error before
[' token
D:\C++\x1\main.cpp
[Warning] In function void RuszajWrogami()': 100 D:\C++\x1\main.cpp parse error before
[' token
101 D:\C++\x1\main.cpp
parse error before `[' token
D:\C++\x1\Makefile.win
[Build Error] [main.o] Error 1
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
using namespace std;
void RuszajWrogami();
void Rysuj();
struct // GRACZ
{
int X, Y;
}Gracz;
struct Wrog // WROG
{
int X, Y;
};
struct Wrog Wrogowie[10];
//////////////////////////
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[])
{
for(;;)
{
if (kbhit())
{
switch(getch())
{
case 8:
{
Gracz.Y--;
RuszajWrogami();
Rysuj();
}
break;
case 2:
{
Gracz.Y++;
RuszajWrogami();
Rysuj();
}
break;
case 6:
{
Gracz.X++;
RuszajWrogami();
Rysuj();
}
break;
case 4:
{
Gracz.X--;
RuszajWrogami();
Rysuj();
}
break;
}
}
}
return 0;
}
//////////////////////////
void Rysuj()
{
GotoXY(Gracz.X, Gracz.Y);
printf("A");
for (int i=0; i<=10; i++)
{
GotoXY(Wrog[i].X, Wrog[i].Y);
printf("*");
}
}
//////////////////////////
void RuszajWrogami()
{
for (int i=0; i<=10; ++i)
{
if (Gracz.X >= Wrog[i].X) { Wrog[i].X++ };
if (Gracz.X <= Wrog[i].X) { Wrog[i].X-- };
if (Gracz.Y >= Wrog[i].Y) { Wrog[i].Y++ };
if (Gracz.Y <= Wrog[i].Y) { Wrog[i].Y-- };
}
}
//////////////////////////
U ciebie zmienna sa Wrogowie, a nie Wrog. Musisz miec Wrogowie[i] a nie Wrog[i].
Proponuje przeczytac jakas ksiazke o podstawach C albo tutorial, zaleznie co preferujesz.
I taka mala uwaga: jezeli nie jest to wielki problem, to podajac bledy numeruj rowniez kod albo oznacz w ktorym miejscu sygnalizowany jest blad przez kompilator. To znacznie ulatwia znalezienie bledu (chociaz tutaj akurat wielkiego problemu nie ma).
thx, wczoraj sam wychwycilem ten blad. ale dzieki:>