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
|