Poslao: 01 Nov 2010 21:48
|
offline
- clzola

- Građanin
- Pridružio: 10 Mar 2009
- Poruke: 101
- Gde živiš: Podgorica
|
Mucim se pola dana, da namjestim da izadje kada ja pritisnem ESC.
Napravio sam da se moze izaci samo onda kada kompjuter podeli 2 karte tebi, i onda se biraju opcije:
1. Dodaj kartu (Enter)
2. Ne zelim vise karti (Space)
3. Exit (Escape)
Kada pokrenem program, i kada dobijem dvije karte, pritisnem Escape, program se lepo ugasi, upalim opet, dobijem dvije karte, gledam koliki mi je zbir, izaberem opciju 'Dodaj kartu' ili 'Ne zelim vise karti', zavisi od zbira, dobijem/izgubim sve jedno, dodje nova ruka i tu nastaje problem, Sada kada imam opciju Exit (Escape), i kada pritisnem nista se ne desi, moram jos par puta da pritisnem taster Escape da bi se program ugasio...
Program je pisan u jeziku C koristeci Allegro biblioteke.
Eto kod, grafike i svi ostali potrebni fajlovi (ako zatreba jos koji, napisite):
[Link mogu videti samo ulogovani korisnici]
Pa ako je neko voljan da pogleda gde gresim, mozda je kod malo neuredan, ili je vise komandi nego sto treba, jbg, ucim programiranje tek 2 meseca a predpostavljam da za rutinu i ostalo treba par godina...
|
|
|
Registruj se da bi učestvovao u diskusiji. Registrovanim korisnicima se NE prikazuju reklame unutar poruka.
|
|
Poslao: 02 Nov 2010 09:07
|
offline
- bocke

- Moderator foruma
- Glavni moderator Linux foruma
- Pridružio: 16 Dec 2005
- Poruke: 12544
- Gde živiš: Južni pol
|
Poslednji put sam nešto radio u Allegru u srednjoj. Imao sam kurs C++ u četvrtoj godini. Pošto se niko ne javlja, baciću pogled, ali ništa ne obećavam. Mada po opisu deluje da nije vezano ništa za Allegro, već da su u pitanju petlje.
|
|
|
|
|
Poslao: 08 Nov 2010 18:02
|
offline
- bocke

- Moderator foruma
- Glavni moderator Linux foruma
- Pridružio: 16 Dec 2005
- Poruke: 12544
- Gde živiš: Južni pol
|
Izvini, nisam još stigao da isprobam. Pogledao sam, ali je potrebno da se malo podsetim Allegro sintakse pa sam to ostavio po strani. Videću u narednih dan/dva da to proverim.
|
|
|
|
Poslao: 08 Nov 2010 18:42
|
offline
- clzola

- Građanin
- Pridružio: 10 Mar 2009
- Poruke: 101
- Gde živiš: Podgorica
|
Ok, mada mislim da nije problem u Allegro, vec oko petlji kao sto si rekao :/
|
|
|
|
Poslao: 10 Nov 2010 18:13
|
offline
- bocke

- Moderator foruma
- Glavni moderator Linux foruma
- Pridružio: 16 Dec 2005
- Poruke: 12544
- Gde živiš: Južni pol
|
Ne mislim da je u pitanju Allegro, samo mi tvoj stil pisanja koda nije blizak i bilo bi mi lakše da protumačim ako se podsetim koji deo koda su Allegro komande, a koje nisu. Recimo, ti koristiš komandu sleep, koja nije rezervisana reč jezika C, a i ne nalazi se u uključenim standardnim .h bibliotekama. Elem, instalirao sam DevCPP u virtualnoj mašini i verzija Allegra koju sam instalirao ne dolazi sa ovim keyword-om.
Meni je ovaj kod malo nečitak. Očekivao sam jednostavniju petlju. Ovako moram da izanaliziram kod, a nikako da uhvatim malo više vremena od desetak minuta da sve pregledam. Treba to kompajlirati, testirati, provući kroz debugger.
Sve razmišljam da ti napišem detaljniji odgovor. Ali pošto izgleda da nikako da sastavim vreme, da te pitam bar jednu stvar. Šta će ti ono: "END_OF_MAIN()"? Nije ni makro definicija, ni funkcija, ni komentar. Ni sam ne znam zašto se kompajler ne buni. Doduše nisam probao da iskompajliram sa opcijom "-Wall" ( s obzirom da se kod mene kod ne kompajlira uopšte zbog nedostatka sleep() funkcije).
|
|
|
|
Poslao: 10 Nov 2010 20:17
|
offline
- clzola

- Građanin
- Pridružio: 10 Mar 2009
- Poruke: 101
- Gde živiš: Podgorica
|
Allegro komande su ti:
draw_srpite(), blit(), allgro_init(), set_color_depth(), set_gfx_mode()
data = load_datafile (), font = load_font(), readkey();, textprintf_ex
masked_blit()
Sto se tice te sleep() komande, na primer sleep(1000) to znaci da program saceka 1 sekundu (1000 milisekundi = 1 sekund). Profesorica koja mi predaje, je rekla da kod nekih kompajlera, nema potrebe da se ukljuce neke datoteke, vec da je to automatski uradjeno...Mislim da pripada biblioteci 'stdlib.h', ako ti ne moze sleep() probaj Sleep() [veliko 'S'].
Koristim Allegro 4.4.0.1
END_OF_MAIN() -- bez te opcije, u opste ne mogu da kompajliram kod, inace tako pise i na allegro.cc da uvijek to stavim na kraju main() funkcije.
Sto se tice same preglednosti koda, jbg xD, ne pisem programe 2-3 godine, nego skoro 2 mjeseca, a i ucim sam kuci(jeste da u skoli imam predmet Programiranje, al, jako sporo se krecemo, pa ja ucim sam kuci), pa to malo teze ide...
Kako mislis moj nacin pisanja koda ti nije blizak? U cemu to grijesim (nije da se buni, pitam, da znam, mozda odgovor pomogne:))?
Uglavnom kako funkcionise kod
pocne sa main(), pa onda se pozove NewHand(),pa se onda pozove HitOrStand() pa se odatle pozovu funkcije Hit() ili Dealer(), i onda na kraju ide ClearAll() i ona poziva NewHand() i posle nje HitOrStand() i onda sve u krug...
|
|
|
|