Ezen GUI-val elkészített, pusztán kattintás által vezérelt amőba különleges képessége, hogy többszöri próbálkozás után egyre kevesebb kedve lesz az embernek játszani vele, mivel nem hagy nyerni. A program be tudja tölteni az utoljára mentett vagy félbehagyott játékot. A pályaméret pedig 3-tól 20-ig szabadon választható.
A program egy étterem menedzselését teszi lehetővé felhasználói számára, konzolos menürendszereken keresztül. Segítségével az étterem asztalait és étlapjának elemeit lehet kezelni, módosítani, illetve a rendelések felvételére majd azok számlázására is alkalmas. Az asztalokról foglaltsági térkép nyújt információt, vendégek érkezése esetén optimálisan tölti ki a rendelkezésre álló helyeket. Az étterem aktuális állapotát fájlban tárolja, így folyamatosan vezethetővé teszi egy étterem mindennapjait.
Nagy házi feladatnak a Legyen Ön is Milliomos! című TV-s játék megvalósítását választottam. A grafikát SDL-ben készítettem el. A játék során a játékosnak 15 kérdést kell jól megválaszolnia, hogy elérje a maximális nyereményt, az 50 millió forintos összeget. Játék közben a játékos használhat két segítséget is, a közönségszavazást és a felezést. Akik a legtöbb pénzt érték el, azok felkerülhetnek a dicsőséglistára.
A program feladata, hogy egy 24 bites, BMP formátumú képet ASCII art-tá alakítson (vagyis felépíti a képet kizárólag ASCII karakterek felhasználásával), majd az így kapott eredményt karakterenként szövegfájlba írja. A program a felhasználótól parancssorból, argumentumokon keresztül kapja meg a szükséges adatokat, és az eredményként keletkezett ASCII karakterek fájlba írásán kívül képes a képek invertálására, világosítására/sötétítésére, lekicsinyítésére, valamint konzol ablakon való kijelzésére is.
Az általam választott feladat egy Piet rajzoló- és fordítóprogram. A Piet egy kép alapú ezoterikus programozási nyelv, melynek célja, hogy a programok - a nyelv nevét adó Piet Mondrian képeihez hasonlóan - absztrakt festményeknek nézzenek ki. A nyelv 18 programszínt (3 fényesség * 6 árnyalat) és 2 különleges színt (fekete, fehér) határoz meg, a parancsválasztás az egymást követő programszínek közti árnyalat- és fényességkülönbség alapján történik. A megvalósításomban az ezeken kívüli színek fehérként értelmeződnek, így ezek szabadon használhatóak a program díszítésére. A program bitmapként menthető és visszatölthető, futtatás esetén a be- és kimenet egy konzolablakban történik. Az alábbi kép az egyik lehetséges megvalósítása az "InfoC" szöveg kiírásának, ugyanez a program látható a jobb alsó sarokban díszítés nélkül, rövid magyarázattal.
A Numerikus Integráló szoftver fontosabb jellemzői az RPN kifejezés kiértékelő, a határozott integrál számítása három módszerrel és az SVG kiíró. Az SVG ábrázolja a forrás függvényt és az elemi integráló alakzatokat (színes téglalapok, trapézok, parabolák). Az integráló pontos, megfelelő lépésköznél már a matematikai úton kiszámolt integráltól alig tér el, emellett képes algebrai úton nem integrálható kifejezéseket is integrálni (például sin(x)*ln(x^2).
A programom egy könyvtár adatainak nyilvántartására képes. Ezeket az adatokat kedv szerint lehet módosítani, törölni, létrehozni. Emellett több rendezési funkció, és egy kölcsönzési rendszer is rendelkezésre áll, amelyek felhasználóbarátak, így kezelésük nagyon egyszerű. Mindezeket egy letisztult és átlátható környezetben tehetjük meg.
A Schakk egy konzolos felületen játszható sakk program. A menüből a felhasználó új játékot tud létrehozni, vagy betölteni egy régebbi meccset. A program listázza a megtett lépéseket, kiemelten jelzi a legutóbb megjátszottat. A játékmenetet vissza- és előre is lehet léptetni, lépésekben való változtatást is bevezethet a játékos. Mindezek a klasszikus sakk szabályai szerint történő lépések szöveges leírásával tehetőek, amit a program kiértékel, hibás gépelés, vagy esetleges játék közben történő eseménynél kijelzi ezt. A játékmenet menthető és betölthető a menüből.
A társaid elbújtak, a feladatot, hogy időn belül megtaláld őket. Játékos menüben választhat az előre beállított három nehézségi szint közül. Indítás után a játékos egy házba kerül, ahol az összes tárgyat ellenőriznie kell, hogy nem bújtak-e meg ott. Játék végén az eredmény elmentődik, ami a menüben később visszanézhető. A játék grafikus megjelenítéséhez SDL2 könyvtár lett felhasználva.
A szerviz program célja, hogy megkönnyítse egy autószerviz adminisztrációs munkáját, mindezt egy átlátható és könnyen kezelhető felületen keresztül. A menüből a felhasználó elérheti a programom lehetséges funkcióit, így képes új ügyfél, autó, elvégzett javítás adatait felvenni, az adatbázisból különböző lekérdezéseket végrehajtani, illetve a nyilvántartásból autókat törölni.
Egy aknakereső játékprogram, melynek lényege, hogy a játékos kap egy számára ismeretlen cellákból álló, téglalap alakú pályát, ahol háromféle cella található lefedve. Aknát tartalmazó, egy egész számot tartalmazó, amely azt mondja meg, hogy a szomszédságában hány aknamező van, valamint üres, ami meg a 0-t tartalmazó cellával egyenlő, szóval nincs a közelben akna, és önmaga sem aknamező. A játékos feladata, hogy felderítse a pályát anélkül, hogy aknát robbantana.
A program egy képfeldolgozó, ami BMP fájlokat kezel, és ezeken futtat algoritmusokat. Képes fényerő, kontraszt és méret állítására, valamint élkereső algoritmust és szürkeárnyalatosítást végrehajtani. Mindezt egy konzolból kezelheti a felhasználó, miközben a változásokat egy SDL ablakban követheti nyomon.
A programban két emberi játékos tud egymás ellen játszani a sakk szabályai szerint. A programot egy grafikus felületen keresztül lehet irányítani, ami egyedi grafikával rendelkezik. A program megjegyzi az eddigi lépéseket, így azok bármikor elmenthetők. A korábbi mentések bármikor visszatölthetők folytatásra vagy a lépések visszajátszására.
A program használata egyszerű, indításkor megjelenik a főmenü, 8 menüponttal, azok közül lehet választani. Ezek többsége tartalmaz almenüket, különféle műveletek kiválasztásához. A műveletek elvégzése után újra megjelenik a főmenü, mindaddig, míg a felhasználó a program befejezése menüpontot nem választja. A képen az is látszódik, hogy a program egy easteregg-et is tartalmaz, ezt csak azok a felhasználók találhatják meg, akik figyelmesen elolvasták a programhoz tartozó felhasználói dokumentációt, hiszen a 27-es opció nincs a menüpontok között.
A Tetris játékot szerintem nem szükséges túlmagyarázni, csaknem mindenki ismeri világszerte. Az én verzióm az SDL grafikus könyvtárral készült. A felhasználó beállíthatja magának az irányító billentyűket, állítható a pálya szélessége, illetve magassága, valamint az esési sebesség (nehézségi szint) is. A játék számolja a játékos pontszámát, majd azt a játék végén, a játékos nevével és további adatokkal együtt (elért szint, sorok száma stb.) elmenti. A ranglistán megtekinthetők a legmagasabb pontszámot elért játékosok adatai.
Programom a már mindenki által jól ismert Aknakereső. A játékos a főmenüben három előre kigondolt nehézségű, vagy pedig egy általa megadott méretű és aknaszámú pályán játszhat. Játékon belül viszont hamar visszaugorhat a főmenübe is, újra is generálhatja ugyanazon paraméterekkel pályáját, vagy akár meg is állíthatja a játékot. Nyert játék esetén el is mentheti névvel az időt és a nehézséget. A legjobb tíz mentett játékot bármikor meg is tekintheti a dicsőséglistában.
A házi feladatomat az egyik kedvenc társasjátékom alapján készítettem el, ami pedig a Kartográfusok. Ebben a játékban az a cél, hogy 4 évszak alatt minél jobban felfedezze a játékos a térképet, pontokat pedig a királynő kérései alapján kap minden évszak végén (ezek a küldetések minden évszakban mások).
Ebben a programban a klasszikus Tetris játékot készítettem el. Ennek a megvalósításához az SDL könyvtárat használtam. A beállításokon belül a játékos be tudja állítani a nevét, a játékterület szélességét és magasságát 10 és 40 egység között. A szint idővel növekszik, és ezzel együtt a játék nehézsége is. A sorok eltüntetéséért pont jár. A játékmenet végén a játékos el tudja menteni az eredményét, a dicsőséglistán pedig meg tudja tekinteni az 5 legjobb elmentett eredményt.
A program egy 5 emeletes, emeletenként 5 szobás hotel foglalásait tartja nyilván, és kezeli grafikusan. A szobák foglaltsága zöld, és piros színnel van megkülönböztetve, szabad, vagyis zöld szobára foglalást tudunk felvenni, foglalt, piros szobánál foglalást tudunk törölni. A szűrővel az adott szolgáltatásokat tartalmazó szobákat tudjuk kilistázni.
Ha már létezik amőba mint játék, miért ne létezhetne papucsállatka is? A játék hasonlóan működik az amőbához, viszont ez az adott pálya megteltéig megy. Három jelző összegyűjtése egy vonalban egy extra kör szerzésével, négy vagy több viszont egy kör elvesztésével jár. A játék nyertese az, akié a pályát megtöltő utolsó jelző. A pálya alakja és mérete állítható a szerkesztőben. Továbbá a beállításokban a használt jelzők és négyzetrács típusok is módosíthatóak.
A programom egy autószerviz adatainak kezeléséhez készült. Az egyszerű, konzolos felületen a felhasználó rögzíthet ügyfeleket, azok autóit, és az azokon elvégzett javításokat. Ezeket a program szövegfájlba is menti, majd a következő indításkor beolvassa, így a felhasználó ott folytathatja, ahol abbahagyta.
A játék az ismert Space Invaders mechanikáit felhasználva helyezi a játékost a Star Trek filmek ikonikus, Sovereign osztályú NCC-1701-E Enterprise csillaghajójának kapitányi székébe. A játék során a hős kapitánynak le kell győznie az egyre közeledő ellenséges hadsereget, miközben elkerüli annak ellencsapásait. A konfigurációs .txt és .png fájlok segítségével a játékos kedvére változtathatja a játék kinézetét, illetve a hajók sebességének, HP-jának és pontértékének módosításával szinte korlátlanul variálhatja a játék nehézségét.
A programom a népszerű és mindenki által jól ismert amőba játékot valósítja meg konzolos megjelenítéssel. A játék célja, hogy 5 db egymás mellett lévő azonos szimbólummal rendelkezzünk a pályán, ennek elérését azonban az ellenfél, a gép próbálja megakadályozni. A gép játéktudása biztosítja, hogy ne unatkozzunk a 10. menet után se, ha ugyanis nem figyelünk oda könnyen kikaphatunk. Ha belefáradnánk egy játék közben az agytornába, elmenthetjük az állást, így azt később bármikor újra betölthetjük és folytathatjuk pont ott, ahol abbahagytuk. A programot egy egyszerű menüből irányíthatjuk, így minden adott, hogy gyors és pörgős játszmákat játszhassunk a gép ellen.
A program a Conway-féle Game of Life nevű játékot valósítja meg egy csavarral. Az élő cellák sárga színűek, és haláluk után először vörös, majd fekete színt öltenek. Hogy ezt hány lépésből teszik, azt az ablak jobb oldalán lévő gombokkal lehet állítani. További lehetőség van gombnyomással visszaállni a szokványos kinézetre, vagy akár a játékot vezérlő alapvető szabályok változtatására.
Ez a program egy szimulációja a Schönherz Kollégium liftrendszerének. Megadhatunk emberek ezreit fájlból, és mi magunk is adhatunk hozzá utasokat ("drag and drop") valós időben egy pinpad segítségével. Új utas érkezése esetén a program kiszámolja, hogy melyik liftet a legcélszerűbb választani. Eközben zenét játszik és megjeleníti a kollégium keresztmetszetén a jelenlegi állapotot és a statisztikákat. Ha kedvet kaptál, megtalálod a programot GitHubon: https://github.com/Gilgames32/liftesch/
A játék az eredeti PacMan alapvető lényegét valósítja meg. A szellemek célja elkapni PacMan-t, azonban mindegyik szellem más-más logika szerint próbál eljutni hozzá. Vigyázni kell mivel, ha elkapnak veszítünk egy életet. Mindhárom életünk elvesztésével vagy az összes pont megszerzésével véget ér a játék, ami után beírhatjuk a nevünket és lehetőségünk van felkerülni a 10 elemű dicsőséglistára. A pályát a program fájlból olvassa be, így akár az általunk készített pályán is tudunk játszani.
A program a Geogebra nevezetű szoftverhez hasonlóan geometriai alakzatokat jelenít meg. Ezeken alapvető szerkesztési lépéseket lehet végrehajtani, mint például egyenesek metszéspontja, szakaszfelező pont, párhuzamos és merőleges állítása. A nézet méretét lehet csökkenteni vagy növelni és az egérrel mozgatni. Az alakzatok pontjai mozgathatóak, ennek hatására az adott ponttól függő összes alakzat állapota frissül. A projekt SDL-lel készült.
A program egy naplót valósít meg, ami képes eltárolni a rögzített eseményeket, és később ezekkel műveleteket végezni. Ezek a műveletek közé tartozik a módosítás, törlés, listázás, és keresések is. Az utóbbinál van olyan lehetőség ahol egy adott év adott hónapjára rákeresni, majd ezt a program a képen látható módon egy naptár szerű táblázatban írja ki.
Az általam készített program bármilyen étterem igazgatásához használható. Miután felvittük az éttermünk méretét, asztalokat majd menüt adhatunk hozzá. Ezek után fogadhatjuk is a vendégeket, rendeléseket vehetünk fel az egyes asztalokhoz. A program emellett képes számlát, illetve a menüt kinyomtatni és egy térképet kirajzolni az éttermünkről.
A program a híres amőba játékot teszi elérhetővé elektronikus formában. A játék képes akármekkora táblát kezelni, van benne mentési és betöltési lehetőség, az utoljára elindított játszmát bármikor be lehet tölteni, mentés nélkül. Azon játékosok számára, akik még nem játszottak megtalálható egy szabályzat a játékon belül. A képen látható minta pedig egy 20x20as táblán készült, szabályos játékállást ábrázol.
A program „rekordokban” tárolja bizonyos személyek nevét, foglalkozását, címét, telefonszámát, esetleg más jellemző adatait. A meglévő névjegyeket tudja törölni vagy módosítani, illetve új rekordok hozzáadására is van lehetőség. Keresni a telefonkönyvben bármelyik paraméter alapján lehet, sőt, név szerinti keresés esetén (*) wildcard kezelésre is képes. VCard (.vcf) fájlt is be tud olvasni, és egy kiválasztott személy adatait is hasonló formátumú fájlba kiírni.
A program, amit választottam az egy recepteskönyv volt. A program célja, hogy képes legyen a régi, már megunt recepteskönyveket helyettesíteni. A programban a felhasználó képes recepteket rögzíteni, törölni, illetve a program a beírt hozzávalók alapján kalóriát is számol, amely nagy segítség lehet a felhasználóknak. Ezeken felül, a programban be van építve több kereső funkció is, amelyek a receptek elérését segítik.
A program egy módosított akasztófa játékot valósít meg, ahol a "játékgép" úgy nehezíti meg a játékos dolgát, hogy nem választ ki egy bizonyos szót, hanem a játékos tippjei alapján úgy szűkíti a szóba jövő szavak listáját, hogy a játék minél később fusson ki egy konkrét megoldásra. A játékélményt a rossz tippek, győzelem, vagy éppen vereség esetén megjelenő megjegyzések teszik még élvezhetőbbé.
A képen egy, a Lift-esch programból kivágott képernyőkép látható. A program lényegében egy lift szimulátor, mely a fenti, keresztmetszeti ábrán vizualizálja meg folyamatosan mozgó téglapapok segítségével a választott kiosztási algoritmust. A liftek színe a státuszuktól függ, fehérek, ha épp utast szállítanak, szürkék, ha épp üresek, zöldek vagy pirosak, ha épp be vagy kiszálló utassal foglalkoznak. Alatta az egyes liftekhez sorolt kiszolgálási láncok láthatók (fehérrel az éppen aktív), ezekben pedig az egyes kérelmek (#id (honnan >> hova) struktúrában). Ezalatt pedig a szimulációval kapcsolatos statisztikai adatok és állapot jelző csík látható.
A programom egy időjárás állomást emuláló, szenzor adatokat feldolgozó program, amely a kapott adatokat képes ellenőrizni, interpolálni, kijelezni és szerkeszteni is. Mindemellett alkalmas statisztikai adatok, előrejelzések és például az alább látható grafikon elkészítésére. A grafikon elkészítése fix 24 órás intervallumon történik a napi 144 adat feléből. Mivel az adatok értéktartománya napról-napra változik, így az y tengely osztása dinamikusan történik.
A játékon belül kettő szint van, könnyű és nehéz. A könnyű egy hagyományos akasztófa játék lebonyolítására képes, míg a nehezet választva egy gonosz akasztófa játékot játszhatunk. Az utóbbi lényege, hogy a felhasználónak nem egy megadott szót kell kitalálnia, hanem a válaszai alapján a megoldáshalmazból kizárunk szavakat úgy, hogy neki a legnehezebb dolga legyen. Így valószínű, hogy elfogy az élete még mielőtt kitalálhatná a szót. Mind a könnyű, mind a nehéz szinthez tartozik ranglista, amire a top 5 játékos kerül fel.
A jól ismert 2048 játék egy változata, amely 3x3-as tábláról indul, ami a játék folyamán egyre növekszik, legfeljebb 8x8-as méretig. A játék célja a 65536 elérése. Ez sokáig eltarthat, de nem kell aggódnunk, a program kilépéskor automatikusan ment, így később tudjuk folytatni a félbehagyott játékunkat.
A program a RIMMAIR légitársaság számára teszi lehetővé a légitársaság által fenntartott járatoknak a kezelését. A program segítségével akármikor megtekinthető a felhasználó által választott járatnak a foglalási térképe, az utasok által választott különböző menük száma, továbbá az aktuális járatoknak a listája. A program biztosítja a járatok számának a bővítését.
A feladatomban az egyszerű kígyós játék megírását választottam. Grafikus program mellett döntöttem, mert szerintem ez jobb élményt ad a felhasználónak. A játékot lehet egyjátékos, illetve kétjátékos módban is játszani. Az egyjátékos módban a játékosnak lehetősége van, hogy felkerüljön a dicsőséglistára, ha elegendő pontot sikerült szereznie. :D
A mindenki által ismert TETRIS játékot valósítottam meg az SDL nevű grafikus könyvtár segítségével. Kicsit megváltoztattam az eredeti játékot, hiszen a játékban bármekkora pályán lehet játszani, de az alap az 10 egység széles, és 20 egység magas. Ezenkívül még változtatható az irányítás is, tetszőleges billentyűket használhatunk irányításra. Másik nagy funkciója még, hogy a játékos csinálhat magának alakzatokat, azaz, ha akarjuk a 4 hosszú egyenes helyett vagy akár mellett belerakhatunk a játékba még egy 5 hosszú egyenest is vagy akár a 2-szer kettes négyzet mellé rakhatunk egy 3-szor hármas négyzetet is. A játék egyre nehezebb lesz minél tovább élünk túl és annál több pontot is kaphatunk, amit a játék egy dicsőséglistán nyilvántart, hogy tudjunk barátainkkal versenyezni is.
A televízióból is ismert Legyen Ön Is Milliomos játék megvalósítása, melynek során a játékos a képernyőn megjelenő kérdésekre tud válaszolni a felajánlott lehetőségek közül választva. Egy kérdésre mindig egyetlen jó válasz jelenik meg a képernyőn a három rossz válaszlehetőség mellett. Sikertelen válasz esetén a játék azonnal befejeződik; sikeres esetén újabb kérdést kap egészen addig, amíg a 15. kérdésre is sikeres választ nem ad.
A program Conway-féle életjáték vizualizálására szolgál. A felhasználónak lehetősége van megadni a játék fő paramétereit (méretek, sebesség, stb.), valamint a színezés módját is kiválaszthatja. Ha szeretné megadhatja az élő és a halott cellák színét, de választhatja a színátmenet opciót is. Ez esetben az élő cellák a középponttól való távolság függvényében kapnak színt. A játék futhat léptetve, vagy folyamatosan is. Ezen túl lehet élő cellákat rajzolni a képernyőre egy megadott méretű négyzetes ecsettel. A rajzolt cellák színezése az életrekeltés frissességétől függ, így az ecset színváltós csíkot húz maga után. (A rajzolás a program leglátványosabb funkciója, sajnos ezt képen nem lehet megfelelően visszaadni.) A képen az ecsettel rajzolt teli négyzet alakulásának stádiumai láthatók.
Egy igazán szórakoztató játék, melyben egy lézersugarat kell tükrök segítségével a kiindulási pontból valamelyik célpontba vezetni. Négy különböző tükör segítségével számos lehetőség van a lézersugár irányítására, akár több irányba is egy-egy tükörrel. A játékos 20 pályán keresztül tesztelheti képességeit, mindegyiken végtelen próbálkozási lehetőség áll rendelkezésére. A kitartó játékosok egy meglepetés pályával is találkozhatnak.
A PhotoMan program szabványos BMP képfájlokon képes elemi manipulációkat (sötétítés, világosítás, tükrözés, skálázás, elmosás) megvalósítani konzolos kezelőfelülettel ellátott környezetben, vagyis a parancssori argumentumként kapott fájlon képes a kapcsolókkal megadott feladatok elvégzésére, majd vissza is tudja írni a módosított képet a háttértárra.
Az ismert Wordle játék C-ben készült változata. A szabályok egyszerűek: tippelésekkel egy szót kell kitalálnunk, melyet a program véletlenszerűen választ ki. Az egyes találgatások után egyre közelebb kerülünk a megoldáshoz: ha a tippelt szóban szürke marad az adott betű háttere, akkor nem szerepel a kitalálandóban, ha sárga, akkor szerepel, de rossz helyen tippeltük meg az adott karaktert, ha zöld, akkor jó a betű és a helyzete is. A játéknak akkor van vége, ha kitaláltuk a szót, ekkor nyertünk, vagy ha az ötödik tippünk is sikertelen lett, elvesztettük a játékot.
A Legyen Ön is Milliomos! tévés vetélkedő konzolos megvalósítása. A játék elején választható nehézség, amely alapján különböző nagyságú nyereményekért játszhatnak a játékosok. A játék során, akárcsak az eredeti műsorban felhasználható 3 segítség: Közönségszavazás, Válasz felezés, Telefonos segítség. A legkiemelkedőbb játékosok eredményei egy dicsőséglistában vannak eltárolva nyeremény és idő szerint rendezve.
A programom tartalmazza az oktatók és hallgatók adatait, a különböző számonkérések eredményeit és csoportbeosztásokat. A nyilvántartás módosítható, így új személyeket lehet létrehozni vagy meglévőket törölni, adataikat/eredményeiket átírni. Továbbá akár egy-egy hallgató vagy oktató adatai, akár teljes listák lekérhetők vagy fájlba menthetők: Nagy házi pótleadás, pót ZH lista, valamint pontszám vagy osztályzat szerinti rangsor. A programom egy speciális funkciója, hogy képes megjeleníteni a hallgatók eredményének eloszlását oszlopdiagramon, grafikus felületen.
A játékprogram a nagyon sokak által ismert Legyen Ön Is Milliomos! televíziós vetélkedőt valósítja meg konzolos formában. Ahogy a tévés verzióban is, a játékosnak 15 egyre nehezedő feleletválasztós vagy sorba rendezést igénylő kérdést kell helyesen megválaszolnia, mely során egyszer-egyszer kérheti a közönség szavazatát, a válaszok számának felezését vagy telefonos segítséget a jó válasz kiválasztása érdekében. Ha a játékos mind a 15 kérdésre helyesen válaszol, megnyeri a 40.000.000 Ft-os főnyereményt és most már ő is milliomos! A konzolos megjelenítés különlegessége, a teljes képernyős mód, a szövegszínezés használata, illetve a szöveg dinamikus középre igazítása a konzol méretétől függően, bármilyen grafikus modul használata nélkül.