DIY videopokeri "JokeriPokeri"

Liittynyt
06.11.2016
Viestejä
245
Laitetaas tänne ketjuntynkää tulevasta projektista:

Pitkään tehnyt mieli hankkia kotiin pajatso, jokeripokeri tms. peliautomaatti, mutta rayn kamppeissa hinnat lähentelee useampaa tonnia jota ei nyt tee mieli laittaa tuollaiseen kiinni, joten tehdään sitten siis itse. Tässä vähän alustavaa suunnitelmaa mitä tulossa:

Hankittuja osia:
-Raspberry pi 3 B+
-Rahalukko: https://ebay.to/33g8VTt
-Usb-enkooderi: https://ebay.to/2qOG5Lz
-8 kanavainen relekortti solenoidien ohjaamiseen: https://ebay.to/377RSFB
-solenoidit: https://ebay.to/2CKqGi7
-diodit solenoidien kytkentään: https://ebay.to/2Oa0AdE
-muutama servo: https://ebay.to/2CICdhR

Ostoslistalla:
-Näyttö joko 24" 1080p tai jokin klassisempi 4:3 kuvasuhteella oleva littunäyttö. Riippuu muusta lopullisesta hardiksesta ja koteloinnin koosta kumpi on passelimpi
- Näppäimet: Näitä mietin: https://ebay.to/2ptRy2Z mutta eivät täysin miellytä silmää. Vaativat myös paljon tilaa asennukseen.
-mahdollisesti jokin windows pohjainen laitos (nuc?) raspin tilalle jos linux alkaa nyppiä
-3D tulostin?
-Arduino?

Softa:
- Pelin itsessään tulen tekemään Unitylla ja C#:lla.
- Mahdollinen python kikkare ohjaamaan voittojen maksua jos tarpeen, pitäisi tosin onnistua myös Unityn kautta.

Kaappi/kotelo
-Koitetaan pitää niin kompaktina kuin rahankäsittely/voittojen maksu mekaniikka antaa myöten.
________________________________________________________

Alustavasti tarkoituksena siis tehdä kopio Ray:n klassisesta pokeripelistä tuplauksineen. Grafiikat yritän pitää ajan hengen mukaisena. Kehitysympäristönä tosiaan Unity ja kielenä C# kun näistä on aiempaa kokemusta ja Unitylla tälläisen tunkkaa kasaan suht nopeasti.

Jotain logiikkaa jo väännetty valmiiksi mutta nyt lähinnä odotan että kiinanpojat kuskaa osat perille. Rahalukko tärkeimpänä jotta pääsen mallailemaan rahojen lajittelun ja voittojen maksun mekaniikkaa.

Tällä hetkellä ideana ihan mekaaninen lajittelija(näitä on youtube pullollaan) joka pudottaa kolikot putkiin koon perusteella. Putkien alapäässä sitten solenoidilla/servolla ohjattu kolikon pudottaja voittojen maksuun/ lippaaseen pudottamiseen.

Tarkoituksena että automaatti hyväksyy 10snt, 20snt, 50snt, 1e ja 2e kolikot. Voittoja maksetaan euron, kahden ja 20snt kolikoilla (50snt varauksella) ja muut pudotetaan suoraan lippaaseen.

Softa pitää myös kirjaa rahojen kokonaismäärästä sekä yksittäisten kolikoiden määrästä. Näin ei mahdollisteta suurempia voittoja kuin on mahdollista maksaa ja putkien täyttyessä voidaan kolikoita pudottaa lippaaseen.

Paljon tekstiä :D Myöhemmin tulossa kuvia yms. kunhan osat ja muut saapuu. Kommentit, ideat ja ehdotukset tervetulleita, varsinkin projektin edetessä. Tällä hetkellä kaipaan tietoa projektiin mahdollisesti sopivista napeista jos joltain löytyy kokemusta kun en omaa silmä miellyttäviä ole vielä löytänyt.
 
Viimeksi muokattu:
Liittynyt
19.10.2016
Viestejä
780
Tää on varsin mielenkiintonen projekti. Kätevästi saa kavereilta sit kaljarahat tuolla tienattua :D
 
Liittynyt
02.11.2016
Viestejä
91
Kuulostaa mahtavalta projektilta! Haluan tietysti itse viritellä samanlaisen jos saat raspilla/arduinolla toimimaan :)
 
Liittynyt
17.10.2016
Viestejä
1 989
Täähän on mielenkiintoinen projekti.

Joko olet jonkinlaiset napit tilannut tuohon? Itsellä olisi yhteen toiseen projektiin tarvis isolle valaistulle painikkeelle mutta sellaiselle joka ei tarvi hirveesti tilaa syvyys suunnassa.
 
Liittynyt
06.11.2016
Viestejä
245
Täähän on mielenkiintoinen projekti.

Joko olet jonkinlaiset napit tilannut tuohon? Itsellä olisi yhteen toiseen projektiin tarvis isolle valaistulle painikkeelle mutta sellaiselle joka ei tarvi hirveesti tilaa syvyys suunnassa.
En ole vielä. Tuntuu että noi kaikki arcade tyyppiset napit pohjautuu lopulta samaan designiin ja ainoastaan napin ulkomuoto muuttuu. varmaan päädyn tilaamaan nuo aloituspostauksessa mainitut napit
 

MH1

Liittynyt
17.06.2019
Viestejä
188
Onkos tää proju kuopattu, vai vieläkö hengissä? Kiinnostavan olonen ainakin :D
 
Liittynyt
06.11.2016
Viestejä
245
Onkos tää proju kuopattu, vai vieläkö hengissä? Kiinnostavan olonen ainakin :D
Vielä on hengissä. Kamoja odottelen vieläkin valitettavasti. Koodia on jonkin verran puskettu ja 3d mallinnettu tuota maksumekanismia. Vielä odottelen nappeja, solenoideja yms kikkareita. 3d tulostin vielä hankintaan niin pääsee joskus valmistamaankin.
 
Liittynyt
28.02.2020
Viestejä
2
Tämmöstä joskus nuorempana myös haaveillut, siistiä kun teet! Seuraan miten käy projektissa‍
 
Liittynyt
06.11.2016
Viestejä
245
Pientä päivitystä.

1. Voitonmaksumekanismiin odotellaan yhä solenoideja. Muut tavarat alkaa aikalailla olla perillä. Vielä pitäisi saada 3d mallit valmiiksi mekanismista ja tulostella osia.

2. Tälläinen harakanpesä tuli kolvailtua kasaan:
thumbnail_IMG_20200503_235655.jpg

Simppelisti siis rahalukon virtajohtimiin lisätty molex liitin virransyöttöä (12v) varten. Molex siksi koska kaapissa sattui pyörimään ylimääräinen 12v ulkoinen virtalähde molex liittimellä. Onhan tuo toki ihan kätevä jos ei raspi jaksa softaa pyörittää niin sisään voisi heittää jonkun itx kikkareen niin saisi tuollekkin sitten virran suoraan samalta virtalähteeltä.

Rahalukolta ulos taas lähtee signal ja counter piuhat joihin kolvailtu tuohon usb-encoderiin sopiva 2 pinninen liitin eli rahalukko toimii ikäänkuin yhtenä nappina.
Rahalukkoon ohjelmoin näillä ohjeilla kaikki eurokolikot (0.05-2e). Hyvin tuntuu tunnistuvan vaikka kiinanvehje onkin. Lähinnä vääriä negatiivisia tullut, yhtään väärää positiivistä ei.

Rahalukko siis lähettää jokaisen kolikon kohdalla tietyn määrän pulsseja encoderille, itse ohjelmoin lähettämään 1-7 pulssia (0.05e-2e). Ja encoder välittää pulssit näppäimen painalluksena koneelle. ( Itse ohjelmoin tähän numpad1:sen käyttämällä antimicro nimistä sovellusta.) Unityyn kirjoitin scriptin lukemaan noita saapuvia pulsseja(painalluksia). Softa tunnistaa kolikot laskemalla montako perättäistä painallusta tulee tietyllä intervallilla, tähän laitoin intervalliksi 0.15s kun rahalukon pulssien nopeus on maksimilla ja tuntuu toimivan hyvin, välillä saattaa missata jonkun kolikon tai lukee väärän jos ihan peräkanaa kolikot tukkii sisään, koodia twiikkaamalla ehkä tuon saisi poistettua.

