Kezdőoldal » Számítástechnika » Programozás » Hogy kéne ezt megcsinálni?...

Hogy kéne ezt megcsinálni? (c#) Sürgős

Figyelt kérdés

Egy blackjack-et szeretnék, csinálni. A lapok szétosztása, mind a banknak mind a játékosnak megvan. Sőt a játékos már lapot is tud kérni, egésze az 5. lapig(mert ugye szabályban is így van). A program, tudja pontozni a 2-3-4-5-6-7-8-9 es lapokat valamint a tízes értékűeket. (10-jumbo-dáma-király)

Viszont az ász pontozását, nem tudom, hogy oldhatnám meg. Ugyebár azt kéne, hogy mikor a játékos ászt, kap akkor ugye alapból 11- et kapjon az ász viszont, ha így túllépi a 21, et akkor csak 1 et érhet, hogy ne lépje túl. Viszont ha pl kaptunk egy kettest meg ászt, akkor ugye 13 pontunk van(ász=11 2=2) viszont ha erre húzunk egy tízes értékű lapot(10-jumbo-dáma-király) akkor ász értéke csökkenjen egyre, tehát ász=1 2=2 tízes=10 így a pontunk 13-lesz. Fordítva, is kellene működnie- tehát pl kapunk egy tízest, és 5 öst akkor az 15 pont. Erre húzunk ászt, akkor ott az ásznak az értéke kezdettől fogva csak 1 lehet, hogy a játékos ne lépje túl a 21 et. Ennek a megoldására, szeretnék ötleteket, kódokat, valamit. A progi, a fájlnevek alapján tudja, meg hogy melyik kártya mi is lehet. Tehát, csak a pontozás kéne az ászra. Ezt a részt nem tudom megfejteni sajnos. Tehát ász értéke lehet 1 és 11. A megoldásokat előre is köszönöm.


2011. okt. 20. 18:43
 1/3 anonim ***** válasza:
Az ászt alapból 11-nek veszed.Aztán megnézed ha a kézben lévő lapok összege (az ász 11-s értékével beszámítva) nagyobb, mint 21, akkor akkor az ász(ok) értéke 1, egyébként marad 11-nek.
2011. okt. 21. 15:51
Hasznos számodra ez a válasz?
 2/3 realMesos ***** válasza:

if then else-el

nemtom a változóidat szal bedimeltem őket


dim asz

dim current_hand

dim max_ertek


Private Sub main()


asz="11"

max_ertek="21"

current_hand='Ide illeszd be a képletet amivel kiszámoltad a pillanatnyi kézben lévő lapok összegét


If current_hand = "10" then

msgbox("BlackJack!")

end if


If current_hand < "10" then

current_hand = current_hand + asz

End if


If current_hand > "10" then

asz= "1"

current_hand =current_hand+asz

End if

End Sub

2011. okt. 21. 16:15
Hasznos számodra ez a válasz?
 3/3 realMesos ***** válasza:

Case-el

nemtom a változóidat szal bedimeltem őket


dim asz

dim current_hand

dim max_ertek


Private Sub main()


asz="11"

max_ertek="21"

current_hand='Ide illeszd be a képletet amivel kiszámoltad a pillanatnyi kézben lévő lapok összegét

Select Case (current_hand)

Case (=10)

msgbox("BlackJack")

Case (<10)

current_hand=asz+current_hand

Case(>10)

asz="1"

current_hand=asz+current_hand

End Case

2011. okt. 21. 16:18
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!