ich hab das mal im projektblitz forum gepostet, ist ein blackjack spiel, vielleicht hilfts dir ja... ob nun 2 karten gezogen werden oder nur 10 ist ja irrelevant ...
BlitzBasic: [AUSKLAPPEN] [EINKLAPPEN]
SeedRnd MilliSecs()
Const farbe_pik=0 Const farbe_herz=1 Const farbe_karo=2 Const farbe_blatt=3 Const bank=1 Const spieler=2
Type Tkarte Field farbe Field wert Field name$ Field Selectedby End Type
Function create_karte.Tkarte(farbe,wert,name$) Vkarte.Tkarte=New Tkarte Vkarte\farbe=farbe Vkarte\wert=wert Vkarte\name$=name$ Vkarte\Selectedby=0 Return Vkarte End Function
create_karte(farbe_pik,7,\"Pik 7\") create_karte(farbe_pik,8,\"Pik 8\") create_karte(farbe_pik,9,\"Pik 9\") create_karte(farbe_pik,10,\"Pik 10\") create_karte(farbe_pik,2,\"Pik Bube\") create_karte(farbe_pik,3,\"Pik Dame\") create_karte(farbe_pik,4,\"Pik König\") create_karte(farbe_pik,11,\"Pik Ass\")
create_karte(farbe_herz,7,\"Herz 7\") create_karte(farbe_herz,8,\"Herz 8\") create_karte(farbe_herz,9,\"Herz 9\") create_karte(farbe_herz,10,\"Herz 10\") create_karte(farbe_herz,2,\"Herz Bube\") create_karte(farbe_herz,3,\"Herz Dame\") create_karte(farbe_herz,4,\"Herz König\") create_karte(farbe_herz,11,\"Herz Ass\")
create_karte(farbe_karo,7,\"Karo 7\") create_karte(farbe_karo,8,\"Karo 8\") create_karte(farbe_karo,9,\"Karo 9\") create_karte(farbe_karo,10,\"Karo 10\") create_karte(farbe_karo,2,\"Karo Bube\") create_karte(farbe_karo,3,\"Karo Dame\") create_karte(farbe_karo,4,\"Karo König\") create_karte(farbe_karo,11,\"Karo Ass\")
create_karte(farbe_blatt,7,\"Blatt 7\") create_karte(farbe_blatt,8,\"Blatt 8\") create_karte(farbe_blatt,9,\"Blatt 9\") create_karte(farbe_blatt,10,\"Blatt 10\") create_karte(farbe_blatt,2,\"Blatt Bube\") create_karte(farbe_blatt,3,\"Blatt Dame\") create_karte(farbe_blatt,4,\"Blatt König\") create_karte(farbe_blatt,11,\"Blatt Ass\")
Function get_karte.Tkarte(id) count=1 For Vkarte.Tkarte=Each Tkarte If count=id Then Return Vkarte count=count+1 Next Return Null End Function
Function add_card_bank() Repeat x=Rand(1,32) karte.Tkarte=get_karte(x) Until karte\Selectedby=0 karte\Selectedby=bank DebugLog \"Karte für die Bank\" End Function
Function Print_bank_cards() Print \"Bank\" For Vkarte.Tkarte=Each Tkarte If Vkarte\Selectedby=bank Then Print Vkarte\name$ Next Print End Function
Function add_card_player() Repeat x=Rand(1,32) karte.Tkarte=get_karte(x) Until karte\Selectedby=0 karte\Selectedby=spieler DebugLog \"Karte für den Spieler\" End Function
Function Print_player_cards() Print \"Spieler\" For Vkarte.Tkarte=Each Tkarte If Vkarte\Selectedby=spieler Then Print Vkarte\name$ Next Print End Function
Function count_points_player() points=0 For Vkarte.Tkarte=Each Tkarte If Vkarte\Selectedby=spieler Then points=points+Vkarte\wert Next Return points End Function
Function count_points_bank() points=0 For Vkarte.Tkarte=Each Tkarte If Vkarte\Selectedby=bank Then points=points+Vkarte\wert Next Return points End Function
Function init() add_card_player() add_card_player() add_card_bank() add_card_bank() End Function
Function clear() For Vkarte.Tkarte=Each Tkarte Vkarte\Selectedby=0 Next End Function
init()
Endgame=False While Not KeyHit(1)
Cls Locate 0,0 Print_bank_cards() Print \"Punkte : \"+count_points_bank() Print Print_player_cards() Print \"Punkte : \"+count_points_player() Print If Endgame=False Then Print \"Space für noch ne Karte, Return wenn fertig\" FlushKeys() WaitKey() If KeyHit(57) Then add_card_player() If KeyHit(28) Then Endgame=True If count_points_player()<=21 Then While count_points_bank()<count_points_player() add_card_bank() Wend End If End If Else If count_points_player()>21 Then Print \"Du hast leider verloren - Taste drücken, dann gehts wieder los \" Else If count_points_player()<=count_points_bank() And count_points_bank()<=21 Then Print \"Die Bank macht das Rennen- Taste drücken, dann gehts wieder los \" Else Print \"$$$ Yeah, you did it ... You win $$$ - Taste drücken, dann gehts wieder los \" End If WaitKey() clear() init() endgame=False End If
Wend
End
|