AGB  ·  Datenschutz  ·  Impressum  







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

Streichholzspiel

Ein Thema von bestzeller · begonnen am 8. Jun 2008 · letzter Beitrag vom 10. Jun 2008
Antwort Antwort
Seite 1 von 2  1 2      
bestzeller

Registriert seit: 11. Mär 2008
Ort: Köln
6 Beiträge
 
#1

Streichholzspiel

  Alt 8. Jun 2008, 13:13
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.
  Mit Zitat antworten Zitat
Amateurprofi

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

Re: Streichholzspiel

  Alt 8. Jun 2008, 13:54
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.
Gruß, Klaus
Die Titanic wurde von Profis gebaut,
die Arche Noah von einem Amateur.
... Und dieser Beitrag vom Amateurprofi....
  Mit Zitat antworten Zitat
Benutzerbild von leddl
leddl

Registriert seit: 13. Okt 2003
Ort: Künzelsau
1.613 Beiträge
 
Delphi 2006 Professional
 
#3

Re: Streichholzspiel

  Alt 8. Jun 2008, 14:27
Zitat von Amateurprofi:
Der höchste gültige Index für x ist aber 2.
Um das etwas deutlicher auszuführen: x ist in der Methode Quersumme ein dynamisches Array, daher laufen die Indizes von 0 bis length(x)-1 Hier also von 0 bis 2...

Btw: Du würdest es dir viel einfacher machen, wenn Du deine Variablen treffender benennen würdest Bei dem Buchstabensalat verliert man sonst ganz schnell mal den Überblick
Axel Sefranek
A programmer started to cuss, cause getting to sleep was a fuss.
As he lay there in bed, looping round in his head
was: while(!asleep()) ++sheep;
  Mit Zitat antworten Zitat
bestzeller

Registriert seit: 11. Mär 2008
Ort: Köln
6 Beiträge
 
#4

Re: Streichholzspiel

  Alt 8. Jun 2008, 16:29
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!^^
Angehängte Dateien
Dateityp: zip extendquersumme_512.zip (161,9 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
bestzeller

Registriert seit: 11. Mär 2008
Ort: Köln
6 Beiträge
 
#5

Re: Streichholzspiel

  Alt 8. Jun 2008, 18:42
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
Angehängte Dateien
Dateityp: zip testle_186.zip (167,9 KB, 8x aufgerufen)
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#6

Re: Streichholzspiel

  Alt 8. Jun 2008, 23:13
Zitat von bestzeller:
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
1) Fehlt die Date *.pas
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.
  Mit Zitat antworten Zitat
bestzeller

Registriert seit: 11. Mär 2008
Ort: Köln
6 Beiträge
 
#7

Re: Streichholzspiel

  Alt 9. Jun 2008, 05:56
Zitat:
1) Fehlt die Date *.pas
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.
1) Jetzt dürfte die Datei drin sein.
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
4) Also bei mir öffnet der die .exe neu , also liegts beim Pfad der 100%ig falsch sein muss.
Angehängte Dateien
Dateityp: zip prhoelzer_851.zip (177,6 KB, 2x aufgerufen)
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#8

Re: Streichholzspiel

  Alt 9. Jun 2008, 10:00
Zitat von bestzeller:
4) Also bei mir öffnet der die .exe neu , also liegts beim Pfad der 100%ig falsch sein muss.
Shellexecute(handle,'open','C:\Dokumente und Einstellungen\René\Eigene Dateien\DelphiProjekte\Streichholzspiel\Holze\Prho elzer.exe',Nil,Nil,0);

Da ist ein fester Pfad vorgegeben. Besser wäre, wenn du den Pfad nimmst, von dem das Programm gestartet wurde.
  Mit Zitat antworten Zitat
Benutzerbild von Aurelius
Aurelius

Registriert seit: 29. Jan 2007
Ort: Erfurt
753 Beiträge
 
Delphi 7 Personal
 
#9

Re: Streichholzspiel

  Alt 9. Jun 2008, 10:08
Das wäre dannParamStr(0)
Jonas
  Mit Zitat antworten Zitat
BullsEye

Registriert seit: 8. Sep 2007
Ort: Werlte
872 Beiträge
 
Delphi 7 Personal
 
#10

Re: Streichholzspiel

  Alt 9. Jun 2008, 11:07
Zitat von xX0815Xx:
Das wäre dannParamStr(0)
Der Exacte Code für dieses Programm wäre

Delphi-Quellcode:
  ShellExecute(self.Handle,'open',PChar(ExtractFilePath(ParamStr(0)) + 'Prhoelzer.exe'),
    nil,nil,0);
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 12:32 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