Hra had v jazyce C

Kategorie: IT/Security | Zobrazen: 9073x Datum: 20.8.2007

Prezentace jednoduché hry známé jako a Had a také trocha mé raně programátorské autobiografie.

Jedním z prvních programů začínajícího programátora bývá většinou i jednoduchá hra. A myslím, že rozhodně nejpopulárnější z těchto jednoduchých her je hra had, proslavená hlavně mobilními telefony Nokia. Začínající programátor tedy něco na podobné téma spatlá, vystaví na web a nadšeně ukazuje kamarádům svůj výtvor, kteří neznalí programování ho mají málem za boha. No dobře možná trochu přitažené za vlasy, ale v jádru pravdivé:)

Nyní trocha autobiografie. Několik zpět, já jako nadšený puberťák, jsem se rozhodl, že začnu programovat. Jediný programovací jazyk, který jsem z doslechu znak byl (možná trochu překvapivě) jazyk C. No dobrá tedy, sehnal jsem si pořádně tlustou knihu o "céčku" a začal studovat. Do té doby jsem o principu programování neměl ani potuchy a nějaká kompilace pro mě byla také velkou neznámou. Takže napoprvé to nevyšlo. Jazyk C jsem zavrhnul jako "příliš těžký" a dal se do hledání "lepšího" jazyka. Ten jsem našel v Pascalu. Pascal, jazyk stvořený pro výuku programování, posloužil mým účelům velmi dobře. Valil jsem jednu aplikaci začínajícího programátora za druhou.

A pak mě to, jako i spoustu jiných, napadlo. Naprogramuji si hru. Bude hra Had! S vervou jsem se tedy do tohoto projektu pustil. Brzy jsem ale přišel na to, že mé vědomosti ještě nejsou na potřebné úrovni. Přesto byl výsledkem takový trochu hybrid had, který je stále na stažení na mém starém webu. Instalátor jsem tam přidal jen z machroviny, samotná hra má jen jeden exe soubor. Když ji vyzkoušíte, sami poznáte, že do nokiového hada má daleko. Jakási tečka běhá v konzolovém okně a zbírá žrádýlka. Tečka, ne had, to je právě ono.

Než jsem stačil nabýt potřebných znalostí pro pořádný update hry, uchvátilo mě Delphi svými wokenními aplikacemi. Do té doby jsem tvořil pouze programy běžící v konzoli, takže přechod na programy s formulářem, buttonkami, editboxy a vším možným, jsem vnímal jako velký skok kupředu. Tehdy jsem si ještě neuvědomoval, že jde o pouhé klikání a ne programování. V Delphi jsem se o hada nepokoušel. Stvořil jsem v něm však pár zajímavým prográmků viz Stoyan's Remote Control Tool. Stále více volného času žrala škola a na programování nějak nebyl čas. Před maturitou jsem se z donucení vrátil k Pascalu. V tom jsem však programoval jen příklady ze zadání čili nic záživného. Pak přišla maturita a po ní opojné chvíle úspěchů s vidinou nadcházejících dlouhých prázdnin. No a jsme v součastnosti. Prázdniny se pomalu, ale nezadržitelně chýlí ke konci. No a jak to vypadá s hadem? Po maturitě jsem se vrátil na počátek řetězce, čili k jazyku C. Zároveň jsem se rozhodl, že konečně splním tento několikaletý deficit program a konečně dokončím. Tímto vám tedy představuji hru "začínajícího programátora" Stoyan's Snake v1.0, která byla stvořena o několik let později než měla:)

Popis hry

Hra se ovládá klasicky šipkami, mezerníkem hru zapauzujete, klávesou END měníte barvu hada a klávesou ESC hru ukončíte. Cílem hry je projít všech sedm levelů a k tomu vám musí stačit tři životy. K postupu do dalšího levelu je nutné nasbírat dvacet žrádýlek. Pokud jste úspěšní, můžete se zapsat do Síně slávy, kde si můžete prohlížet nejvyšší dosažená skore. Upozorňuji, že hra je velmi obtížná a gratuluji i tomu, kdo se dostane alespoň do levelu 5:)

Zdrojový kód

Zdrojový kód se dělí do dvou souborů, první console.c není mým dílem, původem ze serveru CodeGuru. Obsahuje funkce pro změnu barvy písma v konzoli (setrgb()), funkci pro přesun kurzoru na místo určené souřadnicemi (gotoxy()) a funkci na výmaz obsahu konzole (clrscr()). Hlavně první dvě funkce jsou v mém programu hojně užívané. Tento soubor jsem ještě trochu upravil, aby byl C kompatibilní (původně je psán pro C++) a také přidal několik nových barev a pozadí, které jsem do hry potřeboval. Druhým souborem je soubor had.c, který obsahuje vlastní kód hry. Další informace o hře naleznete v menu hry v příslušné nabídce.

Screenshots

Hra had Hra had Hra had Hra had

Download

Zdrojový kód

Zkompilovaná hra

Stoyan's signature

Předcházející článek: Zaostřeno na Programujte.com

Následující článek: FIT VUT dojmy po půl roce

Libí se vám tento článek? Zalinkujte ho: Linkuj tento článek

Přidej svůj komentář

Sting
Hezky. Jen takovy malickosti, zkousel sem se kouknout do sine slavy, ikdyz jsem se tam nezapsal a vypsali se mi hezky ascii znaky a jeste hezci score. A k postupu do dalsiho lvlu mi staci 1 zradylko. (je teda mozny ze to je mym OS, pouzivam totiz visty a u tech je mozny vsechno ). Jestli se nekdo bude ptat proc pouzivam visty tak proto, ze uz byly nainstalovany a sem linej nainstalovat XPcka .
23.8.2007 18:27:54
 
88.102.205.*
Stoyan
stoyan(zavinac)tiscali.cz
Sting: Diky moc za upozorneni, omylem jsem totiz uverejnil jednu z testovacich verzi hry. Nyni uz by melo byt vse v poradku.
24.8.2007 10:18:14
 
195.47.46.*
filip.186
filip.186(zavinac)seznam.cz
Zkoušel jsem to na Win98SE a Intel Celeronu 433MHz (na intru lepší mít nebudem) a dělalo to dost problémy. Když jsem třeba chtěl nastavení, tak mě to hodilo zpátky do menu. Při hře se mi objevila dole ještě jedna šedá čára, kterou se normálně dalo projít, bohužel nevím, jestli to způsobuje OS nebo PC.
5.10.2007 16:59:53
 
212.90.248.*
filip.186
filip.186(zavinac)seznam.cz
A ještě jedna věc: když ten program stripneš a pak zkomprimuješ pomocí UPX, tak bude mít velikost pouze 10kB
7.10.2007 10:45:33
 
212.90.248.*
Sting
tak kdyz uz se ty pripominka rozjely tak se pridam. pro smazani obrazovky, v tvym pripade clrscr(), staci napsat system("CLS");.. je ve windows.h... a nemusis pouzivat cizi knihovny....
8.10.2007 8:28:39
 
88.102.205.*
Saruman
Saruman.White(zavinac)seznam.cz
2 Sting: No, mazani obrazovky pomoci system("CLS"); mi prijde dost nemotorne. Kdyz uz nechces pouzivat cizi knihovny, tak je nejlepsi asm{ push ax
mov ax,0x3
int 0x10
pop ax}
7.12.2007 19:23:09
 
89.103.119.*
mars777
mars777(zavinac)seznam.cz
ahoj, poslal bys mi prosim zdrojovy kod toho prvniho hada na mail?
8.12.2009 19:07:09
 
89.103.136.*
Nový komentář
Nick: 387" />

Smajlíci:

:-D :-) :-/ :-( ;-) :-P 8-) [b][/b] [i][/i] [url][/url]
Web:
Email:
Komentář:
Opište prosím číslo 387 (ochrana proti SPAMu)
 
       * Pole Komentář podporuje BBCode tagy
© Stoyan, 2006 - 2012