2023. május 12., péntek

Widelands

Az egyre távolodó derűs múltban sokat játszottam a Settlers című játéksorozat első néhány tagjával. A bemutatkozás az akkor még forgalomban levő Commodore Amiga gépen történt, de aztán PC-re is átírták; a későbbiek már kimondottan azon voltak elérhetők.

Ha valaki nem ismerné: az alapeszme az, hogy egymással összefüggő egységekből egy hatékonyan működő gazdaságot állítsunk össze adott környezetben. A kis telepesek felépítik a tevékenységhez rendelt épületet, aztán működtetik azt. A favágó kivágja a fákat, a fűrészüzem abból deszkákat készít, amiket általában az építők használnak. Az irányítás indirekt és korlátozott, mi döntjük el, hová épüljön az adott termelési egység, és kifinomultabb esetben beavatkozhatunk, milyen prioritással kapja a nyersanyagait.

A sorozat későbbi tagjainál egyre nagyobb hangsúlyt kapott a megjelenítés, animálás, és valahogy elsorvadt az a hangulat, ami az első kettőnél még megvolt. Szerintem.


Nemrégen belebotlottam a neten egy ingyen letölthető játékra, amely bevallottan a Settlers 2. részét tekintette mintának. További rokonszenves vonása, hogy Linux alatt is fut. A neve Widelands.

A játékmenet és a megjelenítés stílusa teljesen hasonló az elődhöz. Többféle nép van a készletben, amelyek nemcsak az épületek külsejében térnek el, hanem a gazdaságuk is különbözik. A kő és a fa
hasáb mindegyiknél közös az építőanyagoknál, de van, amelyik nádat is használ - ezt külön kell megtermeszteni -, van agyagból téglát készítő; van, amelyik a követ külön faragott állapotban is használja, van, amelyik "edzett" fát is készít. Különféle szöveteket is készítenek vagy harci öltözékhez, vagy vitorlához a hajók számára. A juhgyapjú és a nádszövet még hagyján, de az atlantisziak kukoricafaló pókokat tenyésztenek alapanyag előállítására. A kenyerükbe meg feketegyökeret is sütnek, azt külön kell megtermelni.

Néhány említésre érdemes eltérés a Settlers-hez képest: a katonai épület hatótávolsága itt nem változik az ellenség odatelepülésével. A Settlers-ben ilyenkor a határvonal visszanyomódott, és az esetleg már odaépített épületek leégtek. Építéshez tereprendezés nincs, ahhoz kell alkalmazkodni, amit találunk. Egyébként a terep itt is meghatározza az építhető ház méretét, bár szerintem a térképkészítőben attól függetlenül is korlátozható. Az épületek létesítésénél külön meghatározható a szükséges építőanyagok fontossága, és a működéskor felhasznált alapanyagoké. Utóbbiaknál azt is megválaszthatjuk, mekkora legyen az előzetes készlet. Sajnos, a hordároknak nem tudjuk előírni, milyen prioritással kapják fel a zászlók tövébe tett árukat. A fákat és a kőkupacokat meg lehet jelölni az illetékes dolgozók számára, hogy először azzal foglalkozzanak. A munkahelyek hatóterülete nem választható meg, mindig koncentrikus.  Egyes munkaegységek továbbfejleszthetők, ha a bennük dolgozó elegendő tapasztalatot gyűjtött. És olykor csak a fejlettebb változat termel összetettebb terméket. A barbároknál kissé keveredik a szerszámok és fegyverek előállítása, az alapszintű épület szerszámokat csinál, a továbbfejlesztettek fegyvereket. A szakmunkásokat el lehet bocsátani anélkül, hogy az épület károsodna. Ez olyankor jöhet jól, ha egy másikba szeretnénk hamar dolgozót. A katonák többféle jártasságban fejleszthetők. A katonai épületek mérete és hatótávolsága különböző, a tornyokból messzire látunk, de azok is messziről láthatók - és támadhatók. A katonákból egyenként válogathatunk, melyik vegyen részt egy támadásban. Katapult, vagy egyéb távolsági fegyver nincs, marad a közvetlen hadakozás.

Kezdők számára készítettek oktatójátékokat, és van néhány kötöttebb forgatókönyvű hadjárat a népek bemutatására. Utóbbiak között vannak kimondottan húzós nehézségűek, két záró küldetést a mai napig sem tudtam teljesíteni, akkora túlerőben vannak a gépi ellenfelek. Az elérendő célt pedig nem kötik az orrunkra, aztán, ha az ember más szempont szerint építkezett, futhat neki még egyszer. A térképek készítői előszeretettel csináltak valami szűk keresztmetszetet: valamelyik nyersanyag hiányzik, vagy nagyon kevés/messze van; kevés az építési pozíció nagyobb épületekhez; olyannal is találkoztam, hogy az ültetett fák feltűnően lassan nőttek.


A bejegyzést nem kimerítő ismertetőnek szántam, inkább kedvcsinálónak. Aki tovább tájékozódna, látogassa meg a webhelyet: https://www.widelands.org

szemléltetésül egy képernyőkép virágzó barbár településről:

2022. december 12., hétfő

Cukkini - lencse egyveleg

 Van még a félretett teljes méretű cukkinikből. Nem győzöm eléggé hangsúlyozni, hogy a meghámozása szigorú férfimunka. Cserébe jól eláll.

Lepucoltam, kimagoztam, és a húsvastagság arányában felkockáztam. Fogtam egy gerezd elefánthagymát, meg egy hasonló méretű vöröshagymát, megtisztítottam, finomra aprítottam. Lábas alján olajat hevítettem, szórtam rá őrölt római köményt és koriandert. Utána következett a hagyma. Azt is megfuttattam. Rátettem a cukkinit, meghintettem ételízesítővel, és egy pici vízzel indítva puhára pároltam. A vége felé kapott még bazsalikomot is. Mindezekkel párhuzamosan megfőztem fél csomag lencsét. A harmadik féle összetevő az öntet. Majonéz, tejföl, mustár, két evőkanál csipkelekvár, citromlé, cukor, só, őrölt bors került bele. Kihűlés után mindezt összekutyultam. A készítés szerint valami tokányféle és egy majonézes saláta vadházasságának lehetne a gyümölcse. De ízlik.

2022. december 1., csütörtök

Téli cukkiniétek

 Adott volt a tenyészidőszak alatt teljes méretűre nőtt, félérett cukkini. Először is leküzdöttem róla a héját. Aki nem dolgozik, ne is egyék - ez ebben az állapotában embert kívánó feladat. A belet eltávolítottam, a húsát felkockáztam. Felaprítottam egy nagy és egy kis gerezd "elefánt-fokhagymát", megfejeltem kevés valódi fokhagymával is. Adott volt maradék fűszeres olaj, amelyben korábban aszalt paradicsomok áztatták magukat. Egy hőálló tálban felhevítettem, megfuttattam rajta a hagymát. Megfűszereztem: oregánó, pirospaprika. Beletettem a cukkinit, és hintettem rá ételízesítőt. Mérsékelt lángon kevergettem egy darabig, hogy az olaj és a fűszerek eloszoljanak. Közben főztem rizsszemnek titulált tésztát. Leszűrés után ezt is a tál tartalmához forgattam, és lefedve fél órára sütőbe tettem.

Azért teszem közzé, mert megeshet, hogy másnak is tetszik az eredmény.

2022. június 7., kedd

Elmélkedés a pásztortarhonyáról

Ennek az ételnek meglehetősen sok neve van. A címben szereplőn kívül lehet krumplis tarhonya, öregtarhonya, öhön is. A netes receptoldalakon sok változatban felbukkan. Azért ragadtam billentyűzetet, mert olyan készítésmódok is olvashatók, amelyekre >na, így ne!< a reakcióm.

Az alapvető hozzávaló magától értetődően a tarhonya. Az étel sajátos ízéhez elengedhetetlen, hogy megpirítsuk. A száraztészta magas hőmérsékleten, lassan pirul. És itt jön az én privát fájdalmam. Kizárt, hogy a zsiradékban valami könnyen pörkölődő anyag is legyen. Még a szalonnából kisűlő zsír sem elég tiszta, de vannak, akik kolbászt is pirítanának a tészta előtt. Ennek kétféle kimenetele lehet: a tészta nem pirul optimálisra, vagy a szalonna/kolbász anyagai kozmálnak meg közben. (Nem kizáró vagy.) Az pedig teljesen elképzelhetetlen, hogy még a hagymát is közé akarjuk tenni.

A tarhonya hagyományosan házi készítésű. A gépitől sokáig idegenkedtem, talán mert nem ideálisan elkészített adagokkal találkoztam. Mára belenyugodtam a gépi változatba elsősorban mert az ára kíméletesebb, másrészt az egységes méret egyenletesebb pirítást eredményez.

A krumpli az általánosan vásárolható közepes fövési típusú legyen. Nekem kimondottan tetszik, ha a végső kevergetésnél elmázolódik a tésztaszemeken. Kell még vöröshagyma és pirospaprika. A további hozzávalók már gazdagítást jelentenek. Először is a paprikás ételekbe előnyös kevés friss paradicsom és zöldpaprika. Szezonon kívül erre a célra jól használható az aszalt paradicsom is. A paprikás ételekben kedvelem az erős paprikát. Nem olyat, hogy lángot fújjak, mint Süsü, de legyen érezhető. A hentesáru már urizálás, de a kolbászhoz családi hagyomány alapján hozzászoktam. A lehető legolcsóbb fajtát használom, a lecsókolbászt. Nem mondom, hogy némi füstöltség bántana, de én nem igénylem. Ami zavar, ha a kolbász kemény. Tehát a száraz kolbászokat nem teszem bele. Sok változatban szerepel a szalonna; szentségtörésnek nem tartom, de ahhoz sem vagyok hozzászokva.

A készítés az eredeti környezetben természetesen bográcsban történt. Az megint családi örökség, hogy én kuktában szoktam főzni, így legalább az a fázis rövid. A krumpli, hagyma, kolbász előkészítése a hosszabb.

Amint már említettem, a tészta pirítása fontos és érzékeny művelet. Ezt külön, egy jó szendvicstalppal rendelkező serpenyőben szoktam végezni. A zsírral nem lehet nagyon takarékoskodni, mert akkor nem lesz egységes a színe. Olyan békebeli zsemleszín az ideális. Amikor jó, lehúzom a lángról, és hozzáadom az aprított vöröshagymát. Ez visszahűti valamennyire, így már nem hevül túl a pirospaprika. A szín kioldódásához elég a hőmérséklete. Közben a kukta aljára beteszem a kis kockákra vágott krumplit, felöntöm annyi vízzel, hogy két ujjnyira ellepje, és igyekszem úgy időzíteni, hogy akkor forrjon föl, amikor a tarhonyán már a paprika is rajta van. A krumplira teszem a paradicsomot, zöldpaprikát, erős paprikát, és sót meg ételízesítőt. Ha forr, hozzáadom a tarhonyát, és a legtetejére a kicsire aprított kolbászt. Keverés nélkül lezárom, és a kifúvástól számítva 7 percig főzöm.
A leírt módon a fazék alján a krumplidarabok között marad víz, nem ragad le az étel. Ha összekeverjük, akkor nagyon kényessé válik a láng erősségére, mert az alulra kerülő tarhonyaszemek magukba veszik a vizet. Akkor szoktam összekeverni, amikor már levehető a teteje. Gyakori, hogy még kiegészítem a pirospaprikát, illetve ha erősként valami paprikakrémet használok, az is jó ilyenkor. Csak a sózásnál számításba kell venni.

Ehhez az étekhez kimondottan kívánkozik a savanyúság. Savanyú uborka, almapaprika, fejes saláta, vagy vegyes vágott.

2022. április 23., szombat

Kubuntu 22.04 beüzemelése

 Új számítógépet kellett operációs rendszerrel ellátnom, ehhez kivártam az új LTS verziót. A telepítés különösebb bonyodalmak nélkül, gyorsan lezajlott. Utána következett a testreszabás. A KDE Plasma asztali munkafelület alapértelmezett színvilága nem kimondottan az esetem. A KDE Store oldalon lehetőség van több szinten is előzékeny fejlesztők témáit alkamazni. 

A Rendszerbeállítások megfelelő rovatában (Megjelenés) azonban nem sikerült aktivizálni az új témák letöltését, minden megmozdulásra egy undok hibaüzenet ugrott fel: 

"Unknown Open Collaboration Service (0) API error."

Természetesen nekifogtam keresgélni; mint kiderült, sokan kaptak már ilyen hibát, ráadásul sok évvel ezelőtt is. A találatok többségénél azonban megoldás nem szerepelt. Végül egyiknél egy kevésbé biztatónak tűnő tippet leltem, miszerint át kell állítani a nyelvet angolra. És láss csodát, ilyen módon sikerült más témát telepíteni.


2022. március 21., hétfő

Mai zenei ajánlatom

Geoff Castellucciról csak a Youtube-on keresztül tudok. De olyan hangterjedelemmel és hangszínnel bír, hogy érdemesnek tartom egy bejegyzésre.

Az első videóban saját magával többszólamúzik, a Hobbit filmből a törpök énekét adja elő.

A másodikban a VoicePlay együttesben halljuk. Az összeállítás tébolyult, de nagyon jól hangzik. És minden összetevője kiváló: a maszkok, a játék, a hangosítás is.


 


2022. február 2., szerda

PyQT5 ügyek

Meglehetősen kezdő vagyok a fent említett rendszerben. Eddigi működésem során két olyan nyögvenyelős témába botlottam, amikről úgy gondoltam, tovább adok némi információt. A nagyon profik talán nem érzik úgy, amikor magyarázzák, hogy ezek a dolgok problémásak, a dokumentáció pedig nem túl bőbeszédű.

Az egyik ilyen a drag and drop - magyarabbul a húzd és ejtsd - műveletek megvalósítása. Nekem kisebb méretű képek mozgatására volt szükségem, és egy darabig keresőztem, mire bele kellett nyugodnom, hogy önmagukban nincsenek ilyenre felkészítve. Kellő elszántsággal valószínűleg ki lehetne terjeszteni a QImage vagy QPixmap osztályokat úgy, hogy önmagukban is húzhatók legyenek. De egyszerűbbnek tűnt ráültetni QLabel widgetre, az pedig alkalmas húzásra és ejtés fogadására is. A ráültetés a setPixmap(pixmap) tagfüggvény útján lehetséges. A neten lelhető példák bonyolultsága nem sokkal múlja felül a Hello, World szintet. Ráteszik a képet a QLabel elemre, hozzáadják a szülőhöz, és íme, látható. Ami a hozzám hasonló zöldfülűnek nem nyilvánvaló, az az, hogy ez a paintEvent függvény eredeti működését feltételezi. Ha azt az ember egyéb okból felülírja, akkor bele kell tennie a QPixmap kirajzolását is a megjelenéshez.
A húzás megkezdésekor lenyomjuk az egér bal gombját. A mousePressEvent függvénybe lehet beleírni, hogy mentse el a kezdő pozíciót - már ha szükségünk van ilyenre. A mouseMoveEvent függvényben pedig először is tisztázzuk, hogy le van-e nyomva a bal gomb, aztán létrehozunk egy QDrag objektumpéldányt. Ez fogja eljuttatni a célba azokat az adatokat, amelyeket szeretnénk. Ehhez alapesetben kell egy QMimeData típusú konténer. A Mime adattípusok szabványosak, így lehet másik alkalmazásba/ból is húzogatni dolgokat. Nekem a képre csak a felhasználó szemének vidítására volt szükségem, ezért a kínálatból a szöveg (text) adattípust választottam, ebbe kódoltam bele az átjuttatni kívánt adataimat. A drag objektumhoz hozzá lehet rendelni egy független QPixmap képet is, ez az, amit mozogni látunk a képernyőn. (Ide került az én képecském.) A drag exec_(mód) függvényével működtetjük a húzási effektust. A paraméterrel választhatunk, hogy pl. másoljuk a vonszolt adatcsomagot, vagy mozgatjuk. (Nekem QT.CopyAction.)
Az ejtés fogadásához, amely nálam szintén QLabel, kell egy kis előkészület: a setAcceptDrops(True) meghívása. A dragEnterEvent függvényben vizsgálatokat végezhetünk, hogy az adott érkező kívánatos-e. Ha igen, event.accept(), ha nem, event.ignore() . Végül aztán a dropEvent függvényben további vizsgálódás után kinyerjük a mimeData tartalmát és felhasználjuk. Megint csak accept-tel zárunk, ha minden rendben, és ignore, ha valamely szükséges feltétel nem teljesül.

A másik tárgykör, ami sok fejtörést okozott, a dialógusablak használata és a válasz birtokbavétele. Odáig sima ügy, hogy kapunk egy QDialog nevű alaposztályt, amely üres, tehát öröklés útján építünk rá egy sajátot, amely tartalmazza a megfelelő beviteli eszközöket, és kezelőgombokat. Utóbbiakhoz jól használható a QDialogButtonBox, ehhez jár többféle előre elkészített típus (OK, Cancel, Save, stb.). Ha használjuk, a buttonbox szignáljait csatlakoztatjuk az ablak accept, ill. reject slotjaihoz. Itt jött a bonyodalom, mert ha a slot függvényekbe tettem saját kódot, akkor sose sikerült tisztességes visszaadott értéket kapni. Akkor se, ha beleírtam az ősosztály meghívását. Pedig azt hittem, hogy a saját bekért adataimat ott kellene return-ba tenni. Az adatok visszaadásáról igazán írhattak volna valamit a dokumentációba. Végül a megoldást az jelentette, hogy egy külön függvénybe tettem ezt a return-t, az accept és a reject pedig felülíratlan maradt. Ilyen módon az ablak indítása (exec_) után a visszakapott eredményt a QDIalog.Accepted értékkel hasonlítva eldönthető, hogy kell-e értelmes adatot találni, és a külön visszaadó függvénytől (respond-nak neveztem) vesszük át az adatot. Nekem ugyan nem világos, hogy az ablak becsukódása után hogyan lehet még függvényt hívni benne, de működik.

A szemléltető programrészeket inkább képként illesztem be. Nincs kedvem a python program rendezett és színezett megjelenítésével vesződni, bár úgy sejtem, lehetséges.