[ Príspevkov: 47 ] 1, 2
AutorSpráva
Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 07.05.2013 22:25 | Sokoban

Áno, ale poriadne si skontroluj, či máš v tom .h naozaj všetko, čo v .c skutočne používaš.
A aj tie knižnice urob tak, ako som písal (knižnice sú tie #include <nieco>, teda v tých špicatých zátvorkách)


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.05.13
Prihlásený: 10.06.14
Príspevky: 41
Témy: 4 | 4
Napísal autor témyOffline : 07.05.2013 22:45 | Sokoban

knižnicu mam dat do kazdeho jedneho aj do .h či len do vsetkych .c ?


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 07.05.2013 22:55 | Sokoban

Kľudne do všetkých, potom keď to pôjde ich trochu preriediš


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.05.13
Prihlásený: 10.06.14
Príspevky: 41
Témy: 4 | 4
Napísal autor témyOffline : 07.05.2013 23:07 | Sokoban

hlasi mi to tam uz len tuto jednu chybu - game.c:9:20: curses.h: No such file or directory.. nechce mi zobrat tu kniznicu curses.h .. tak som ju dala preč...v main-e som nechala len to startGame() ale stale hlasi chybu - main.c:24: error: parse error before "startGame"


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.05.13
Prihlásený: 10.06.14
Príspevky: 41
Témy: 4 | 4
Napísal autor témyOffline : 08.05.2013 9:22 | Sokoban

momentalne to nehlasi uz ziadnu chybu.. akurat ze v game.c mam jendu kniznicu navyse a v main.c a levels.c ju nemam, lebo svietil pri nej vykrničnik ale chybu nevypisovalo...ale spustit mi to aj tak nespusti - BUILD FAILED (exit value 2, total time: 5s) .. kde moze byt chyba?


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 08.05.2013 9:37 | Sokoban

Pošli znovu projekt


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.05.13
Prihlásený: 10.06.14
Príspevky: 41
Témy: 4 | 4
Napísal autor témyOffline : 08.05.2013 9:46 | Sokoban



Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 08.05.2013 10:39 | Sokoban

No fajn, takže problém je nasledovný:
Do .h súborov sa dávajú len dekláracie. Tzn. len popis toho, čo chceš používať. Prototypy finkcií (to máš správne) a popis štruktúr. A práve v tých štruktúrach máš bordel.
V Cčku sa štruktúry deklarujú takto
Kód:
typedef struct
{
...polozky...
} nazovTypu;

a neskôr vytvoríš premennú ako
Kód:
nazovTypu premenna;

Dá sa to robiť aj tak, ako si to urobila ty, ale to odporuje tomu, čo som písal vyššie (do .h len deklarácie - popis)

Premenné preto vytváraš až v .c súboroch. Ďalší zádrhel je, že sa snažíš zdieľať globálne premennné (lvl1, lvl2 a lvl3) cez viacero .c súborov. To sa potom robí tak, že do jedného .c súboru (level.c) napíšeš normálne
Kód:
level1 lvl1;
level2 lvl2;
level3 lvl3;

A do game.c potom
Kód:
extern level1 lvl1;
extern level2 lvl2;
extern level3 lvl3;

aby prekladač vedel, že má použiť premennú, ktorú už vytvoril inde.
Opravil som to, pozri sa na to http://goo.gl/n4j8a

Ďalej máš trochu bordel v používaní štruktúry. Nie že by to nefungovalo, ale robíš to zbytočne zložito.
Totiž tebe stačí popísať jeden typ ako
Kód:
typedef struct{
   char name[100];
   char description[100];
   char password[100];
   char Map[100];
} level;

a potom si vytvoriť 3 premenné tohoto typu
Kód:
level lvl1;
level lvl2;
level lvl3;

Každá premenná tak dostane vlastný priestor, s ktorým bude pracovať. Takže sa môžeš odkazovať na lvl1.Map, lvl2.Map aj lvl3.Map. Toto sú tri rozdielne polia 100 charov.
Ak sa ti bude chcieť, môžeš to prerobiť, aj keď nemusíš. Len to ber na vedomie :)


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.05.13
Prihlásený: 10.06.14
Príspevky: 41
Témy: 4 | 4
Napísal autor témyOffline : 08.05.2013 11:05 | Sokoban

jaj aha...super, ďakujem fakt veľmi pekne za pomoc :) a este ked sa mozem opytat , ked potrebujem aby struktura Level vyzerala takto

