2022. július 17., vasárnap

Star Realms stratégiák

Ebben a cikkben próbálok néhány épkézláb gondolatot írni a játékban alkalmazható stratégiákról. BGG-n, illetve néhány blogban olvasok stratégáiákról, érdekes helyzetekről. Ezek tapasztalatát, vagy véleményemet szeretném itt gyűjtnei.

Véleményem szerint nem helyes az ha rááluunk az egyik szövetségre és csak annak a lapjait vásároljuk. A játék folyamatában más más lapokra van szükség a játék elején mint a végjátékban. És sokszor a játék elején-közepén használt lapok, nagyon idegesítőek amikor már az utolsó sebzést szeretnénk bevinni.
Milyen jó is az, amikor tudod hogy két köröd van, mert a harmadik körben már meg fogod kapni a kegyelemdöfést. Húzol és a kezedbe 3 Viper figyel.... Nincs ennél rosszabb szvsz.
A játék első köreiben olyan lapokat érdemes gyűjteni amik alapból kereskedelmi pontokat adnak, ha lehet akkor minél többet. Ha ez mellé ad valami mást is (pl gyógyít, vagy húzhatsz még egy lapot) az már nagyon jó. A kék és fehér lapok jók ide jellemzően. 2-3 körben érdemes ezeket gyűjtögetni. Ezek a lapok csupán a végjátékban lesznek feleslegesek, de jól jöhet ha gyógyulunk még éppen és ezzel plusz egy kört kapunk.
A kezdeti szakasz végén már el kell kezdeni gyűjtögetni azokat a lapokat amikkel a felesleges lapoktól meg tudunk szabadulni. Ilyenek a piros lapok. Ezek speckó képessége általában az hogy a kezünkből vagy a dobott lapjaink közül dezintegrálhatunk. Ezekkel célszerű kidobálni a Vipereket, hiszen azokra egyre kevésbé van szükség mert a kreditet adó lapokat vásároltuk a játék elején. Miután megszabadultunk ezektől, már csak olyan lapot fogunk húzni ami vagy sebez, vagy gyógyít, nem beszélve arról hogy a szövetségi képességek is nagyobb valószínűséggel és hatékonysággal fognak kisülni.
A végjátékban el lehet jutni odáig, hogy gyakorlatilag a teljes paklit a kezünkbe tudjuk venni a különféle húzatási lapokkal. Ez már a kegyelemdöfés. 30-40 sebzést is be lehet így vinni.

2019. február 25., hétfő

Star Realms kártyajáték

Star Realms kártyajáték



Áttekintés

A Star Realms egy pakliépítő játékmechanikát alkalmazó, sci-fi tematikájú kártyajáték, melyben a játékosok űrflottájukat fejlesztik azzal a céllal, hogy saját magukat megvédjék és az ellenfelek védelmét felszámolva végül azokat teljesen megsemmisítsék. A flotta építése a játék lényege. Az összegyűjtött lapokból körönként 5 kerül a kezünkbe, melyek különféle tulajdonságokkal rendelkeznek. Ezeket kijátszva és a tulajdonságokat használva tudunk csapást mérni ellenfelünkre,  regenerelhatjuk sérüléseinket, védelmet húzhatunk magunk köré, bővíthetjük, alakíthatjuk a flottát újabb lapok beszerzésével. A rendelkezésre álló lapok egymással kombinálva még erősebbek lesznek, még hatékonyabban haladhatunk a végső győzelem felé. Rengeteg jólműködő koncepció létezik, nincs tuti győztes módszer.
Az alapcsomag két játékos egymás elleni játékához elegendő. További kiegészítőkkel, vagy újabb alapcsomagokkal növelni lehet a játékosszámot. A kiegészítők megvásárlása nem kötelező, az alapcsomaggal is minden parti élvezetes, változatos lesz, de érdemes beszerezni hogy még változatosabb, összetettebb legyen a játék.
A legtöbb lapon ikonok és számok láthatók, melyek mutatják a képességeket. Minimális angol nyelvű szöveg is található némelyik lapon, de ezek nagyon gyorsan megtanulhatók. Ezek fordítását alább megtalálod.

Mint írtam, több játékos is játszhatja, de véleményem szerint maximum 4 játékosnak érdemes játszania. Ennél több játékos esetén hosszúra nyúlhat a játék. Mi jellemzően ketten játszunk, illetve a kiegészítőkben vannak különböző küldetéskártyák, amik nagyon élvezetes egyszemélyes játékot is lehetővé tesznek, így igazán nincs akadálya annak sem, hogy partner nélkül élvezd a Star Realms-t. Léteznek kooperációs küldetések is, ahol a cél nem egymás legyőzése, hanem összedolgozva egymással egy főgonosszal kell megküzdeni.

Alap pakli

Az alap készlet ára 4-5000 forintos áron beszerezhető a nagyobb társasjáték szaküzletekben, online társasjáték boltokban. A csomag 128 db szépen illusztrált lapot tartalmaz. Ezen kívül már csak két játékos kell és indulhat a játék.

Az alapkészlet a következőket tartalmazza:
  • 80 lapos Kereskedelmi Pakli (Trade Deck), melyben hajók (ship), bázisok (base) és úgynevezett előretolt bázisok (outpost) lapok találhatók.
  • 10 db Explorer lap, melyek extra erőforrásként bármikor rendelkezésre állnak. Az Explorer is hajónak minősül, egyégesen 2 kreditbe kerülnek és játékba kerüléskor 2 kreditet adnak, feláldozva pedig 2 támadóponttal növelik a tűzerőnket.
  • 10 - 10 db lapot tartalmazó kezdő pakli két játékos részére, ami 2 Viper és 8 Scout lapot tartalmaz. A Viper egy támadóponttot ad, a Scout pedig egy kreditet.
  • 18 speciális lap a hatalompont (Authority) jelölésére. Helyette használhatók kockák, vagy akár papiron is vezethetjük az aktuális hatalom pontokat.
  • Szabály két játékosra
  • Szabály több játékosra

Előkészületek

A játékosok megkapják a hatalompont jelző kártyákat, alap esetben 50 hatalompontra állítva (1x20, 2x10, 1x5, 5x1). Minden játékos megkapja saját kezdő pakliját, melyekben 8 db Scout és 2 db Viper lap található. Ezt megkeverve képpel lefelé helyezzük az asztalra. Az Explorer lapokat tegyük egy kupacba. Mellette sorba rakjunk ki képpel felfele, a jól megkevert Kereskedelmi Pakliből 5 db lapot, ez lesz a Kereskedelmi Sor. A játékosok saját körükben a Kereskedelmi Sorban található lapokból vásárolhatnak. A kereskedelmi sor mellé rakjuk a kereskedelmi pakli többi lapját képpel lefelé. A kereskedelmi pakli mellett hagyjunk helyet a játékból kivont (scraped) lapoknak.

A játék menete

A játék körökből áll, melyek fázisokra bonthatók. Az egyes fázisokban meghatározott cselekedeteket végezhetnek a játékosok. A játékosok egymás után hajtják végre köreiket. Mindenki a saját körében cselekszik.
A kör a következő fázisokból áll, melyek egymást követik:
  • Fő fázis
  • Dobási fázis
  • Húzási fázis

Fő fázis

A fő fázisban az aktív játékos a következő cselekedeteket végezheti, akármilyen sorrendben és akár hányszor. 
  • Kijátszhat egy lapot
    Ha egy lap kijátszásra kerül, akkor a rajta szereplő elsődleges képességek azonnal végrehajtódnak. A szövetségi képességek és a feláldozási képességek bármikor használhatók amikor azok bekövetkeznek. A kijátszott lapok az asztalon maradnak a fő fázis végéig.
Mi a következő módon kezeljük ezt a szabályt (ez nincs benne a szablykönyvben): Ha egy lap az asztalra került és azt a játkos elengedte, akkor minősül kijátszottnak. Kijátszott lapot kézbe visszavenni csak akkor lehet, ha egy lap erre utasítja a játékost. A kijátszás sorrendje így nem változtatható utólag még akkor sem, ha kiderülne hogy hatékonyabb sorrend is létezik. Fogjuk fel úgy, hogy a flotta Admirálisa így tartotta helyesnek, és ugyebár az Admirális döntése határozott és végleges szokott lenni :) 
  • Vásárolhat egy lapot a Kereskedelmi sorból (Aquire)
    Vásárolni kereskedelmi pontokért (kredit) lehetséges. A kereskedelmi pontok a lapok kijátszásakor, illetve szövetségi vagy áldozási képesség eredményeként szerezhetők. A megszerzett kereskedelmi pontok használhatók vásárlásra. A lapok költsége a lap jobb felső sarkában látható. Az itt szereplő mennyiségű kereskedelmi pontot kell kifizetni a lap megvásárlásakor. Vásárlás után a lap a gyűjtőbe kerül a felhasznált lapok közé. A lap megvásárláskor nem használható.
  • Feláldozás képesség használata (Scrap)
    Egy lap feláldozásakor a megsemmisítőbe kerül. (C3PO azt mondaná hogy véglegesen dezintegráljuk) A játékból így kikerült lapok már nem hozhatók vissza, nem keverhetők vissza a paklikba. Scrap-elni lapot a kereskedelmi sorból, a kezünkből vagy a dobott lapok közül lehet, ha valamelyik lap képessége ezt lehetővé teszi.
  • Támadást indíthat (Attack)
    A támadási pontokat lapok kijátszásakor, vagy képességek használatakor szerezhetünk. A támadási pontok a támadópont gyűjtőbe kerülnek (combat pool). Innen lehet felhasználni sebzést okozva az ellenfélnek - ezáltal csökkentve annak hatalmát - , vagy valamelyik bázisának. 

Dobási fázis

A dobási fázisban a bázisok kivételével minden kijátszott lap a gyűjtőbe kerül.

Húzási fázis

A játékos húz öt lapot. Amennyiben a húzópakliban nincs 5 lap úgy a gyűjtőt újrakeverjük, majd képpel lefele tesszük, ez lesz az új húzó pakli amiből felhúzhatók a hiányzó lapok.

Gyakori mondatok magyar fordításai


  • You may destroy target base
    Célpont bázist megsemmisítheted (ha akarod)
  • Scrap a card in your hand or discard pile
    Dobj ki egy lapot a kezedből vagy a dobott lapjaid közül (az így kidobott lap nem keverhető vissza a húzó pakliba)
  • Target oponent discard a card
    Célpont ellenfél dobjon egy lapot
  • Draw a card
    Húzz egy lapot
  • Draw two cards
    Húzz két lapot
  • Scrap a card in the trade row
    Dobj ki egy lapot a kereskedelmi sorból.
  • Put the next ship you aquire this turn on top of your deck
    A következő megvásárolt hajót tedd a húzópaklid tetejére. (bázist nem, csak hajót!)





2018. október 24., szerda

Pakliépítős (deck building) kártyajátékok

Korábbi cikkekben már írtam a fantasy kártyajátékokról (Magic The Gathering, Hatalom Kártyái) és néhány számítógépes változatról (MTG Online, HKK Online, Heartstone). Ezek lényege - mint ahogy írtam - hogy minden játékos saját paklit épít az összegyüjtött (vásárolt vagy cserélt) lapkészletéből. Rengeteg idő, energia és nem kevés pénz, ráadásul két "fanatikus" játékos kell legalább ahhoz, hogy játszani lehessen. Nem beszélve a nem éppen egyszerű szabályrendszerről ami ezeket a játékokat jellemzi.
Sokáig kerestem a megoldást, hogyan lehetne egyedül játszani ha már vannak lapjaim. Voltak próbálkozásaim de nem nagyon jöttek be ezek. Végül a számítógépes megvalósításoknál kötöttem ki,  a Heartstone lett a kedvencem. Rengetegen játszák, jó a mesterséges intelligencia elleni játék, pénz nélkül is teljesen élvezhető.

Mindazonáltal hiányzott a fizikai kártyalap és az élő, velem szemben ülő játékostárs, akivel még dumálni is lehet :)

Nemrégiben bukkantam rá egy újfajta, számomra eddig ismeretlen játkmechanikát használó kártyajátékokra. A játékmechanika nem más mint a pakliépítés (deck building), viszont ez itt nem azt jelenti, hogy mindenki összerakja a saját pakliját az összegyűjtött lapokból, hanem épp ellenkezőleg működik. A lényeg, hogy a játékban fellelhető összes lap rendelkezésre áll, abból játszik minden játékos. A lapok száma azért jóval kevesebb mint pl a Magic-ben, de azért néhány száz lap van ezekben a játékokban is. Ezeket egyetlen húzópakliba tesszük, majd az egy, két vagy több játékos ebből a pakliból vásárolgatja össze valamilyen erőforrásból a saját paklijába a lapokat, meghatározott szabályok szerint. Jónéhány ilyen játék létezik, de a legtöbb ugyan azt a módszert alkalmazza. A húzópakliból néhány lapot (jellemzően 5-6) felcsapunk és ebből lehet vásárolni. A megvásárolt lap helyére újabbat teszünk a közös lapokból. A játékosok kezdetben egy minimális, csupán erőforrást és néhány sebzést adó alap paklival kezd (általában 10 lapos). Általában három erőforrás van: életerő amit 0-ra kell leütni mielőtt a tiedet üti le más, pénz amiből lapokat lehet vásárolni és sebzés amivel a másik életerejét lehet csökkenteni. A lapok ezeket az értékeket manipulálják, kombinálva több lapot pedig tovább lehet növelni a nyerési esélyeket. A lapokat egyszer kell kifizetni, így a játékosok saját paklijába kerülnek, amiből a körben adott számút (ötöt) kell húzni. A lapok innen már ingyen kijátszhatók. A rajta lévő utasításokat (ami gyakran csupán ikonok és számok) végre kell hajtani, majd a kör végén a saját dobópakliba tenni. Ha elfogyna a saját húzó pakli, akkor egyszerűen újrakeverjük a korábbi körökben kijátszott lapokat és már folytatódhat is a játék. Lehet véglegesen kivonni a játékból lapokat, ilyenkor azok már nem keverhetők vissza.
További játékelem a kasztok, klánok, szövettségek (Magic terminológiával színek). Általában négy szín van ezekben a játékokban is. Mindegyik másban erősebb. Van amelyik több pénzt termel, van amelyikkel gyorsabban lehet pörgetni a paklinkat, van amelyik az ütéseket erősíti stb.... Az azonos színű lapok egymást sokszor erősítik és extra bónuszokat adnak.

A játék jellemzői:

  • nagyon egyszerűek a szabályai, néhány perc alatt megérthetőek és gyorsan el lehet kezdeni a játékot. Ezért szeretik azok is, akik nem éppen hardcore játékosok (feleség, barátnő, fiatalabb gyerek :) )
  • Nincs gyüjtögetés! Néhányezer forintos beruházással a teljes lapkészletet megkapjuk. Itt is vannak kiegészítők, amik megpróbálják bővíteni, finomítani a játékegyensúlyt. Azért el lehet itt is könnyen 10-20 ezer forintot költeni, de alap készlettel is nagyon sokáig (évekig) izgalmas partik játszhatók.
  • Jellemző a passziánsz játéktípus megvalósítása is, ahol igen ötletesen kezünkbe adnak olyan szabályokat amik megvalósítanak egyfajta mesterséges intelligenciát, amit le kell gyűzni. Ezekből versenyek is vannak (természetsen a BGG fórumán lehet ilyeneket találni).
  • a szerencse azért itt is közrejátszik - még jó hogy, hiszen kártyázunk :), de azért nem vészes. A közös pakliból előkerülő lapok amik a szerencse rovására írhatók, de én úgy vettem észre hogy mindig ki lehet alakítani olyan paklit amivel meg lehet nehezíteni az ellenfelünk dolgát


És végül néhány játék ami erre a mechanikára épül:

  • Star Realms
  • Hero Realms
  • Cuthulu Realms
  • Epic Card Game
  • Sorcerer
  • Race for the Galaxy
  • Ascentions
Én először a Hero Realms-be vágtam bele, aztán a Star Realms-et is kipróbáltam. Most a Star Realms a kedvencem, erről írok hamarosan bővebben.

2015. július 29., szerda

Elfelejtett MySQL root jelszó megváltoztatása

Ha elfelejtenéd a mysql szervered root jelszavát, így változtathatod meg. A művelethez rendszergazdai jogosultság kell (parancsok sudo-val)

  1. Keresd meg a mysql process-t (PID):
    ps -ef  | mysql
  2. Lődd ki a folyamatot (nálam a PID 8629 volt):
    kill -9 8629
  3. Indítsd a mysql-t biztonsági módban, jogok nélkül:
    mysqld_safe -skip-grant-tables & 
  4. Jelentkezz be a mysql konzolba jelszó nélkül:
    mysql -u root mysql
  5. Frissítsd a jelszót user táblában:
    UPDATE user SET password=PASSWORD("newpassword") WHERE user="root";
    FLUSH PRIVILEGES;
  6. Lépj ki a mysql konzolból:
    exit
  7. Az 1. és 2. pontokban leírtak alapján lődd ki a a mysqld_safe processt
  8. Ha futna a mysqld process is azt is lődd ki.
  9. Indítsd a mysqld-t a rendszerednek megfelelő paranccsal:
    /etc/rc.d/rc.mysql start
    /etc/init.d/mysql start (nálam ez kellett UBUNTU 15.04 alatt)
    /etc/rc.5/mysql start
  10. A jelszó megváltoztatva. Próbáld ki, most kérni fogja a jelszót:
    mysql -u root mysql 

2015. július 28., kedd

Fényképek átméretezése Linux alatt (convert)


képek tömeges átméretezésére a következő parancsot használhatjuk Linux parancssorban.

for file in *.jpg; do convert $file -resize 1024 -quality 90 resized-$file; done

A convert parancsot az imagemagick csomag tartalmazza.

részletek, leírás az átalakításról:

http://www.howtogeek.com/109369/how-to-quickly-resize-convert-modify-images-from-the-linux-terminal/



2015. június 22., hétfő

Hogyan tegyünk utólag időbélyeget a fényképeinkre

Nemrégiben szükségem volt arra, hogy meglévő fotókra utólag rákerüljün a készítés időpontja. A legtöbb digitális kamera képes arra, hogy az exponáláskor a képere ráteszi a készítés dátumát. Azonban ha így készülnek a fényképeink, akkor ezt utólag eltüntetni már nem lehet. Ekkor jöhet jól a következő módszer.

Biztosan léteznek rá különféle programok, szerkesztők, amikkel ez manuálisan vagy akár automatikusan is megoldható. Nekem sokkal jobban tetszik az a módszer amikor parancssorban egy szkriptet ráengedek egy könyvtárra és megoldja a feladatot. Nem kell pepecselni, elkészül és kész.

Ami szükséges hozzá az az ImageMagick nevű programcsomag. Ez a csomag létezik Windows, Linux és MacOS verziókban. Én Linuxot használok, így a Linuxos telepítést és szkriptet fogom itt közzétenni.


  1. Telepítsük az ImageMagick csomagot:
    sudo apt-get install imagemagick
  2. Igazán hatásos az LCD Font nevű ingyenes fontkészlet, melyet töltsünk le és csomagoljuk ki valahová. Nem kell telepíteni, a szkriptben kell megadni a könyvtárat ahol a font található. Ha ezt a lépést kihagyjuk akkor egy alapértelmezett betűtípussal fog dolgozni a szkript. 
  3. Íme a szkipt. Ezt másoljuk ki és mentsük el pl. dtmstamp.sh (bármi más név is jó lesz), majd írjuk át a 3. sorban az elérési utat a letöltött fontkészlet helyére.
    #!/bin/sh
    # Change the font variable to point to your font location
    font="/Users/max/Library/Fonts/digital-7 (mono).ttf"
    
    if [ $# -eq 0 ]
       then
          cat << _EOF_
    
    USAGE: $0 file1 file2 ..., or
           $0 *.jpg, or
           $0 dir/*.jpg
           ...
    
    _EOF_
          exit
    fi
    
    while [ "$1" != "" ]; do
            # Skip directories
            if [ -d "$1" ]; then
                    shift
                    continue
            fi
            # Skip already converted files (may get overwritten)
            if [[ $1 == *_DT* ]]
            then
                    echo "------  Skipping: $1"
                    shift
                    continue
            fi
    
            # Work out a new file name by adding "_DT" before file extension
            file=$1
            echo "######  Working on file: $file"
            filename=${file%.*}
            extension=${file##*.}
            output=${filename}_DT.${extension}
    
            # Get the file dimension
            dim=$(identify -format "%w %h" "$file")
            width=${dim%% *}
            height=${dim#* }
    
            # Decide the font size automatically
            if [ $width -ge $height ]
            then
                    pointsize=$(($width/30))
            else
                    pointsize=$(($height/30))
            fi
    
            echo "        Width: $width, Height: $height. Using pointsize: $pointsize"
    
            # The real deal here
            convert "$file" -gravity SouthEast -font "$font" -pointsize $pointsize -fill white -annotate +$pointsize+$pointsize "%[exif:DateTimeOriginal]" "$output"
    
            shift
    done
    
    exit 0
  4. Mentsük a szkritpet és tegyük futtathatóvá:
    chmod +x dtmstamp.sh
  5. Futtassuk a szkriptet a következők szerint:
    ./dtmstamp.sh eleresi_ut/*.jpg
  6. A megadott elérési úton az összes jpg fájlról készül egy másolat. A fájl "_DT" végződéssel lesz átnevezve.  Rákerül a kép készítésének időpontja, mégpedig az ami az EXIF adatokban szerepel. Az EXIF adatok minden fényképre rákerülnek a kép készítésekor, letiltani sem lehet. Természetesen szükséges a fényképezőgépen a dátum pontos beállítása. 
FIGYELEM!!! Ha a kép már szerkesztve lett, akkor előfordulhat (nagy valószínűséggel így lesz) hogy a képszerkesztő program átírja, vagy törli az EXIF adatokat. Célszerű tehát az eredeti vágatlan, módosítatlan nyers képet dátumozni.



A leírás a következő cikk alapján készült: http://dptnt.com/2009/08/add-date-time-stamp-to-jpeg-photos-using-free-software-mac-linux-nix-edition/

2014. augusztus 21., csütörtök

Web alkalmazás Hibernate + Vaadin segítségével

Diplomamunkám témája a Jáva objektumok perzisztens kezelése volt, mely kapcsán a Hibernate keretrendszert tanulmányoztam és alkalmaztam.
Röviden a perzisztenciáról annyit mondanék, hogy egy Java program futása közben létrejövő objektumokat a perzisztencia kezelő keretrendszer segítségével nagyon egyszerűen tárolhatók, kezelhetők adatbázisokban. Ezzel gyakorlatilag leveszi a programozó válláról azt a terhet hogy az adatbáziskezelés aprólékos feladatával foglalkozzon. Így sokkal inkább a probléma megoldásra koncentrálhatunk. XML fájlok segítségével vagy @nnotációk használatával konfigurálható hogy az objektumok adatmezői melyik adatbázis, melyik táblájában tárolódjanak.
Több keretrendszer létezik erre a feladatra, melyeket objektum-relációs leképező (Object Relation Mapping, ORM) rendszereknek nevezünk. Az egyik ilyen rendszer a Hibernate, melyet széles körben használnak.
Magáról a Hibernate-ről most részletesen nem szándékoztam írni, talán majd egy későbbi alkalommal indítok egy ilyen cikksorozatot.

A jelen jegyzet oka csupán annyi hogy hogyan hoztam létre az első Vaadin - Hibernate háromrétegű alkalmazást.

Természetesen a Hibernate is JAR fájlok formájában érhető el. Ezeket a JAR-okat kell a projektünkhöz kapcsolni és már használhatjuk is a rendszert. Ezt a WAR fájlok definíciója szerinti helyre kell tenni. Ha EE projektben dolgozunk akkor a WEB-INF/Lib alá kell importálni a Hibernate JAR-okat, hogy az alkalmazásszerver (AS, mint pl a Tomcat) használni tudja.
Ezt két módon tehetjük meg. Az első módszer szerint a projekt WEB-INF/Lib mappájába importáljuk a fájlrendszerből a szükséges JAR fájlokat. Ez a Hibernate lib könyvtárában lévő JAR-ok és a használt adatbáziskezelő JDBC elérését biztosító JAR.



A másik módszer szerint a projekt Properties-t indítva a Deployment Assembly opción belül az Add.. gombbal tudjuk a megfelelő helyről betölteni.


Én a példámban létrehoztam egy Vaadin projektet, majd a kis demó programot átírtam úgy hogy a gomb kattintásra generál egy egyedi azonosítót (osztályváltozóba), majd egy üzleti logikának felfogható másik osztályból példányosít egy objektumot ami felépíti a Hibernate kapcsolatot, illetve ennek az addNewRecord nevű metódusa letárolja a generált azonosítóval az objektumot.