Einzelnen Beitrag anzeigen

Amateurprofi

Registriert seit: 17. Nov 2005
Ort: Hamburg
1.041 Beiträge
 
Delphi XE2 Professional
 
#2

Re: [Java] Ziehen ohne Zurücklegen (Mastermind)

  Alt 11. Nov 2007, 01:08
[quote="Eichhoernchen"]Ich hab in meinem Studium, die Aufgabe bekommen Mastermind zu programmieren, dabei ist es nötig eine Buchstabenfolge der Länge 4 aus 8 Zeichen zu erzeugen.
Sprich, ich hab die Buchstaben A..H und soll daraus 4 auswählen, jedoch keine doppelten, das ganze ist ja nicht schwer, jedoch bekamen wir die Einschränkung nur 4 mal die Funktion aufrufen zu dürfen, die uns einen Zufallsbuchstaben erzeugt. Das ganze habe ich auch Problemlos gelöst, jedoch bin ich mir über die Qualität des Codes nicht sicher. Da wir keine Bibliotheksfunktionen nutzen dürfen sondern nur diese eine Zufallsbuchstabenmethode, schränkt es das ganze ziemlich ein.


Hallo Eichhörnchen,

Ich würde das so lösen (in Delpi - kannst du sicher leicht umsetzen)

Delphi-Quellcode:
FUNCTION RandomCode:string;
var c:char; i,n:integer;
begin
   result:='ABCDEFGH';
   for i:=7 downto 4 do begin
      n:=Random(i)+1; // liefert eine Zahl im Bereich 1 bis i
      c:=result[i];
      result[i]:=result[n];
      result[n]:=c;
   end;
   Delete(result,1,4);
end;
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat