Obsah fóra
PravidláRegistrovaťPrihlásenie




Odpovedať na tému [ Príspevkov: 47 ] Choď na stránku: predchádzajúca 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
Príspevok NapísalOffline : 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!
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
Príspevok Napísal autor témyOffline : 07.05.2013 22:45

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
Príspevok NapísalOffline : 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!
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
Príspevok Napísal autor témyOffline : 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"


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
Príspevok Napísal autor témyOffline : 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?


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
Príspevok NapísalOffline : 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!
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
Príspevok Napísal autor témyOffline : 08.05.2013 9:46



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
Príspevok NapísalOffline : 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!
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
Príspevok Napísal autor témyOffline : 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?


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
Príspevok NapísalOffline : 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!
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
Príspevok Napísal autor témyOffline : 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


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
Príspevok NapísalOffline : 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č :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
Príspevok Napísal autor témyOffline : 08.05.2013 11:32

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
Príspevok NapísalOffline : 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!
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
Príspevok Napísal autor témyOffline : 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);


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
Príspevok Napísal autor témyOffline : 08.05.2013 23:50

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
Príspevok Napísal autor témyOffline : 08.05.2013 23:50

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


Odpovedať na tému [ Príspevkov: 47 ] Choď na stránku: predchádzajúca 1, 2


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

837

02.06.2013 19:00

BX Zobrazenie posledných príspevkov


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

Skočiť na:  

Powered by phpBB Jarvis © 2005 - 2024 PCforum, webhosting by WebSupport, secured by GeoTrust, edited by JanoF
Ako väčšina webových stránok aj my používame cookies. Zotrvaním na webovej stránke súhlasíte, že ich môžeme používať.
Všeobecné podmienky, spracovanie osobných údajov a pravidlá fóra