Kezdőoldal » Számítástechnika » Internet » Sokan játszanak most on-line...

Sokan játszanak most on-line társasjátékokat, de a szerverek sokszor leterheltek. Hogyan lehetne az alábbit a legjobban megoldani házilag?

Figyelt kérdés
Sok játéknál elég lenne egy előre legenerált pakli kártyát használni on-line. Tegyük fel hogy ezt szeretném megoldani. Milyen módszer a legjobb szerintetek? Tehát egy véletlenszerűen generált kártyasorrendhez szeretném, ha hozzájutnának a játékosok. A generálás ugye pár sorban megoldható akár egy javascripttel is, amit akár a blogomba is beilleszthetek, de az a baj, hogy a javascript az mindenkinek a saját böngészőjében fut, tehát nem közös. Amit meg kéne oldani az az, hogy mindenki ugynazt lássa, és lássuk azt is, ha valki frissít, hogy ne tudjon csalni. de a lehető legegyszerűbb megoldás kéne, php-nél egyszerűbben nem lehet?

2020. ápr. 23. 09:37
 1/4 anonim ***** válasza:

Ha van blogod, tudtok hozzászólást küldeni benne.


A hozzászólásban meg el lehet küldeni - a sakklépések jelöléséhez

[link]

hasonlóan - a kártyalapok küldésének módját is - például:

[link]

a Javascript úgy jöhet be a képbe, hogy mindezt automatizálja: figyeli (a meglevő hozzászólások alapján), hogy ki, mikor, mit csinál - húzott a talonból, eldobott egy lapot, átadott egy játékosnak, ki jön, stb... - és ez alapján vizualizálja a játékot és a felhasználó interakciója alapján küld el hozzászólást a (bejelentkezett) felhasználó nevében.


Mindez átültethető azonnali üzenetküldő platformokra, csevegőcsatornákra is. Ha nincs API-juk, de van webes felületük, szóba jöhet a GreaseMonkey/Tampermonkey is (az is Javascript-alapú).

2020. ápr. 23. 12:52
Hasznos számodra ez a válasz?
 2/4 anonim ***** válasza:

A fő kérdést a talon, az abból, vagy más játékostól történő rejtett húzás jelenti.


Ehhez kellene egy független, "játékvezető" játékos, akinél játék kezdetén lokálisan generálódik egy véletlenszerű kártyasorozat (ez lokálisan tárolható Localstorage-ben) - ez lesz a talon.


A rejtett húzásokat kétkulcsos titkosítással lehetne megoldani:

1. az egyik (például aki húzni szeretne) fél elküldi a publikus kulcsát a másiknak

2. a másik (például akitől húzni szeretnének, vagy akár a talon esetén is) fél a küldeni kívánt kártya publikus kulccsal titkosított változatát

3. az egyik fél a nála levő privát kulccsal dekódolja a kártyát

2020. ápr. 23. 13:29
Hasznos számodra ez a válasz?
 3/4 A kérdező kommentje:

nem kell annyira bonyolult titkosítás, megbízunk egymásban, hogy nem csalunk, csak legyen praktikus


nem kell semmiféle vizulizáció se, mindneki maga vezeti, olyan játékok ahol monjuk mindneki a saját setjeit gyűjtögeti, saját tablóját vezeti, vagy flip and write játékok, csak kell egy közös pakli

2020. ápr. 23. 21:02
 4/4 anonim ***** válasza:

"nem kell annyira bonyolult titkosítás"

A titkosítást azért említettem, mert a kártyajátékok egy jó részénél a talonból/-ba vagy másik játékostól/-nak való átadás során a többi játékos számára az átadott lapoknak rejtve kell maradnia, ellenkező esetben könnyen tudnak stratégiát kialakítani.


A kétkulcsos (aszimmetrikus) titkosítás meg a titkosítás egyik formája, ahol két kulcs van: az egyikkel - a publikussal - csak titkosítani lehet, a másikkal - a priváttal - meg dekódolni. A publikus kulcsból nem (könnyen) deríthető ki a privát, így ha egy harmadik fél megszerezné a publikus kulcsot, még nem tudja elolvasni a másik féllel történő üzenetváltásom (jelen esetben kártyacserét).


Erre Javascriptben vannak előre megírt függvénykönyvtárak - például:

[link]


"nem kell semmiféle vizulizáció se"

A "vizualizációt" értsd úgy, hogy a blog/chat hozzászólást beküldő űrlapját kiegészíted pár gombbal - "kártyát húzok a talonból", "kártyát dobok", "kártyát adok xyz-nek", "kártyát húzok xyz-től" - illetve megjelenítheti a paklit, így nem kell manuálisan beírogatni hogy: "adj egy lapot", majd válaszként: "Pikk dáma", illetve nem kell feljegyezgetni a pakliban levő kártyákat.


"csak kell egy közös pakli"

JavaScriptben a talon "relatíve" egyszerűen kivitelezhető:

1. A játék induláskor létrehozunk egy üres, a kártyák tárolására szolgáló tömböt.

2. A (francia kártya esetén) négy színből (treff, káró, kőr pikk) és a 13 számból (ász, 2, 3, 4, 5, 6, 7, 8, 9, 10, jumbo, dáma, király) álló kártyákkal feltöltjük a tömböt (két egymásba ágyazott ciklussal - ahol az egyik ciklusban a színeken, a másik ciklusban a számokon iterálunk át - megoldható).

3. Ezt a tömböt összekeverjük (erre szolgál a Fisher-Yates keverés: [link] )

4. Majd lokálisan elmentjük a tömböt ( [link] )

5. Adott időközönként (window.setInterval(): [link] ) frissítjük a hozzászólásokat/az oldalt ( [link] ), a lokális mentésből újratöltjük a tömböt, és nézzük, hogy a hozzászólások között (a hozzászólások összegyűjtéséhez: [link] ) van-e talonból való kivét vagy lapdobási kérés.

Ha van, akkor:

* Leellenőrizzük, hogy létezik/van-e/nincs-e ilyen kártya a talonban (vagy egyáltalán van-e kártya a talonban), volt-e már ilyen kérés (a hozzászólás dátumából következtethetünk erre, de rögzíthetjük a talonnak szóló hozzászólásokat is)

* Ha az ellenőrzés sikerrel járt, akkor a hozzászólás jellegétől függően:

a, Vagy - húzás esetén - kiveszünk a tömbből egy elemet (pop(): [link] vagy shift(): [link] vagy splice(): [link] )

b, Vagy - dobás esetén - beteszünk a tömbbe egy elemet (push(): [link] vagy unshift(): [link] )

A 4. pontban említett módon elmentjük a tömb állapotát (illetve a legutóbbi hozzászólás dátumát - lásd fentebb), majd hozzászólásban elküldjük az eredményt (például: "Sanyi: itt a pikk dáma", vagy "Józsi: nincs több lap")


Az egészben a nehézséget a JavaScript oldalhoz kötése (van-e lehetőség JavaScript oldalba illesztésére - saját oldalnál igen - vagy ha nincs, akkor GreaseMonkey/Tampermonkey felhasználói szkripttel megoldható), hozzászólások lekérése, de főleg elküldése (AJAX/XMLHTTPRequest - ott közbeszolhat a Cross Domain Request! Vagy űrlap value attribútumának kitöltése, majd a gombra való kattintás szimulálása?) jelenti - ez nagyon függ az adott oldal kialakításától.

2020. ápr. 24. 13:52
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2024, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!