AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Schiffe versenken (zum XX-ten Mal :3 )

Ein Thema von Grayknife · begonnen am 18. Feb 2015 · letzter Beitrag vom 27. Mär 2015
Antwort Antwort
Grayknife

Registriert seit: 13. Feb 2015
Ort: Hessen
26 Beiträge
 
#1

AW: Schiffe versenken (zum XX-ten Mal :3 )

  Alt 19. Feb 2015, 07:25
Ich weiß jetzt nicht genau...

dann also einfach eine Frage:

Was passiert, wenn ich diese Prozedur aufrufe:
Delphi-Quellcode:
function Tform1.SchiffTesten1(Spalte,Reihe, Anz:Integer):Boolean;
var i,Ges:Integer;
begin
  Ges:=0;
 //...
  If (Spielfeld1[Spalte-1,Reihe]=0) then inc(ges); //vor dem Schiff?
  If (Spielfeld1[Spalte+Anz+1,Reihe]=0) then inc(ges); //Hinter dem schiff?

  If (Anz=4) and (Ges=17) then result:=True
  Else result:=False;
  // If Anz=3 and Ges=14...
  // If Anz=2 and Ges=11...

End;
und zwar mit dem Spaltenwert=0. Dann wird bei dem einen Aufruf 0-1 also -1 gerechnet. Das Array geht aber nur von 0-7. bricht er dann den Vorgang ab?
Denn wenn ich einfach ein kleines Testprogramm schreibe und auf einen Wert, der kleiner als 0 ist, zugreife, zeigt er mir eine Fehlermeldung an

Geändert von Grayknife (19. Feb 2015 um 07:32 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Schiffe versenken (zum XX-ten Mal :3 )

  Alt 19. Feb 2015, 07:33
Kommt darauf an: ohne Bereichsprüfung merkst Du nicht, dass Du auf irgendwelchen Schrott zugreifst. Bei aktivierter Bereichsprüfung bekommst Du eine Fehlermeldung.
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
Grayknife

Registriert seit: 13. Feb 2015
Ort: Hessen
26 Beiträge
 
#3

AW: Schiffe versenken (zum XX-ten Mal :3 )

  Alt 19. Feb 2015, 07:37
Achso, selbstgeschriebene Prozeduren, testen also nicht, ob es den Bereich überhaupt gibt?

Also müsste ich noch eine(oder mehrere) Prozedur schreiben, wenn die Spalte bzw. die Zeile 0 ist? damit dort gar nicht über oder links neben dem Schiff abgefragt wird?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Schiffe versenken (zum XX-ten Mal :3 )

  Alt 19. Feb 2015, 07:40
Eine einfache If-Abfrage vor dem Zugriff sollte genügen.
Delphi-Quellcode:
if Spalte > Low(Spielfeld1) then
  If (Spielfeld1[Spalte-1,Reihe]=0) then inc(ges);
Das Gleiche dann äquivalent auf der anderen Seite.
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
Grayknife

Registriert seit: 13. Feb 2015
Ort: Hessen
26 Beiträge
 
#5

AW: Schiffe versenken (zum XX-ten Mal :3 )

  Alt 19. Feb 2015, 07:55
Okey, und dieses low(Spielfeld1), gibt genau welchen wert an?
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Schiffe versenken (zum XX-ten Mal :3 )

  Alt 19. Feb 2015, 07:57
Guckst Du Hilfe
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
Grayknife

Registriert seit: 13. Feb 2015
Ort: Hessen
26 Beiträge
 
#7

AW: Schiffe versenken (zum XX-ten Mal :3 )

  Alt 22. Feb 2015, 20:16
ok, jetzt kann jeder spieler 6 schiffe setzen mit verschiedener Größe, nur an Positionen die erlaubt sind. Cool

Jetzt wollte ich theoretisch einfach die Zahlen durch Bilder ersetzen, aber ich habe keinen Plan wie ich das machen soll Wenn ich zum beispiel mit canvas eine Bitmap grafik in das stringgrid einfügen möchte, verschwindet das sofort wieder >.< . Kann ich das auch noch anders lösen? (wie sieht es mit drawgrid aus? ist das anders? habe auch gelesen einfach ein riesiges TImage machen?)
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:31 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