![]() |
Streichholzspiel
Hallo
Ich komme beim Streichholzspiel grad nicht weiter. Ich versuch Integerzahlen in binäre umzuwandeln und dann die Quersumme zu bilden z.B 111 011 111 Und dann soll der Computer soviele Streichhölzer abziehen ,dass die Quersumme eine gerade Zahl ergibt wie ,enn er z.B 3 aus Reihe 3 nimmt. 111 011 100 =222 Nur leider bekomm ich ein EConvertError
Delphi-Quellcode:
unit ExtendQuersumme;
interface uses Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls; type TForm1 = class(TForm) Button1: TButton; ListBox1: TListBox; procedure Button1Click(Sender: TObject); procedure quersumme(x:array of integer); private { Private-Deklarationen } public { Public-Deklarationen } end; type feld=array[1..9] of integer; var y:feld ; y2:feld ; y3:feld ; qsumme:feld; type feld2=array [1..3] of integer; var h:feld2; d:feld2; var Form1: TForm1; implementation {$R *.DFM} function IntToBin(i: int64): string; var x: integer; begin if i > 0 then begin result := ''; x := 1; while i >= x do begin result := inttostr((i and x) div x) + result; x := x shl 1; end; end else result := '0'; end; procedure tform1.quersumme(x:array of integer); var s,i,l:integer ; begin s:=1; d[1]:=strtoint(inttobin(x[1])) ; l:=Length(inttostr(d[1])); For i:=1 to l do begin y[i]:=d[1] div s mod 10; s:=s*10; end; s:=1; d[2]:=strtoint(inttobin(x[2])) ; l:=Length(inttostr(d[2])); For i:=1 to l do begin y2[i]:=d[2] div s mod 10; s:=s*10; end; s:=1; d[3]:=strtoint(inttobin(x[3])) ;//[b]Hier zeigt er mir den Error an[/b] l:=Length(inttostr(d[3])); For i:=1 to l do begin y3[i]:=d[3]div s mod 10; s:=s*10; end; l:=Length(inttostr(y[1])); For i:=1 to l do begin qsumme[i]:=y[i]+y2[i]+y3[i]; listbox1.items.add(inttostr(qsumme[i])); end; end; procedure TForm1.Button1Click(Sender: TObject); begin h[1]:=3; h[2]:=7; h[3]:=4; quersumme(h); end; end. |
Re: Streichholzspiel
Ich vermute, der Fehler wird ausgelöst, weil du auf x[3] zugreifst.
Der höchste gültige Index für x ist aber 2. |
Re: Streichholzspiel
Zitat:
Btw: Du würdest es dir viel einfacher machen, wenn Du deine Variablen treffender benennen würdest :zwinker: Bei dem Buchstabensalat verliert man sonst ganz schnell mal den Überblick ;) |
Re: Streichholzspiel
Liste der Anhänge anzeigen (Anzahl: 1)
Hm..hab jetzt mal das "dynamische" Array weggelassen, aber mein Ergebnis stimmt
nicht bei 3,7,4 also 011,111,100 kommt beim Programm die Quersummer 0123 raus, obwohl 222 rauskommen sollte. Vielleicht kann sich das nochmal jemand angucken. Thx im voraus. ---------------------------------------------------------------------- Hat Sich erledigt!^^ |
Re: Streichholzspiel
Liste der Anhänge anzeigen (Anzahl: 1)
Ich bekomm das Spiel gegen den Bot nicht hin manchmal klappts manchmal macht er garnichts :?
Wer nett wenn jemand drüber gucken könnte. Sry für die Unordnung :drunken: |
Re: Streichholzspiel
Zitat:
2) Finde ich Recht sinnlos, das man eingeben kann, wie viele Man ziehen will. Dann zieh ich einfach alle und hab gewonnen. Besser wäre eine voreingestellte auswahlt. Meist ist die 1,2 oder 3 3) Total unübersichtliches Feld 4) Bei Neustart wird das Programm geschlossen. |
Re: Streichholzspiel
Liste der Anhänge anzeigen (Anzahl: 1)
Zitat:
2) Es gibt drei Reihen das heißt ,wenn du alle aus einer Reihe wegnehmen würdest hättest du verloren, es sei den in den anderen beiden Reihen wären gleichviele Streichhölzer. Denn der, der das letzte Streichholz nimmt hat gewonnen. 3) Haste vollkommend recht :lol: 4) Also bei mir öffnet der die .exe neu , also liegts beim Pfad der 100%ig falsch sein muss. |
Re: Streichholzspiel
Zitat:
Da ist ein fester Pfad vorgegeben. Besser wäre, wenn du den Pfad nimmst, von dem das Programm gestartet wurde. |
Re: Streichholzspiel
Das wäre dann
Delphi-Quellcode:
ParamStr(0)
|
Re: Streichholzspiel
Zitat:
Delphi-Quellcode:
ShellExecute(self.Handle,'open',PChar(ExtractFilePath(ParamStr(0)) + 'Prhoelzer.exe'),
nil,nil,0); |
Alle Zeitangaben in WEZ +1. Es ist jetzt 10:47 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 by Thomas Breitkreuz