![]() |
Mastermind
Liste der Anhänge anzeigen (Anzahl: 1)
Habe mal so eine Art Mastermnd fürs Netzwerk geschrieben. Für die denen der Name nix sagt:
Mastermind ist ein kleines Spiel, bei dem ein Farbcode gesetzt wird und dann eraten werden muss. Normalerweise ist M ein Spiel für zwei Spieler. Meine Idee war es nun mittels einem Server und einem Client ein M zu erzeugen, bei dem mehr Leute übers Netzwerk mit spielen können. Bitte Bugs und Verbesserungsvorschläge posten. Ich weiß der Code ist verdammt lang wär mir auch lieb wenn der kürzer wäre aber ich weiß nicht wie!!! :-D :wall: |
Re: Mastermind
Liste der Anhänge anzeigen (Anzahl: 2)
Du kannst ja auch das meiste weglassen ;)
7Zip: ![]() EDIT: mir fällt da glaube ich ein kleiner Bug auf... schwarz heisst doch, richtuge Farbe am richtigen Platz und grau heisst, richtige Farbe am falschen Platz. Wenn ich bei der Kombination 5243 aber 2222 eingebe, sagt er mir einmal schwarz und dreimal grau. |
Re: Mastermind
jo vielen dank man darf jede farbe natürlich nur ein mal pro zeile verwenden
wa meinst du mit weglassen ist bei dir doch noch alles genauso wie bei mir |
Re: Mastermind
Liste der Anhänge anzeigen (Anzahl: 1)
es gibt eine neue überarbeitete Version
1.1 |
Re: Mastermind
Zitat:
Grafisch sieht es ziemlich gut aus :thumb: Aber bei mir funktioniert es nicht wirklich. Wenn ich den Server geöffnet habe, bringt das connect beim Spiel nichts. ZoneAlarm meldet zwar den Zugriff beider Programme, aber sonst passiert nichts. Gruß, ManuMF P.S.: Häng die neue Version doch bitte an den ersten Beitrg, ich hätte fast zuerst die alte Version geladen. |
Re: Mastermind
ja da fehlt leider noch eine meldung aber du solltest denn och spielen können , wenn du deine firewall ausmachst oder das nicht mehr blockst
|
Re: Mastermind
Zitat:
Du brauchst für den source eigentlich nur *.dpr, *.pas und *.dfm-dateien, und in Ausnahmefällen (wenn du selbst ressourcen drin hast) die *.res-Dateien. Der _history-Ordner ist übrigens komplett überflüssig, da sind nur Backups drin(falls du dich wunderst, wovon ich rede: Der ist versteckt und damit evtl. bei dir nicht sichtbar...). EDIT: Neue Version? Der Anhang oben ist auf jeden Fall immer noch der selbe... |
Re: Mastermind
Zitat:
Ich habe es ja zugelassen. Gruß, ManuMF |
Re: Mastermind
Liste der Anhänge anzeigen (Anzahl: 1)
1.
hm, irgendwie ist da beim ersten Versuch der Wurm drinnen: zwei gleiche Eingaben sollten wohl ja das gleiche Ergebnis liefern :gruebel: EDIT: mittlerweile kann ich diesen Fehler nicht mehr reproduzieren?! keine Ahnung warum, vorher ist es ständig passiert :gruebel: 2. Wenn ich den Server gestartet habe, kann ich zwar spielen, aber der Server zeigt nicht an ob irgendein Spielerverbunden ist, das Feld bleibt einfach leer. |
Re: Mastermind
das ist allerdings komisch werds mir mal angucken
EDIT: stimmt der anhang is zwar der selbe aber der code ist überarbeitet |
Re: Mastermind
sind aber immer noch 500 kB.... lass doch mal zumindest den _history ordner weg.
|
Re: Mastermind
Liste der Anhänge anzeigen (Anzahl: 1)
so dann noch mal die neue Version mit nur dem nötigsten hoffe ich habe nix vergessen
also noch mal hat jemand eine idee, wie man den code ändern könnte beispielsweise so ,dass man nicht jedes shape einzeln ansprechen mus??? |
Re: Mastermind
Zitat:
|
Re: Mastermind
moin,
ich habe mir mal deinen Source angeguckt und festgestellt, das du wirklich jede Kombination manuell abfragst.
Delphi-Quellcode:
Der obere Teil lässt sich mit einer Schleife wesentlich komfortabler lösen.
if (shape1.brush.color = clwhite) or (shape2.Brush.Color = clwhite) or (shape3.Brush.Color = clwhite) or (shape4.Brush.Color = clwhite) then showmessage ('Weiß ist keine Farbe. Bitte alle ausfüllen!!!') else
begin button1.Enabled := false; button2.Enabled := true; if shape1.brush.color = clmaroon then Farbe[1] := 1 else if shape1.brush.Color = clgreen then Farbe[1] := 2 else if shape1.brush.Color = clnavy then Farbe[1] := 3 else if shape1.brush.Color = clyellow then Farbe[1] := 4 else if shape1.brush.Color = clteal then Farbe[1] := 5 else if shape1.brush.Color = clpurple then Farbe[1] := 6; if shape2.brush.color = clmaroon then Farbe[2] := 1 else if shape2.brush.Color = clgreen then Farbe[2] := 2 else if shape2.brush.Color = clnavy then Farbe[2] := 3 else if shape2.brush.Color = clyellow then Farbe[2] := 4 else if shape2.brush.Color = clteal then Farbe[2] := 5 else if shape2.brush.Color = clpurple then Farbe[2] := 6; if shape3.brush.color = clmaroon then Farbe[3] := 1 else if shape3.brush.Color = clgreen then Farbe du hier eine Schleif[3] := 2 else if shape3.brush.Color = clnavy then Farbe[3] := 3 else if shape3.brush.Color = clyellow then Farbe[3] := 4 else if shape3.brush.Color = clteal then Farbe[3] := 5 else if shape3.brush.Color = clpurple then Farbe[1] := 6; if shape4.brush.color = clmaroon then Farbe[4] := 1 else if shape4.brush.Color = clgreen then Farbe[4] := 2 else if shape4.brush.Color = clnavy then Farbe[4] := 3 else if shape4.brush.Color = clyellow then Farbe[4] := 4 else if shape4.brush.Color = clteal then Farbe[4] := 5 else if shape4.brush.Color = clpurple then Farbe[4] := 6 ; activ := 2; senddata; Wobei ich hier nicht den Farbcode erfragen würde, sondern einfach nur eine simple Nummer. Du hast 6 Farben, die sich in ihrer Reihenfolge nichtverändern, also könntest du genauso 6 Nummern den Farben zuweisen von 1 bis 6. In einem Array of TColor stehen dann die einzelnen Farben. Über den Index (Nummer von 1-6) erhälst du anschließend die Farbe aus dem Array of TColor. Die Shapes könnte man genauso gut dynamisch erstellen. Wenn ich mich nicht täusche, sind es etwa 80, die du schon zur Entwurfszeit erstellt hast. Noch eleganter wäre eine Klasse, aber das ist für den Anfang sicherlich zu heavy für dich. |
Re: Mastermind
jo das stimmt mit einer klasse wäre ich etwas überfordert aber eine schleife dürfte ich noch hinkriegen
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:08 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz