AGB  ·  Datenschutz  ·  Impressum  







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

15 Variablen auf Ungleichheit prüfen

Ein Thema von Skritek · begonnen am 22. Apr 2013 · letzter Beitrag vom 29. Apr 2013
Antwort Antwort
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.662 Beiträge
 
Delphi 12 Athens
 
#1

AW: 15 Variablen auf Ungleichheit prüfen

  Alt 22. Apr 2013, 19:01
Das ist doch eigentlich das gleiche Prinzip wie bei den Hier im Forum suchenLottozahlen. Eine mögliche Implementierung findest Du auch hier.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Skritek

Registriert seit: 22. Apr 2013
6 Beiträge
 
#2

AW: 15 Variablen auf Ungleichheit prüfen

  Alt 22. Apr 2013, 19:48
Also, das sieht dann jetzt so aus:

Code:
function Zufallskarte(Von, Bis: Integer): Integer;
var
  i,i2: byte;
  Karte: array [1..15] of Integer;
begin
  Result := Random(Succ(Bis - Von)) + Von;

  Karte[1]:= Zufallskarte(1, 52);
  Karte[2]:= Zufallskarte(1, 52);
  Karte[3]:= Zufallskarte(1, 52);
  Karte[4]:= Zufallskarte(1, 52);
  Karte[5]:= Zufallskarte(1, 52);
  Karte[6]:= Zufallskarte(1, 52);
  Karte[7]:= Zufallskarte(1, 52);
  Karte[8]:= Zufallskarte(1, 52);
  Karte[9]:= Zufallskarte(1, 52);
  Karte[10]:= Zufallskarte(1, 52);
  Karte[11]:= Zufallskarte(1, 52);
  Karte[12]:= Zufallskarte(1, 52);
  Karte[13]:= Zufallskarte(1, 52);
  Karte[14]:= Zufallskarte(1, 52);
  Karte[15]:= Zufallskarte(1, 52);

  for i:=1 to 10 do
    for i2:=1 to 10 do
      if i2<>i then
          if Karte[i] = Karte[i2] then
             Result := Random(Succ(Bis - Von)) + Von;
end;
Ist da irgendwo ein Fehler, weil wenn ich das so kopiliere und die erste Karte ziehe kommt ein Fehler, von wegen Stack Überlauf ( Im Projetkt ....exe ist eine Exeption der Klasse EStackOverflow aufgetreten. ), was soll ich tun ?!

Habe in den Anhang mal das gesamte Projekt reingetan, also wer Zeit hat, kann es sich gerne mal anschauen... Kommen noch diverse andere Fehler, wo ich die Lösung nicht weiß ...

edit:

Also keine richtigen Fehler, sondern nur ?logische? also die, die nicht vom Kompiler erkannt werden. z.B. dass es ab der 3. vom Comuter gezogenen Karte nicht mehr die Endkriterien wie SummeCu < 21 oder so ähnliches überprüft, sondern einfach aufhört...
Angehängte Dateien
Dateityp: rar Black Jack (0.5 Alpha).rar (3,87 MB, 1x aufgerufen)
  Mit Zitat antworten Zitat
Benutzerbild von Bummi
Bummi

Registriert seit: 15. Jun 2010
Ort: Augsburg Bayern Süddeutschland
3.470 Beiträge
 
Delphi XE3 Enterprise
 
#3

AW: 15 Variablen auf Ungleichheit prüfen

  Alt 22. Apr 2013, 19:55
Versuch einfach einmal einen Durchlauf mit dem Finger auf der Zeile nachzuvollziehen, dann weißt Du wo der Stackoverflow herkommt.
Thomas Wassermann H₂♂
Das Problem steckt meistens zwischen den Ohren
DRY DRY KISS
H₂ (wenn bei meinen Snipplets nichts anderes angegeben ist Lizenz: WTFPL)
  Mit Zitat antworten Zitat
Skritek

Registriert seit: 22. Apr 2013
6 Beiträge
 
#4

AW: 15 Variablen auf Ungleichheit prüfen

  Alt 22. Apr 2013, 20:10
Also habe jetzt auf jeden fall schon mal gefunden, dass er 5 karten zu wenig durchsucht hat, aber den rest nicht ...
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.662 Beiträge
 
Delphi 12 Athens
 
#5

AW: 15 Variablen auf Ungleichheit prüfen

  Alt 23. Apr 2013, 07:26
http://de.wikipedia.org/wiki/Rekursive_Programmierung
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Blup

Registriert seit: 7. Aug 2008
Ort: Brandenburg
1.487 Beiträge
 
Delphi 12 Athens
 
#6

AW: 15 Variablen auf Ungleichheit prüfen

  Alt 29. Apr 2013, 17:01
Delphi-Quellcode:
procedure Zufallskarten15;
var
  i1, i2, x: Integer;
begin
  for i1 := 1 to 15 do
  begin
    repeat
      x := Zufallskarte(1, 52);
      for i2 := 1 to i1 - 1 do
      begin
        if Karte[i2] = x then
        begin
          x := -1;
          Break;
        end;
      end;
    until (x <> -1);
    Karte[i1] := x;
  end;
end;
Aber es ist einfacher gleich bei der Auswahl doppelte Karten auszuschließen, als diese hinterher zu ersetzen.
Da hatte ich doch mal eine Funktion..., ah ja:
http://www.delphipraxis.net/881397-post66.html
  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 17:49 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