AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

Mastermind mit Zahlen

Ein Thema von dreamsahin · begonnen am 29. Okt 2006 · letzter Beitrag vom 3. Nov 2006
Antwort Antwort
dreamsahin

Registriert seit: 29. Okt 2006
3 Beiträge
 
#1

Mastermind mit Zahlen

  Alt 29. Okt 2006, 19:54
Hallo Forum,
Versuche als Anfänger seit ne knappe Monat einen Mastermind klon mit zahlen zu erstellen
bin mit der Prog FAST fertig ( auch mit der nerven ) an einer stelle habe ich einen Bug festgestellt und krieg den irgendwie nicht korrigiert.

Ablauf des Spiels ist...

beim start des spiels wird 5 separate zahlen von comomputer generiert dieser
vom spieler in 5 edit felder erraten werden müssen.

bsp.

von comp. generierte zahl ( gleiche Zahlen sind erlaubt )

5 6 1 8 5

vom spieler angegebene zahl

6 5 8 5 5

ergebniss sollte so sein
0 richtige 3 falsche position

vorkommende ergebniss ist bei mir
0 richtige 8 falsche pos.

die vom spieler gegebene zahl 5 wird 3 mal vergleicht sollte aber NUR einmal vergleicht werden ....
Delphi-Quellcode:
 begin
       richtig:=0;
   for i:=1 to 5 do
   If code[i] = geraten[i] Then inc(richtig);
       Label6.Caption:=IntToStr(richtig); // richtige Zahl richtige Position
    if richtig=5 then
    begin
     Image1.Visible:=True;
      ListBox2.Items.Insert(ListBox2.Items.Count-0,' '+Edit6.Text+' '+' '+Label16.Caption+' '+' '+Counter.Text+'.'+Label18.Caption+' '+' '+Label17.Caption); //Bewertung abgeben
       end;

       falsch:=0; // Zähler zurück setzen
   for i:=1 To 5 Do // zahlen vergleich
    If code[i]<>geraten[i] Then
   for j:= 1 to 5 do
   if geraten[i]=code[j] then inc(falsch);
    Label7.Caption:=IntToStr(falsch);
       ListBox1.Items.Insert(Listbox1.Items.Count-1,' '+Edit1.Text+' '+Edit2.Text+' '+Edit3.Text+' '+Edit4.Text+' '+Edit5.Text+' '+' '+' '+' '+' '+' '+' '+' '+' '+' '+' '+' '+Label6.Caption+' '+' '+' '+' '+' '+' '+' '+Label7.Caption);
    if count=10 then
   begin
        counter.Color:=clred;
     if Application.MessageBox('noch ein Versuch?','VERLOREN',36)= 7 then Close //Nochmal versuchen
     else
        Edit6.Enabled:=True;
        Counter.Color:=clWhite;
        Count:=0;
        Label6.Caption:=IntToStr(richtig);
        Label7.Caption:=IntToStr(falsch);
      ListBox2.Items.Insert(ListBox2.Items.Count-0,' '+Edit6.Text+' '+' '+Label16.Caption+' '+' '+Counter.Text+'.'+Label18.Caption+' '+' '+Label17.Caption);
   end;
 end;
   end;
habe vieles probiert leider ohne erfolg....

würde mich für eure antworten sehr freuen
danke schonmal im voraus...

[edit=Dax][delphi]-Tags... Mfg, Dax[/edit]
  Mit Zitat antworten Zitat
29. Okt 2006, 19:58
Dieses Thema wurde von "Dax" von "Freeware" nach "Sonstige Fragen zu Delphi" verschoben.
Und die Rubrik..
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#3

Re: Mastermind mit Zahlen

  Alt 29. Okt 2006, 20:32
Zitat von Dax:
[edit=Dax][delphi]-Tags... Mfg, Dax[/edit]
Das ist doch ein Neuling, sei nicht so streng, der weiß das noch nicht

Hallo dreamsahin,
und Willkommen in der DP!

Wie das Dax korrigiert hat, bitte die Delphi-Tags setzten, wenn Du Quellcode schreibst...

Zu Deinem Problem:
Du könntest Dir ein Array einbauen, indem Du speicherst, ob die Stelle schon geprüft wurde.
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
dreamsahin

Registriert seit: 29. Okt 2006
3 Beiträge
 
#4

Re: Mastermind mit Zahlen

  Alt 29. Okt 2006, 21:06
@Sunlight7 danke für dein Tip

da liegt ja auch mein problem
Habe mehrere Arrays versucht aber wie ich es in meiner Algo... einfüge weis ich net..
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
 var
    Code: Array[1..5] of Integer;
    Geraten: Array[1..5] of Integer;
    vergleich: Array[1..5] of Integer;
    i,j,k,richtig,falsch: integer;
    name: String;

begin
       richtig:=0;
   for i:=1 to 5 do
   If code[i] = geraten[i] Then inc(richtig);
       Label6.Caption:=IntToStr(richtig); // richtige Zahl richtige Position
    if richtig=5 then
    begin
     Image1.Visible:=True;
      ListBox2.Items.Insert(ListBox2.Items.Count-0,' '+Edit6.Text+' '+' '+Label16.Caption+' '+' '+Counter.Text+'.'+Label18.Caption+' '+' '+Label17.Caption); //Bewertung abgeben
       end;

       falsch:=0; // Zähler zurück setzen
   for i:=1 To 5 Do // zahlen vergleich
    If code[i]<>geraten[i] Then
   for j:= 1 to 5 do
   if geraten[i]=code[j] then inc(falsch);
    for k:= 1 to 5 do
   if geraten[k]=vergleich[k] then
    Label7.Caption:=IntToStr(falsch);
       ListBox1.Items.Insert(Listbox1.Items.Count-1,' '+Edit1.Text+' '+Edit2.Text+' '+Edit3.Text+' '+Edit4.Text+' '+Edit5.Text+' '+' '+' '+' '+' '+' '+' '+' '+' '+' '+' '+' '+Label6.Caption+' '+' '+' '+' '+' '+' '+' '+Label7.Caption);
    if count=10 then
   begin
        counter.Color:=clred;
     if Application.MessageBox('noch ein Versuch?','VERLOREN',36)= 7 then Close //Nochmal versuchen
     else
        Edit6.Enabled:=True;
        Counter.Color:=clWhite;
        Count:=0;
        Label6.Caption:=IntToStr(richtig);
        Label7.Caption:=IntToStr(falsch);
      ListBox2.Items.Insert(ListBox2.Items.Count-0,' '+Edit6.Text+' '+' '+Label16.Caption+' '+' '+Counter.Text+'.'+Label18.Caption+' '+' '+Label17.Caption);
   end;
 end;
   end;





@Dax sorry Anfänger fehler....
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#5

Re: Mastermind mit Zahlen

  Alt 29. Okt 2006, 22:03
Hab mir das mal angeguckt:

Warum machst Du das nicht gleich so?
Delphi-Quellcode:
richtig:=0;
falsch:=0;
For i:=1 to 5 do
   If code[i]=geraten[i] then
      inc(richtig) else
         inc(falsch);

Wozu ist das da?
Delphi-Quellcode:
For k:=1 to 5 do
   if geraten[k]=vergleich[k] then
      Label7.Caption:=IntToStr(falsch);
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
dreamsahin

Registriert seit: 29. Okt 2006
3 Beiträge
 
#6

Re: Mastermind mit Zahlen

  Alt 3. Nov 2006, 21:25
@Sunlight7
zu spät aber danke für dein Tip,
Hatte das gleiche was du beschrieben hast auch mal probiert,
als ergebniss bekomme ich die richtige zahlen sowie auch ri. zahlen falsche pos.
habe immernoch einen bug im code

Delphi-Quellcode:
 
...
   richtig:=0;
   falsch:=0;
   for i:= 1 to 5 do
   if geraten[i]=code[i] then inc(richtig)
    else inc(falsch);
richtig wird korrekt ausgegeben das problem liegt das jeder angegebene falsche zahl mitgezählt
obwohl nicht geraten wird.
  Mit Zitat antworten Zitat
Benutzerbild von Sunlight7
Sunlight7

Registriert seit: 17. Sep 2006
Ort: Sonnensystem, Zentral
1.522 Beiträge
 
Delphi 5 Standard
 
#7

Re: Mastermind mit Zahlen

  Alt 3. Nov 2006, 21:40
Hallo,

sorry, das Problem verstehe ich nicht ganz.

Hast Du außer geraten und code noch andere Arrays mit Daten?

Nach Deinem Code-Fragment nach kann Richtig+Falsch nur 5 ergeben
Windows: Ja - Microsoft: Nein -> www.ReactOS.org
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:30 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz