AW: Listbox Zahlen erhöhen
Also die Augenzahlen (6 und 5) sollen addiert werden, naja und dann soll in der Listbox bei: "Anzahl der 11: 1"
stehen (vorher stand da: "Anzahl der 11: 0") und wenn nochmal ne 11 gewürfelt wird dann "Anzahl der 11: 2" und wenn eine 7 gewürfelt wird dann "Anzahl der 7: 1" und so weiter und so fort... |
AW: Listbox Zahlen erhöhen
Was du meinst könnte einem Histogram nahe kommen. Such das mal bei Google um das Prinzip zu verstehen.
|
AW: Listbox Zahlen erhöhen
Hallo,
wenn nicht nach dem 2. Würfeln die Ergebnisse des 1. Würfelns weg sein sollen, darf summe nicht in der ButtonClick-Methode definiert werden, sondern "global" im Formular.
Delphi-Quellcode:
Dann darf in der ButtonClick das Array natürlich nicht auf 0 zurückgesetzt werden.
type
TForm1 = class(TForm) private public summe: array[2..12] of Integer; end; Da jetzt du dir jetzt die Summe merken kannst, kannst Du in der Tat die ListBox bei jedem Klick löschen (Clear) und neu füllen. PS: Ausserdem sollte man 1..12 drausmachen, falls einer der Würfel mal von Tisch runterfällt ;) |
AW: Listbox Zahlen erhöhen
Zitat:
PS: Vieleicht wäre es einfacher 2 Reihen á 10 Labels fest zu platzieren? Linke Labels bekommen Beschriftung wie "Würfelsumme 11", daneben ein Label mit einer Summe ala IntToStr(das Würfel-Array mit der 11) ODER (auf's Array verzichten und so hier) den Werte-Labels passende Namen geben, w11 zum Beispiel als Name für Würfelsumme 11, beim Programm-Start den Werte-Labeln alle eine "0" geben, und wenn nun ein Ergebniss 11 kommt, nurnoch w11.Caption := IntToStr(StrToInt(w11.Caption)+1); Das für jede Würfelkombination sollte auch passend sein. |
AW: Listbox Zahlen erhöhen
Hallo,
na, lass Ihn erst mal machen. Mit der ListBox ist das ja sonst nicht unverkehrt. Man sollte halt ein paar Grundlagen der Programmierung verstehen, dazu sind wir ja auch da ... ;) |
AW: Listbox Zahlen erhöhen
Naja, die Idee mit dem Array ist ja nicht verkehrt. Die Items einer Listbox sind ja eigentlich auch eins.
Wenn man nun ein Array für die Berechnung hat und das auch alles funktioniert, dann braucht man nur noch eine Routine, die den Arrayeintrag an die entsprechende Position der Listbox schreibt. Das Array geht von 2 bis 12. Die Listboxitems beginnen jedoch bei 0. Wenn man den richtigen Eintrag in der Listbox haben will, muss man nur die Position aus dem Array nehmen und dann 2 abziehen. Der Eintrag in der Listbox könnte dann ungefähr so aktuallisiert werden:
Delphi-Quellcode:
// x ist die gewürfelte Zahl.
Array[x] := Array[x] + 1; Listbox.Items[x - 2] := Format('%d: %d',[x,Array[x]]); |
AW: Listbox Zahlen erhöhen
Hallo,
KISS ist das nicht (Keap it simple, stupid). ListBox löschen und neu eintragen, ist doch viel einfacher zum lernen. Ausserdem geht das Array ja jetzt ab 1 los, falls mal ein Würfel von Tisch runterfällt ;) |
AW: Listbox Zahlen erhöhen
Na dann würde ich mein Beispiel auf Columns anwenden mit gleichem Prinzip, erste Column erhält Beschreibung zweite Column erhält einen Wert per IntToStr(StrToInt(hier die Column für Text/Caption)+1), könnte das klappen?
Eine Tabellenkalkulation, bei gleichem Prinzip, könnte man zu lern zwecken dafür auch benutzen. |
AW: Listbox Zahlen erhöhen
Sorry das ich mich nur so schlecht ausdrücken könnte.
Heute min Informatik-Unterricht wurde uns die Lösung gezeigt:
Code:
For i := 1 to k do begin w1 := Random(6)+1; w2 := Random(6)+1; inc(summe[w1+w2]); if (i mod 500 = 0) then application.Processmessage; Listbox1.Clear; For j := 2 to 12 do Listbox1.items.add(inttostr(Summe[j]; end; So, oder so Änlich.. Am Handy das zu schreiben ist schrecklich;( |
AW: Listbox Zahlen erhöhen
Delphi-Quellcode:
Da hast du doch dein Histogram.
inc(summe[w1+w2]);
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:24 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