Autor Beitrag
4321
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 29.06.08 11:58 
Hallo,

wir sollen im Info-Unterricht Mastermind mit zahlen programmieren.

Wir haben also vier Zufallszahlen von 1 bis 8 generiert und wollen nun die vom Spieler eingegebenen Zahlen (SpinEdit) mit den Zufallszahlen vergleichen. Wenn eine Zahl richtig ist und an der richtigen Stelle, wird ein Panel schwarz gefärbt. Wenn eine Zahl richtig ist, aber an der falschen Stelle, wird ein Panel weiss gefärbt. Und genau hier leigt das Problem:
Wie kann man die Zufallszahl mit der eingegebenen vergleichen, ohne dass man hunderte if-Schleifen programmiert? (weil Eingabe1 kann ja Zufallszahl3 sein und Eingebe2=Zufallszahl4 usw.)
Versteht jemand unser Problem?

Bitte helft uns!!!
nagel
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 708

Win7, Ubuntu 10.10

BeitragVerfasst: So 29.06.08 12:02 
Es gibt keine If-Schleifen.
Fiete
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 620
Erhaltene Danke: 370

W7
Delphi 6 pro
BeitragVerfasst: So 29.06.08 13:47 
Moin 4321,

ihr braucht eine Testprozedur, die nach schwarzen und weißen prüft.
Am besten nehmt ihr einen Arraytyp, z.B. TListe=Array[1..4]of Integer;
Code enthält die Zufallszahlen, Versuch euren Versuch
ausblenden Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
 procedure TMaster.FarbTest(Code,Versuch:TListe;Var Schwarz,Weiss:Integer);
  var K,L:Integer;
  begin
   Schwarz:=0;Weiss:=0;
   // Test ob richtige Zahl an richtiger Stelle
   for K:=1 to FarbAnzahl do
    if Code[K]=Versuch[K] then
     begin 
      inc(Schwarz);
      Code[K]:=0;Versuch[K]:=-1; // Werte deaktivieren, wird sonst mehrfach gezählt!!!
     end;
   // Test ob richtige Zahl an falscher Stelle
   // dies ist euer Job oder im Forum oder www suchen
  end;

Gruß
Fiete

_________________
Fietes Gesetz: use your brain (THINK)
j.klugmann
Ehemaliges Mitglied
Erhaltene Danke: 1



BeitragVerfasst: So 29.06.08 14:20 
ähh...Er macht das mit zahlen nicht mit farben. :wink:
4321 Threadstarter
Hält's aus hier
Beiträge: 3



BeitragVerfasst: So 29.06.08 14:36 
wir sollen das mastermind spiel NUR mit den zahlen 1-8 machen...
und das problem ist nach wie vor, wie man die eingabe mit den zufallszahlen vergleicht...
freak4fun
ontopic starontopic starontopic starontopic starontopic starontopic starofftopic starofftopic star
Beiträge: 604
Erhaltene Danke: 4

Win 7 Pro
VS 2013 Express, Delphi, C#, PHP, Java
BeitragVerfasst: So 29.06.08 17:42 
Da wäre eine Schleife (nicht if) angebracht, die abgebrochen wird wenn alle Zahlen richtig sind, oder die Anzahl der maximalen Versuche abgelaufen ist. Oder alternativ das Spiel beendet. In der Schleife überprüft ihr die eingegebenen Zahlen mit den Zufallszahlen.

_________________
"Ich werde auf GAR KEINEN Fall…!" - "Keks?" - "Okay, ich tu's."
i++; // zaehler i um 1 erhoehen