zmienna

0

jak zrobic typ zmiennej "kierunek" ktory bedzie mogl miec wartosc:
N,S,W,E,NW,NE,SW,SE ??

0
typedef enum {N, S, W, E, ...} Kierunek;
...
Kierunek kierunek
0

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

0

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]

0

(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-- };  
  }
}

//////////////////////////
0
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-- };  
  }
}
0

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-- };   
   }
}

//////////////////////////
0

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).

0

thx, wczoraj sam wychwycilem ten blad. ale dzieki:>

1 użytkowników online, w tym zalogowanych: 0, gości: 1