| | |
Autor | Správa |
---|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 07.05.2013 22:25 | |
|
Á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! |
|
Registrovaný: 06.05.13 Prihlásený: 10.06.14 Príspevky: 41 Témy: 4 | Napísal autor témy Sue271: 07.05.2013 22:45 | |
|
knižnicu mam dat do kazdeho jedneho aj do .h či len do vsetkych .c ?
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 07.05.2013 22:55 | |
|
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! |
|
Registrovaný: 06.05.13 Prihlásený: 10.06.14 Príspevky: 41 Témy: 4 | Napísal autor témy Sue271: 07.05.2013 23:07 | |
|
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"
|
|
Registrovaný: 06.05.13 Prihlásený: 10.06.14 Príspevky: 41 Témy: 4 | Napísal autor témy Sue271: 08.05.2013 9:22 | |
|
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?
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 08.05.2013 9:37 | |
|
Pošli znovu projekt
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 06.05.13 Prihlásený: 10.06.14 Príspevky: 41 Témy: 4 | Napísal autor témy Sue271: 08.05.2013 9:46 | |
|
už
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 08.05.2013 10:39 | |
|
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! |
|
Registrovaný: 06.05.13 Prihlásený: 10.06.14 Príspevky: 41 Témy: 4 | Napísal autor témy Sue271: 08.05.2013 11:05 | |
|
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?
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 08.05.2013 11:15 | |
|
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! |
|
Registrovaný: 06.05.13 Prihlásený: 10.06.14 Príspevky: 41 Témy: 4 | Napísal autor témy Sue271: 08.05.2013 11:23 | |
|
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
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 08.05.2013 11:27 | |
|
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č
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
Registrovaný: 06.05.13 Prihlásený: 10.06.14 Príspevky: 41 Témy: 4 | Napísal autor témy Sue271: 08.05.2013 11:32 | |
|
no tam je napisane akurat to, že to ma byť referencia na dalsi level
|
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 08.05.2013 11:50 | |
|
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! |
|
Registrovaný: 06.05.13 Prihlásený: 10.06.14 Príspevky: 41 Témy: 4 | Napísal autor témy Sue271: 08.05.2013 23:49 | |
|
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);
|
|
Registrovaný: 06.05.13 Prihlásený: 10.06.14 Príspevky: 41 Témy: 4 | Napísal autor témy Sue271: 08.05.2013 23:50 | |
|
ked ma subor levels.h vyzerat takto...bude potrebny aj zasah do kodu? :-/
|
|
Registrovaný: 06.05.13 Prihlásený: 10.06.14 Príspevky: 41 Témy: 4 | Napísal autor témy Sue271: 08.05.2013 23:50 | |
|
či stači ak prerobim len to levels.h ?
|
|
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|