Ich hab die letzten Tage gesehen das Timiboy versucht ein Monopoly-Spiel zu schreiben und hab mich dann selber mal getestet.
Ich bin nun fertig geworden, das Spiel enthält:
-Einen Menschlichen Spieler
-Einen Computer Gegner
-Realistische Preise
-Mietpreis ohne Haus
-Spenden
-Positionsanzeige
-Benachrichtugung bei jeder Handlung des Computers und des menschlichen Spielers
Was noch nicht drin ist:
-Hypotheken
-Häuser / Hotels
-Straßen verkaufen
-Gefängnis
-Doppelt bei gleicher Würfelzahl
-gesammt Geld bei Kirchenbesuch
-Ereignisfelder
Der Code:
Spoiler anzeigen
;***************CODET BY BadBunny**************autoit.de
;Idee von Timiboy
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
HotKeySet("{ESC}", "_Exit")
Func _Exit()
Exit
EndFunc ;==>_Exit
Global $geld = 30000, $gegner_geld = 30000, $gekauft = "", $Gegner_gekauft = ""
[/autoit] [autoit][/autoit] [autoit]Global $felder[40][6] = [[600, 630, "Los", 0xff0000],[545, 630, "Lachnerstraße", 0xa62c2b, 1200, 40],[492, 630, "Gemeindefeld", 0xffffff],[435, 630, "Lameystraße", 0xa62c2b, 1400, 80],[382, 630, "Spende", 0xffffff, -4000],[330, 630, "Rheinau Bahnhof", 0xc0e1ce, 4000, 250],[276, 630, "Tullastraße", 0x3ec4df, 2000, 120],[220, 630, "Aktionsfeld", 0xffffff],[166, 630, "Elisabethstraße", 0x3ec4df, 2000, 120],[110, 630, "Rathenaustraße", 0x3ec4df, 2400, 160],[30, 630, "Gefängnis (Besuch)", 0xffffff], _; 11
[30, 543, "Beethoven Straße", 0xf06ca8, 2400, 200],[30, 490, "Spende", 0xffffff, -3000],[30, 435, "Gluckstraße", 0xf06ca8, 2800, 200],[30, 380, "R.Wagner Straße", 0xf06ca8, 3200, 240],[30, 325, "Rangierbahnhof", 0xc0e1ce, 4000, 250],[30, 275, "Sophienstraße", 0xf5881f, 2400, 280],[30, 223, "Gemeindefeld", 0xffffff],[30, 170, "Viktoriastraße", 0xf5881f, 3600, 280],[30, 110, "Berlinerstraße", 0xf5881f, 4000, 320],[30, 20, "Kirchenbesuch", 0xffffff],[115, 20, "Otto-Beck-Straße", 0xe01e26, 4400, 360],[170, 20, "Aktionsfeld", 0xffffff], _ ; 23
[225, 20, "Mollstraße", 0xe01e26, 4400, 360],[280, 20, "Augustaanlage", 0xe01e26, 4800, 400],[330, 20, "Waldhof Bahnhof", 0xc0e1ce, 4000, 250],[383, 20, "Lessingstraße", 0xf8ec1e, 2500, 440],[435, 20, "Schillerplatz", 0xf8ec1e, 2500, 440],[490, 20, "Spende", 0xffffff, -3000],[546, 20, "Goethestraße", 0xf8ec1e, 5600, 480],[625, 20, "Gehe Gefängnis", 0xffffff],[625, 113, "Leibnitzstraße", 0x0d8845, 6000, 520],[625, 165, "Kantstraße", 0x0d8845, 6000, 520],[625, 220, "Gemeindefeld", 0xffffff],[625, 275, "Spinozastraße", 0x0d8845, 6400, 560], _ ; 35
[625, 330, "Hauptbahnhof", 0xc0e1ce, 4000, 250],[625, 380, "Aktionsfeld", 0xffffff],[625, 435, "Werderstraße", 0x3a3b97, 7000, 700],[625, 490, "Steuer", 0xffffff, -2000],[625, 545, "Werderplatz", 0x3a3b97, 8000, 1000]]
;1-D= X_POs, 2-D = y_POS, 3-D= Name, 4-D = Farbe, 5-D= Preis, 6-D= Wohnpreis OHNE HAUS,
Global $aktuelles_feld = 0
Global $gegner_feld = 0
GUICreate("MONOPOLY", 1010, 700)
GUISetBkColor(0x5050ff)
$pos_label = GUICtrlCreateLabel("Position: " & $felder[0][2], 700, 0, 150, 12)
GUICtrlSetFont(-1,
GUICtrlSetBkColor(-1, 0xff0000)
$Gegner_pos_label = GUICtrlCreateLabel("Position: " & $felder[0][2], 860, 0, 150, 12)
GUICtrlSetFont(-1,
GUICtrlSetBkColor(-1, 0xff0000)
$Gegner_Geld_label = GUICtrlCreateLabel("Gegnergeld: " & $gegner_geld & ",-", 860, 12, 150, 18)
GUICtrlSetFont(-1, 12)
$Geld_label = GUICtrlCreateLabel("Geld: " & $geld & ",-", 700, 12, 150, 18)
GUICtrlSetFont(-1, 12)
$gekauft_btn = GUICtrlCreateLabel("GEKAUFT: " & @CRLF & $gekauft, 700, 50, 150, 500)
GUICtrlSetBkColor(-1, 0xff00ff)
$Gegner_gekauft_btn = GUICtrlCreateLabel("Gegner GEKAUFT: " & @CRLF & $Gegner_gekauft, 860, 50, 150, 500)
GUICtrlSetBkColor(-1, 0xff00ff)
$pic1 = GUICtrlCreatePic(@DesktopDir & "\Bilder\feld.jpg", 0, 0, 700, 700)
$pic2 = GUICtrlCreatePic(@DesktopDir & "\Bilder\stein.jpg", $felder[0][0], $felder[0][1], 45, 45)
$pic3 = GUICtrlCreatePic(@DesktopDir & "\Bilder\Gegner_stein.jpg", $felder[0][0] + 20, $felder[0][1] + 10, 45, 45)
$wurflen_btn = GUICtrlCreateButton("WÜRFELN", 700, 600, 150, 100)
GUISetState()
;~ For $i = 0 to 22
;~ GUICtrlSetPos ($pic2, $felder[$i][0], $felder[$i][1])
;~ Sleep (500)
;~ Next
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
Case $msg = $wurflen_btn
Wurfeln()
EndSelect
WEnd
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]Func wurfeln()
$wurf1 = Random(1, 6, 1)
$wurf2 = Random(1, 6, 1)
$wurf = $wurf1 + $wurf2
MsgBox(0, "Gewürfelt", "Du hast eine " & $wurf1 & " und eine " & $wurf2 & " gewürfelt!")
$aktuelles_feld += $wurf
If $aktuelles_feld >= 40 Then
$aktuelles_feld -= 40
$geld += 2000
GUICtrlSetData($Geld_label, "Geld: " & $geld & ",-")
EndIf
GUICtrlSetPos($pic2, $felder[$aktuelles_feld][0], $felder[$aktuelles_feld][1])
GUICtrlSetData($pos_label, "Position: " & $felder[$aktuelles_feld][2])
GUICtrlSetBkColor($pos_label, $felder[$aktuelles_feld][3])
If $felder[$aktuelles_feld][4] <= -1 Then
$geld += $felder[$aktuelles_feld][4]
GUICtrlSetData($Geld_label, "Geld: " & $geld & ",-")
MsgBox(0, "SPENDE", "Du spendest " & $felder[$aktuelles_feld][4] - $felder[$aktuelles_feld][4] - $felder[$aktuelles_feld][4] & ",-!")
EndIf
If $felder[$aktuelles_feld][4] = "Gegner" Then
MsgBox(0, "Bezahlen", "Sie müssen " & $felder[$aktuelles_feld][5] & ",- bezahlen, weil sie in "& $felder[$aktuelles_feld][2]&" übernachten!")
$geld -= $felder[$aktuelles_feld][5]
GUICtrlSetData($Geld_label, "Geld: " & $geld & ",-")
EndIf
If $felder[$aktuelles_feld][4] >= 1 Then
$box = MsgBox(4, "Kaufen?", "Wollen sie " & $felder[$aktuelles_feld][2] & " für " & $felder[$aktuelles_feld][4] & ",- kaufen?")
If $box = 6 Then
$geld -= $felder[$aktuelles_feld][4]
GUICtrlSetData($Geld_label, "Geld: " & $geld & ",-")
$gekauft &= $felder[$aktuelles_feld][2] & @CRLF
GUICtrlSetData($gekauft_btn, "GEKAUFT: " & @CRLF & $gekauft)
$felder[$aktuelles_feld][4] = "von mir gekauft"
EndIf
If $geld <= 0 Then
MsgBox(0, "VERLOREN", "Das Spiel ist vorbei, sie sind pleite!")
Exit
EndIf
If $box = 7 Then
[/autoit] [autoit][/autoit] [autoit]EndIf
EndIf
Sleep(700)
$comp2= Random(1, 6, 1)
$comp=Random(1, 6, 1)
$comp_random = $comp +$comp2
$gegner_feld += $comp_random
MsgBox (0,"Gegner Wurf", "Ihr Gegner hat eine "& $comp & " und eine "&$comp2& " gewürfelt!")
If $gegner_feld >= 40 Then
$gegner_feld -= 40
$gegner_geld += 2000
GUICtrlSetData($Gegner_Geld_label, "Gegnergeld: " & $gegner_geld & ",-")
EndIf
GUICtrlSetPos($pic3, $felder[$gegner_feld][0], $felder[$gegner_feld][1])
GUICtrlSetData($Gegner_pos_label, "Position: " & $felder[$gegner_feld][2])
GUICtrlSetBkColor($Gegner_pos_label, $felder[$gegner_feld][3])
If $felder[$gegner_feld][4] <= -1 Then
$gegner_geld += $felder[$gegner_feld][4]
GUICtrlSetData($Gegner_Geld_label, "Gegnergeld: " & $gegner_geld & ",-")
MsgBox(0, "SPENDE", "Ihr Gegner spendet " & $felder[$gegner_feld][4] - $felder[$gegner_feld][4] - $felder[$gegner_feld][4] & ",- !")
EndIf
If $felder[$gegner_feld][4] <= $gegner_geld + 1 Then
If $felder[$gegner_feld][4] >= 1 Then
$kaufen_ran = Random(1, 6, 1)
If $kaufen_ran = 3 Or $kaufen_ran = 4 Or $kaufen_ran = 5 Or $kaufen_ran = 6 Or $kaufen_ran = 1 Then
$Gegner_gekauft &= $felder[$gegner_feld][2] & @CRLF
GUICtrlSetData($Gegner_gekauft_btn, "Gegner GEKAUFT: " & @CRLF & $Gegner_gekauft)
MsgBox (0,"Gegnerkauf", "Ihr Gegner kauft "& $felder[$gegner_feld][2] & " für " & $felder[$gegner_feld][4] & ",- !")
$gegner_geld -= $felder[$gegner_feld][4]
$felder[$gegner_feld][4] = "Gegner"
GUICtrlSetData($Gegner_Geld_label, "Gegnergeld: " & $gegner_geld & ",-")
EndIf
EndIf
EndIf
If $felder[$gegner_feld][4] = "von mir gekauft" Then
$gegner_geld -= $felder[$gegner_feld][5]
GUICtrlSetData($Gegner_Geld_label, "Gegnergeld: " & $gegner_geld & ",-")
$geld += $felder[$gegner_feld][5]
GUICtrlSetData($Geld_label, "Geld: " & $geld & ",-")
MsgBox(0, "Einkommen", "Sie bekommen " & $felder[$gegner_feld][5] & ",- für eine Übernachtung in " &$felder[$gegner_feld][2] &"!")
EndIf
If $gegner_geld <= 0 Then
MsgBox(0, "Gewonnen", "Ihr Gegner ist pleite! Sie haben gewonnen!")
Exit
EndIf
EndFunc ;==>wurfeln
Den Pfad bitte anpassen!
Die Datei als .rar + Bilder: