BlackJack u Allegro ( exit )

BlackJack u Allegro ( exit )

offline
  • 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):
sendspace.com/file/tlqsve
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.
offline
  • bocke  Male
  • Moderator foruma
  • Glavni moderator Linux foruma
  • Veliki Pingvin
  • Guru
  • Pridružio: 16 Dec 2005
  • Poruke: 12351
  • 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.



offline
  • Pridružio: 10 Mar 2009
  • Poruke: 101
  • Gde živiš: Podgorica

Je li uspio ko da resi, ja ne mogu nikako Confused

offline
  • bocke  Male
  • Moderator foruma
  • Glavni moderator Linux foruma
  • Veliki Pingvin
  • Guru
  • Pridružio: 16 Dec 2005
  • Poruke: 12351
  • 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.

offline
  • 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 :/

offline
  • bocke  Male
  • Moderator foruma
  • Glavni moderator Linux foruma
  • Veliki Pingvin
  • Guru
  • Pridružio: 16 Dec 2005
  • Poruke: 12351
  • 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).

offline
  • 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...

Ko je trenutno na forumu
 

Ukupno su 834 korisnika na forumu :: 53 registrovanih, 8 sakrivenih i 773 gosta   ::   [ Administrator ] [ Supermoderator ] [ Moderator ] :: Detaljnije

Najviše korisnika na forumu ikad bilo je 3466 - dana 01 Jun 2021 17:07

Korisnici koji su trenutno na forumu:
Korisnici trenutno na forumu: -[CoA]-, _Rade, A.R.Chafee.Jr., amaterSRB, ArmyBoss, babaroga, Bane san, Bogoslov, bojank, Brankoni, cenejac111, Cigi, crnitrn, darcaud, djordje92sm, dragon986, Drug pukovnik, Faki-Valjevo, Filip Marinković, galijot, goxin, Hoegaarden, ivica976, Lošmi, manda87, MB120mm, meelosh64, mercedesamg, Mercury, MikeHammer, Milan A. Nikolic, milos.cbr, misa1xx, Morocco, pein, Recce, rovac, royst33, sakota79, Sale.S, Smd, Smiljke, Sr.Stat., Srle993, uruk, vasa.93, VJ, Vlad000, Vlada1389, Voivoda, voja64, xJeremijAx, |_MeD_|