name - názov levelu
description - opis levelu
password - heslo pre vstup do daného levelu
map - mapa samotného levelu
next_level - referencia na ďalší level

teda tam potrebujem este pridat to posledne tak to napisem len char next_level[100] ?? alebo sa to robi nejak inak?


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 08.05.2013 11:15 | Sokoban

Tam by som skôr dal ukazateľ na štruktúru level. Nejako takto
level * next_level;

A potom, keď vytvoríš lvl1, lvl2, lvl3, tak urobíš
lvl1.next_level = &lvl2;
lvl2.next_level = &lvl3;
lvl3.next_level = NULL;

To znamená, že tam budeš mať priamo adresu na nový level, ale keďže máš tri levely a každý vo svojej premennej, tak to nevidím ako potrebné.
Toto už by malo vlastnosti lineárneho zoznamu ( http://cs.wikipedia.org/wiki/Line%C3%A1rn%C3%AD_seznam ) a pracuje sa s tým trochu inak (zložitejšie)
To tam, myslím, naozaj nepotrebuješ.


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.05.13
Prihlásený: 10.06.14
Príspevky: 41
Témy: 4 | 4
Napísal autor témyOffline : 08.05.2013 11:23 | Sokoban

ahaa..no lebo som si prechadzala pokyny k zadaniu a tam bolo, ze ta struktura ma vyzerat takto..ze tam ma byt aj to next_level ale tak asi to tam nebudem davat..lebo zase to cele pokazim


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 08.05.2013 11:27 | Sokoban

Ak tam nie je napísané, na čo to next_level je, tak to tam dať môžeš a nemusíš to použiť na nič :D


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.05.13
Prihlásený: 10.06.14
Príspevky: 41
Témy: 4 | 4
Napísal autor témyOffline : 08.05.2013 11:32 | Sokoban

no tam je napisane akurat to, že to ma byť referencia na dalsi level


Offline

Skúsený užívateľ
Skúsený užívateľ
Obrázok užívateľa

Registrovaný: 17.07.11
Prihlásený: 29.12.20
Príspevky: 1516
Témy: 3 | 3
NapísalOffline : 08.05.2013 11:50 | Sokoban

Tak to je presne to, čo som písal. Môžeš to tam dať, ale využiť to veľmi nemáš ako asi.
Resp. máš, ale to by chcelo väčší zásah do kódu.


_________________
Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám!
Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.05.13
Prihlásený: 10.06.14
Príspevky: 41
Témy: 4 | 4
Napísal autor témyOffline : 08.05.2013 23:49 | Sokoban

typedef struct Level {
char *name;
char *description;
char *password;
char *map;
struct Level *next;
char *solution;
} LEVEL;

/**
* Parses the string and returns it as a level
* @param line the string representation of level (in sokoban format)
* @return the level as LEVEL type
*/
LEVEL *parse_level(char* line);

/**
* Loads leveles from file
* @param path the path of the file containing the levels
* @return the reference to the first level or NULL if there was any problem
*/
LEVEL *load_levels(char* path);

/**
* Returns level matching given password
* @param root reference to the root level
* @param password given password to get level for
* @return return the level matching password or root level, if no level matches
*/
LEVEL *get_level_by_password(LEVEL *root, char *password);

/**
* Frees memory before game exit
* @param root reference to the root level
*/
void levels_free(LEVEL *root);


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.05.13
Prihlásený: 10.06.14
Príspevky: 41
Témy: 4 | 4
Napísal autor témyOffline : 08.05.2013 23:50 | Sokoban

ked ma subor levels.h vyzerat takto...bude potrebny aj zasah do kodu? :-/


Offline

Užívateľ
Užívateľ
Obrázok užívateľa

Registrovaný: 06.05.13
Prihlásený: 10.06.14
Príspevky: 41
Témy: 4 | 4
Napísal autor témyOffline : 08.05.2013 23:50 | Sokoban

či stači ak prerobim len to levels.h ?


 [ Príspevkov: 47 ] 1, 2


Sokoban



Podobné témy

 Témy  Odpovede  Zobrazenia  Posledný príspevok 
V tomto fóre nie sú ďalšie neprečítané témy.

Sokoban V C#

v Technológia .NET

23

904

02.06.2013 19:00

BX



© 2005 - 2024 PCforum, edited by JanoF