AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein Schulprojekt Kniffel ! 3/4 Pasch und Full house
Thema durchsuchen
Ansicht
Themen-Optionen

Schulprojekt Kniffel ! 3/4 Pasch und Full house

Ein Thema von keikedeike · begonnen am 9. Jun 2011 · letzter Beitrag vom 10. Jun 2011
Antwort Antwort
keikedeike

Registriert seit: 6. Jun 2011
9 Beiträge
 
#1

Schulprojekt Kniffel ! 3/4 Pasch und Full house

  Alt 9. Jun 2011, 21:48
Hallo

Hab ein Schulprojekt 'Kniffel' bzw 'Yahtzee'

Hab dat Projekt jetzt soweit fertig nur fehlt mir noch 3/4 Pasch und Das Full House, jedoch habe ich keine Ahnung wie ich die Programieren soll ! Er ist ziemlich dringend denn muss nächste Woche abgeben


Wäre echt nett wenn ihr mit Helfen könnten




hab den 3-Pasch mal programmiert jedoch geht er nur wenn der 1. Wurfel zum Pasch gehört zb 32331 wenn die Würfel auf 23133 fallen funktioniert der Knopf nicht ! Schicke mal den den Quelltext




Delphi-Quellcode:
procedure Tzt.btndreierpaschClick(Sender: TObject);
var i,j,comp:integer;
         str:string;
begin
  btndreierpasch.enabled := false;
  btnbegin.enabled := true;
  comp:=1;
  str:=lbl1.caption+lbl2.caption+lbl3.caption+lbl4.caption+lbl5.caption;

  for i:=0 to 4 do
  begin
  if comp < 3 then
  begin
  comp:=1;
    for j:=i+1 to 4 do
    begin
      if (str[i])=(str[j]) then
      comp:=comp+1;
    end;
    end;
    end;

    if comp >= 3 then
    lbldreierpasch.caption:=(inttostr (strtoint(lbl1.caption)+ strtoint(lbl2.caption)+ strtoint(lbl3.caption)+ strtoint(lbl4.caption)+ strtoint(lbl5.caption)));
    lblN.caption := '0';


Danke im vorraus
mfg Keikedeike

Geändert von mkinzler (10. Jun 2011 um 11:55 Uhr) Grund: Color-Tag durch Delphi-Tag ersetzt
  Mit Zitat antworten Zitat
Norbert987

Registriert seit: 27. Nov 2003
Ort: Aachen
74 Beiträge
 
Delphi 7 Professional
 
#2

AW: Schulprojekt Kniffel ! 3/4 Pasch und Full house

  Alt 9. Jun 2011, 23:33
Strings beginnen in Delphi an Position 1. Somit brauchst du deine Schleifen nur von 1-5 statt 0-4 laufen zu lassen und das Problem sollte gelöst sein.

Bitte benutzer beim nächstenmal die Delphi Code Tags

Delphi-Quellcode:
procedure Tzt.btndreierpaschClick(Sender: TObject);
var
  i,j,comp:integer;
  str:string;
begin
  btndreierpasch.enabled := false;
  btnbegin.enabled := true;
  comp:=1;
  str:=lbl1.caption+lbl2.caption+lbl3.caption+lbl4.c aption+lbl5.caption;

  for i:=1 to 5 do
  begin
    if comp < 3 then
    begin
      comp:=1;
      for j:=i+1 to 5 do
      begin
        if (str[i])=(str[j]) then
          comp:=comp+1;
      end;
    end;
  end;

  if comp >= 3 then
    lbldreierpasch.caption:=(inttostr (strtoint(lbl1.caption)+ strtoint(lbl2.caption)+ strtoint(lbl3.caption)+ strtoint(lbl4.caption)+ strtoint(lbl5.caption)));
  
  lblN.caption := '0';
Gruß, Norbert
  Mit Zitat antworten Zitat
keikedeike

Registriert seit: 6. Jun 2011
9 Beiträge
 
#3

AW: Schulprojekt Kniffel ! 3/4 Pasch und Full house

  Alt 10. Jun 2011, 00:13
hey danke für deine schnell Lösung hab aber jetzt irgentwie nen andern Weg gefunden um den 3/4 Pasch zu machen !


Hab nun noch immer keine Lösung für den Full House Knopf

Ideen wären gut !

danke im vorraus

mfg Keikedeike
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.540 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Schulprojekt Kniffel ! 3/4 Pasch und Full house

  Alt 10. Jun 2011, 07:14
Ich hatte doch bereits im anderen Thread einen Tipp gegeben.
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
Bjoerk

Registriert seit: 28. Feb 2011
Ort: Mannheim
1.384 Beiträge
 
Delphi 10.4 Sydney
 
#5

AW: Schulprojekt Kniffel ! 3/4 Pasch und Full house

  Alt 10. Jun 2011, 13:04
Haben in der Mittagspause auch mal gekniffelt. Wenn du die Ergebnisse der 5 Würfel in einem array speicherst wird’s leichter. Wenn du dieses array sortierst, wird’s noch leichter.

Delphi-Quellcode:
type
  TWuerfel = array [1..5] of integer;
Delphi-Quellcode:
function Sortiere (const W: TWuerfel): TWuerfel;
var
  I, J, T: integer;
begin
  Result:= W;
  for I:= 1 to 4 do
    for J:= I+1 to 5 do
      if Result[I] > Result[J] then
      begin
        T:= Result[I];
        Result[I]:= Result[J];
        Result[J]:= T;
      end;
end;


function Chance (const W: TWuerfel): integer;
var
  I: integer;
begin
  Result:= 0;
  for I:= 1 to 5 do
    Inc(Result, W[I]);
end;


function Dreierpasch (const W: TWuerfel): integer;
var
  I, N: integer;
  S: TWuerfel;
begin
  S:= Sortiere(W);
  Result:= 0;

  N:= 0;
  for I:= 1 to 2 do
    if S[I] = S[I+1] then Inc(N);
  if N = 2 then Result:= Chance(W);

  N:= 0;
  for I:= 2 to 3 do
    if S[I] = S[I+1] then Inc(N);
  if N = 2 then Result:= Chance(W);

  N:= 0;
  for I:= 3 to 4 do
    if S[I] = S[I+1] then Inc(N);
  if N = 2 then Result:= Chance(W);
end;


function FullHouse (const W: TWuerfel): integer;
var
  I, N: integer;
  S: TWuerfel;
begin
  S:= Sortiere(W);
  Result:= 0;

  N:= 0;
  for I:= 1 to 2 do
    if S[I] = S[I+1] then Inc(N);
  if N = 2 then
    if S[4] = S[5] then Result:= 25;

  N:= 0;
  for I:= 3 to 4 do
    if S[I] = S[I+1] then Inc(N);
  if N = 2 then
    if S[1] = S[2] then Result:= 25;
end;


function KleineStrasse (const W: TWuerfel): integer;
var
  I, N: integer;
  S: TWuerfel;
begin
  Result:= 0;
  S:= Sortiere(W);

  N:= 0;
  for I:= 1 to 3 do
    if S[I+1] = S[I]+1 then Inc(N);
  if N = 3 then Result:= 30;

  N:= 0;
  for I:= 2 to 4 do
    if S[I+1] = S[I]+1 then Inc(N);
  if N = 3 then Result:= 30;
end;
  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 01:36 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