Tällähetkellä pulssit luetaan tälläisellä kikkareella :facepalm::facepalm::facepalm: (parannusehdotuksia saa heittää ):

Koodi:
if (Input.GetKeyDown(KeyCode.Keypad1))
        {
            if (firstImpulse)
            {
                pulseCount++;
              
                timeStamp = Time.time + interval;
                firstImpulse = false;
            }
            else if(!firstImpulse && Time.time <= timeStamp)
            {
                pulseCount++;
                timeStamp = Time.time + interval;
            }
        }
        if (pulseCount != 0 && Time.time >= timeStamp)
        {
            CheckForCoin();
            Debug.Log(moneycount);
            pulseCount = 0;
            firstImpulse = true;
        }
3. Softapuolella taas näyttää muuten tältä:
pokeri.JPG


Tähän mennessä softaan implementoitu:

- Edellämainittu kolikkojen lukeminen ja lisääminen saldoon
- Panoksen vaihto ( 0.2e > 0.4e > 0.6e > 0.8e > 1e > 0.2e.)
- Voittojen päivitys taulukkoon panoksen mukaan.
- Korttien ja pakan luonti, pakan sekoitus.
- Korttien jakaminen pöydälle.
- Vaihdettavien korttien valinta ( täytyy vaihtaa korttien lukitukseen koska syystä x (kännipäissäni) ohjelmoin tämän lukitsemaan vaihdettavat kortit :facepalm:)
- Uusien korttien jako valittujen tilalle.
- Käsien analysointi, palauttaa parhaimman mahdollisista voitoista.
- Gamestaten resetointi eli onnistuu useampi kierros putkeen.

Vielä tehtävää mitä nyt tulee mieleen:
- Voittojen laskenta käden perusteella
- Tuplaus ( isompi/pienempi kuin 7)
- Jokerin lisäys pakkaan(??)
- Käsien analysointi esim. Suora niin että 10-J-Q-K-A onnistuu, ässä siis tällähetkellä vain 1.
- Voittojen maksu. ( kunhan saan hardiksen kuntoon).
- Grafiikat. Custom kortit/16-bit kortit?? tällä hetkellä kortit revitty jostain copyright free sivulta. Muutenkin yleisilmettä kuntoon.
- Animaatiot, esim korttien sekoitus/jakaminen.

Tämähän on siitä reilu että perustuu tosiaan täysin sattumaan, ennen jokaista kierrosta kaikki kortit palautetaan pakkaan ja pakka sekoitetaan. Eli täysin samat mahdollisuudet kuin rly pakastakin jaettuna. Tosin täytyy varmaan sen verran muokata että voiton maksuun ei saa suurempaa saldoa kuin koneessa on kolikoita eli joku funkkari tarkastamaan ettei kierroksen voitto voi olla suurempi kuin koneessa olevat rahat. Kolikkojen lajeista ja määristä pidetään siis kirjaa eli koneessa olevat rahat tulevat olemaan koko ajan tiedossa.

Ideoita/ehdotuksia? Muutamaan kysymykseen ainakin kaipaan mielipiteitä:

- Jokeri? Kyllä/ei? mahdollistaisi esim Vitoset ja näin uuden voittoluokan.
- Grafiikat? 16-bit?

Jos joku koodari/pelikoneista enemmän tietävä tätä lukee niin seuraava kysymys kaipaa vastausta:

Miten jaotella voitonmaksu eri kolikko lajien kesken? Joku algoritmi tähän nyt tarvittaisiin jolla kolikoille tietty painotus kun voitonmaksuun menevä summa ylittää tietyn rajan. esim. 2 euron voitonmaksu maksettaisiin aina 2 euron kolikolla tai 10 euroa = 4x2e + 2x1e tms. Eli miten jaotella voitonmaksu niin että maksimoidaan kapasiteetti per kolikkolaji kun tiedetään kolikkojen määrä koneessa x kpl/maksimi.

Pitkä postaus, pahoittelut siitä. Koodin voin ehkä puskea johonkin nähtäville jos muita sattuu kiinnostamaan. Huutaa tosin refaktorointia :rofl2:
 
Liittynyt
20.10.2016
Viestejä
193
Jos joku koodari/pelikoneista enemmän tietävä tätä lukee niin seuraava kysymys kaipaa vastausta:

Miten jaotella voitonmaksu eri kolikko lajien kesken? Joku algoritmi tähän nyt tarvittaisiin jolla kolikoille tietty painotus kun voitonmaksuun menevä summa ylittää tietyn rajan. esim. 2 euron voitonmaksu maksettaisiin aina 2 euron kolikolla tai 10 euroa = 4x2e + 2x1e tms. Eli miten jaotella voitonmaksu niin että maksimoidaan kapasiteetti per kolikkolaji kun tiedetään kolikkojen määrä koneessa x kpl/maksimi.

Pitkä postaus, pahoittelut siitä. Koodin voin ehkä puskea johonkin nähtäville jos muita sattuu kiinnostamaan. Huutaa tosin refaktorointia :rofl2:
Minusta tuo kolikkojen optimointi kuulostaa Partition Problem -logiikalle, eli miten voit eri tavoin luoda maksun olemassa olevien kolikoiden joukosta:

Oletan, että ihmiset kuitenkin pelaavat eniten eurolla tai kahdella eurolla. Tällöin niitä kertyy laitteeseen eniten ja kannattaisi luoda algoritmi, joka pyrkii maksimoimaan niiden käytön (palauttamisen) voittoa maksaessa ja lopuksi kasaa pikkuhilut, optimoiden niiden tasaisen jakautumisen.
 
Liittynyt
06.11.2016
Viestejä
245
Minusta tuo kolikkojen optimointi kuulostaa Partition Problem -logiikalle, eli miten voit eri tavoin luoda maksun olemassa olevien kolikoiden joukosta:

Oletan, että ihmiset kuitenkin pelaavat eniten eurolla tai kahdella eurolla. Tällöin niitä kertyy laitteeseen eniten ja kannattaisi luoda algoritmi, joka pyrkii maksimoimaan niiden käytön (palauttamisen) voittoa maksaessa ja lopuksi kasaa pikkuhilut, optimoiden niiden tasaisen jakautumisen.
Jep, coin change algoritmejahan löytyy ja on aika perustavan laatuinen ohjelmointi tehtävä mutta kaikki ratkaisut enemmän ja vähemmän tähtäävät siihen että selvittäisiin minimimäärällä kolikoita ja tälläisen algoritmin olen jo implementoinutkin mutta ei ehkä ole optimi ratkaisu tähän tilanteeseen.

Ongelmahan on se että käytännössä kaikki kolikot ovat enemmän tai vähemmän saman paksuisia joten päällekkäin varastoidessa 20snt kolikot vievät 10x enemmän tilaa kuin 2 euron kolikot. Eli siinä mielessä on ihan ok ratkaisu tähdätä pienimpään määrään kolikkoja mutta sitten pienimmät jäävät lähes aina käyttämättä koska niillä paikattaisiin lähinnä desimaaleja ja muutoin ränniin laskettaisiin vain 1 tai 2 euron kolikkoja. :confused: Toki tästäkään ei sinänsä pitäisi olla ongelmaa jos olettaa että kolikko kapasiteetti on käytännössä täynnä millä tahansa hetkellä.

E: tietty tuohon voisi ihan hard-koodata tietyt skenaariot esim 1e voitot joko a) 5x20snt,b) 2x50snt tai c)1x1e kolikkojen määrästä riippuen ja loput skenaariot hoitaa algoritmillä
 
Toggle Sidebar

Uusimmat viestit

Statistiikka

Viestiketjut
89 799
Viestejä
1 837 330
Jäsenet
39 061
Uusin jäsen
Leo Laukkanen

Hinta.fi

Ylös Bottom