Delphi-PRAXiS
Seite 3 von 5     123 45      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Schiffe versenken programmieren (https://www.delphipraxis.net/178499-schiffe-versenken-programmieren.html)

DeddyH 13. Jan 2014 18:25

AW: Schiffe versenken programmieren
 
Sach ich doch die ganze Zeit :)

leodinho 13. Jan 2014 18:30

AW: Schiffe versenken programmieren
 
Ja das stimmt, manchmal will man es schwerer angehen als es eigentlich ist.
Jetzt im Nachhinein denk ich mir auch, wie verbissen ich in manchen Punkten war :wink:

Sir Rufo 13. Jan 2014 18:35

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von leodinho (Beitrag 1243493)
Also ich denke damit sollte meine Planung insgesamt durch Ablaufplan + Ablaufdiagramme vollendet sein (:

Eigentlich fehlt noch wie du feststellen willst, ob das Schiff nach einem Treffer versenkt wurde.

Skizze und Erläuterung wie das ermittelt werden kann (nein, immer noch nicht programmieren).

Im Ablaufplan wird das nur kurz angerissen, darum skizzierst du das Verfahren (so wie das Platzieren der Schiffe auch nur skizziert worden ist).

Zitat:

Zitat von leodinho (Beitrag 1243496)
Ja das stimmt, manchmal will man es schwerer angehen als es eigentlich ist.
Jetzt im Nachhinein denk ich mir auch, wie verbissen ich in manchen Punkten war :wink:

früher oder später kriegen wir euch doch :mrgreen:

leodinho 13. Jan 2014 18:41

AW: Schiffe versenken programmieren
 
Ja darüber bin auch sehr dankbar :-D

Zitat:

Im Ablaufplan wird das nur kurz angerissen, darum skizzierst du das Verfahren (so wie das Platzieren der Schiffe auch nur skizziert worden ist).
Ich habe es kurz angerissen. Eine Skizze dafür wäre denk ich mal überflüssig da es sich doch schon klärt:
Wenn auf dem Feld ein Teil des Schiffes ist -> Dann Treffer angezeigt / sonst kein Treffer -> Water

Sir Rufo 13. Jan 2014 18:45

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von leodinho (Beitrag 1243499)
Ja darüber bin auch sehr dankbar :-D

Zitat:

Im Ablaufplan wird das nur kurz angerissen, darum skizzierst du das Verfahren (so wie das Platzieren der Schiffe auch nur skizziert worden ist).
Ich habe es kurz angerissen. Eine Skizze dafür wäre denk ich mal überflüssig da es sich doch schon klärt:
Wenn auf dem Feld ein Teil des Schiffes ist -> Dann Treffer angezeigt / sonst kein Treffer -> Water

Und wann ist das Schiff versenkt? Das fehlt noch!

leodinho 13. Jan 2014 18:57

AW: Schiffe versenken programmieren
 
Habe ich jetzt auch in meinem Ablauf hinzugefügt (:
Denke mal,dass es schonmal ein Anfang ist.. :thumb:

Sir Rufo 13. Jan 2014 19:02

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von leodinho (Beitrag 1243502)
Habe ich jetzt auch in meinem Ablauf hinzugefügt (:
Denke mal,dass es schonmal ein Anfang ist.. :thumb:

Ok, wär schön, wenn du den Projektplan nach der Vorlage beim Lehrer hier als PDF anhängen könntest.
Der nächste der danach sucht (auch wenn es nur um einen Projektplan geht) wird es dir danken.
Schön wäre auch die Meinung des Lehrers dazu (was hat er vermisst, was fand er gut)

leodinho 13. Jan 2014 19:07

AW: Schiffe versenken programmieren
 
Darauf müssen wir dann aber noch warten :D Wird erst im März ausgewertet ^^

Aber werde hier alles nochmal in den näcshten Tag als PDF hochladen.
Desweiteren werde ich mich mit paar Programmiervorraussetzungen für dieses Spiel befassen und mich dann wieder melden, wenn das kein problem ist ^^

Nochmal ein großes Dankeschön an Alle für die tatkräftige Hilfe, sowie einen besonderen Dank an Sir Ruso :thumb:

Popov 13. Jan 2014 19:30

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von DeddyH (Beitrag 1243485)
Isses denn so schwer? Ein Spielfeld, auf das so lange geballert wird, bis alle Schiffe versenkt sind, zurückgeschossen wird nicht. Das entspricht zwar nicht dem klassischen Schiffe versenken, ist aber zumindest ähnlich.

Ok, jetzt ist es verständlich, aber nennt das dann bitte nicht "Schiffe versenken". Gucken wir uns mal den ersten Post an, weil ich mir schon blöd vorkomme:

Zitat:

Zitat von leodinho (Beitrag 1243135)
Meine Aufgabe ist ,,Schiffe versenken'' zu programmieren.

[...]

Meine Aufgaben:
- Spielfeld 12x12 + Schiffe generieren mit zufallsfunktion
- Eingabe und Auswertung eines Spielerzuges
- Speichern und Laden eines Spielzuges

Hört sich für mich zuerst nach klassischen "Schiffe versenken" an. Wenn zwischendurch das Ganze konkretisiert wurde, ich lese mir nicht jeden Beitrag durch.

Man könnte es statt "Schiffe versenken" vielleicht anders nennen, z. B. "Wild Jagt". Opfer wären dann: 1 Wisent (4 Felder), 2 Hirsche (3 Felder), 2 Wildschweine (2 Felder), 2 Hasen (1 Feld). Der Wald ist dann das Feld 12x12. Der Jäger schießt blind in den Wald und hofft auf Treffer, aber keiner schießt aus dem Wald zurück. Würde das in etwa die Aufgabe beschreiben?

Ok, ich halte jetzt die Klappe ;)

Popov 15. Jan 2014 18:31

AW: Schiffe versenken programmieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Mir hat die Idee mit der "Wild Jagt" so gut gefallen, dass das Programm gestern noch geprogt habe. Heute habe ich das noch aufgewertet, mit Sound, Statistik usw., so dass die erste Version fertig ist ;)

Die Sounds sind in einem Unterordner. Erst mit Sound macht ein Spiel richtig Spaß.

Mavarik 18. Jan 2014 12:59

AW: Schiffe versenken programmieren
 
Liste der Anhänge anzeigen (Anzahl: 3)
Ich habe mal einige Grafiken Ergoogled...

leodinho 2. Feb 2014 11:08

AW: Schiffe versenken programmieren
 
Tut mir Leid , dass ich mich jetzt erst wieder melde aber wir mussten noch einiges umändern.
Ich werd mich in Laufe der nächsten Tage dann mit der Programmierung beschäftigen (:
Nachdem dann das Programm fertig ist, werde ich hier mal Porjektplanung und das Programm hochladen, damit sich auch andere dies angucken können. (:

leodinho 24. Feb 2014 16:45

AW: Schiffe versenken programmieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Guten Tag, da bin ich wieder (:
Meine Projektplanung habe ich nun auch als Anhang beigefügt obwohl es nicht die vollständige ist..
Nun meine Frage, werde jetzt das Programm machen aber weiß nicht wie ich es anfangen soll /:
Habe mir viele sachen durchgelesen aber ich kam zu keiner logischen Erkenntnis?

MfG
Leon M.

Sir Rufo 24. Feb 2014 16:58

AW: Schiffe versenken programmieren
 
Der Projektplan besteht gefühlt zu 80% aus Teilen, die ich dir geliefert habe.
Ich erkenne da keinen nennenswerten Eigenanteil von dir.

Viel Erfolg bei der Umsetzung

leodinho 24. Feb 2014 17:46

AW: Schiffe versenken programmieren
 
Ja die Bilder sind von dir.. (:
Ich habe noch weitere Sachen wir 2 Tabellen und ein einfaches Struktogram hinzugefügt, jedoch ist dies auf dem Rechner in der Schule..
Ichweiß jetzt jedoch nicht wie ich das umsetzten soll /:

Popov 24. Feb 2014 17:57

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von leodinho (Beitrag 1249362)
Nun meine Frage, werde jetzt das Programm machen aber weiß nicht wie ich es anfangen soll /:

Wie wäre es wenn du dir dein Projektplan durchliest? Da steht:
Code:
1. Generieren des Spielfeldes ( Imagekomponente, Array of TPanal o. StringGrid )
               
1.1. 12x12 Feld erstellen mithilfe ( vertikal A-L und horizontal 1-12 )
Das ist doch schon ein guter Anfang.

leodinho 26. Feb 2014 21:44

AW: Schiffe versenken programmieren
 
ja ich weiß was ich für möglichkeiten habe aber hab keine idee wie es gehen soll /:

Perlsau 26. Feb 2014 22:45

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von leodinho (Beitrag 1249773)
ja ich weiß was ich für möglichkeiten habe aber hab keine idee wie es gehen soll /:

Mit anderen Worten: du kannst nicht programmieren, möchtest aber ein Ergebnis vorweisen. Da gibt's eigentlich nur eine einzige Methode: Programmieren lernen.

Mavarik 27. Feb 2014 08:03

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von Perlsau (Beitrag 1249777)
Mit anderen Worten: du kannst nicht programmieren, möchtest aber ein Ergebnis vorweisen. Da gibt's eigentlich nur eine einzige Methode: Programmieren lernen.

Autsch! :stupid:

Sir Rufo 27. Feb 2014 08:15

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von Mavarik (Beitrag 1249798)
Zitat:

Zitat von Perlsau (Beitrag 1249777)
Mit anderen Worten: du kannst nicht programmieren, möchtest aber ein Ergebnis vorweisen. Da gibt's eigentlich nur eine einzige Methode: Programmieren lernen.

Autsch! :stupid:

Nun zieh dir doch nicht gleich jeden Schuh an :mrgreen:

Mavarik 27. Feb 2014 13:20

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von Sir Rufo (Beitrag 1249800)
Zitat:

Zitat von Mavarik (Beitrag 1249798)
Zitat:

Zitat von Perlsau (Beitrag 1249777)
Mit anderen Worten: du kannst nicht programmieren, möchtest aber ein Ergebnis vorweisen. Da gibt's eigentlich nur eine einzige Methode: Programmieren lernen.

Autsch! :stupid:

Nun zieh dir doch nicht gleich jeden Schuh an :mrgreen:

Sehr witzig... Danke... Hab dich auch lieb...:lol:

Perlsau 27. Feb 2014 13:48

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von Mavarik (Beitrag 1249863)
Sehr witzig... Danke... Hab dich auch lieb...:lol:

Du warst doch gar nicht gemeint :kiss:

Popov 27. Feb 2014 14:20

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von leodinho (Beitrag 1249773)
ja ich weiß was ich für möglichkeiten habe aber hab keine idee wie es gehen soll /:

Ist eigentlich das was ich am Anfang gemeint habe und was du nicht hören wolltest: Projektplanung ist schön und gut, aber man sollte vorher einen groben Plan haben wie man es später macht. Du hast einfach drauflos geplant ohne groß zu überlegen und hast dir nun paar Aufgaben aufgehalst die meiner Meinung nicht nötig gewesen wären, bzw. in der Projektplanung nicht hätten erwähnt werden müssen. Nun müssen sie umgesetzt werden. Als Beispiel wäre da die Regel, wonach die Schiffe nicht aneinander stoßen dürfen. Das hat bei der Papiervariante einen Sinn, ist bei der EDV-Variante nicht unbedingt nötig:
Code:
X...
X...
XXXX

1...
1...
2222
In der Papier-Variante (oben) weiß man nicht zu welchem Schiff das Feld unten links gehört, in der EDV-Variante schon. Deshalb befolgen viele EDV-Spiele diese Regel nicht. Du hast sie in deine Planung aufgenommen, nun mußt du sie umsetzten. Ich denke mal das ist das absolut komplizierteste an der Aufgabe, alles andere ist eher simpel.

Nun beginnt bekanntlich jede lange Reise mit dem ersten Schritt. Im Beitrag #96 habe ich dir einen Tipp gegeben: ein Feld erstellen. Hast du das bereits gemacht? Zeig mal wie es aussieht. Wenn der Teil ok ist, kann man sich an den nächsten Schritt wagen - Schiffe automatisch platzieren lassen (natürlich nach deinen Regeln aus deiner Projektplanung).

Romiox 27. Feb 2014 14:51

AW: Schiffe versenken programmieren
 
Aber auch die zufällige Platzierung ist ein Teil, der sich dem Spiel ja vielleicht erstmal unterordnet. Man könte auch sagen ich habe 4 Layouts und wähle davon eins zufällig. Dann kann man hinterher immernoch einen Algorithmus implementieren der Layouts generiert, und sich erstmal auf die Logik konzentrieren, die das Spiel spielbar macht. Das heißt, erst mal machen wir das ganze spielbar, und dann kümmern wir uns um eigentlich nebensächliche Logik. Deine Arbeit befasst sich schließlich nicht mit dem generieren der Spielfelder, sondern mit dem Spiel selbst. Klar gehört das dazu, aber ich würde, grade in anbtracht der Tatsache, dass Du anscheinend noch eine ganze Menge lernen musst bis zur Umsetzung, eindeutige Prioritäten setzenm und zwar dahin gehend, dass zum Abgabetermin eine Runde Schiffe versenken spielbar ist.

leodinho 27. Feb 2014 19:35

AW: Schiffe versenken programmieren
 
Ich werde es einfach lassen.. es hat keinen sinn.. Danke für die Hilfe aber wenn ich davon Ahnung hätte, würde ich hier nicht fragen und warum dann einige meinen hier auf dicke eier zu machen und sich nur drüber lustig zu machen.. respekt.. danke an die, die es wenigstens versucht haben..
ich weiß weder wie ich n feld noch den rest programmiere.. :?

Popov 27. Feb 2014 20:17

AW: Schiffe versenken programmieren
 
Liste der Anhänge anzeigen (Anzahl: 1)
Was hast du dann in der Schule gelernt? Wieso übernimmst du die Aufgabe ein Programm wie Schiffe versenken zu programmieren, wenn du nicht mal die Kenntnisse hast wie man ein Feld erstellt, bzw. mit dem Feld ist ein Array gemeint. Dicke Eier? Du hast schon Tipps bekommen, auch gute, aber du hast irgendwann den Weg des kleinsten Wiederstandes gewählt und das akzeptiert was dir die Lösung liefert, ohne zu hinterfragen wieso und weshalb.

Also wenn du nicht mal in der Lage bist ein Array-Feld zu erstellen, dann hat das evtl. tatsächlich keinen Sinn.

Ich könne dir nun zeigen wie du das Array erstellst, denn erstens ist es nur eine Zeile und zweitens mag ich im Grunde ich den Spruch von wegen - Lerneffekt - nicht. Trotzdem, wenn du es vorgesagt bekommst, dann verstehst du es nicht was das eigentlich soll und verstehst den Rest nicht.

Wie ich schon sagte, im Beitrag #96 steht der erste Schritt.

Willst du ein Tipp? Ok, hier ist ein Link zu einem Tutorial: http://de.wikibooks.org/wiki/Program...Pascal:_Arrays

Lerne zuerst was Array sind (siehe Tutorial). Es ist nicht so schwer. Du benötigst ein Zweidimensionales Array, wg. Spielfeld 12x12. Wenn du das grob verstanden hast, kannst du den Rest hier fragen.

Ich hab das das Programm (bzw. das Platzieren der Schiffe) zum Teil programmiert (siehe Anhang). Das kannst du auch. Ist im Grunde nicht wirklich schwer. Ich hab dazu folgende Prozeduren und Funktionen benötigt:

Prozedur FeldLeeren
Funktion IstZelleGueltig
Funktion IstZelleFrei
Funktion IstGueltigeZelleFrei
Funktion IstZelleUndRandZoneFrei
Funktion SchiffPositionHorizontal
Funktion SchiffPositionVertikal
Funktion EinSchiffPositionieren
Funktion AlleSchiffePositionieren

Ich hab die Berechnung in kleine Stücke zerteilt, wobei einige Funktion gerade mal eine Zeile groß sind.

Der erste Schritt ist ein Feld generieren.

leodinho 27. Feb 2014 20:35

AW: Schiffe versenken programmieren
 
Ich habe mir das Thema leider nicht selber ausgesucht /:
Danke, dass du dir wirklich die Zeit für einen hoffnungslosen fall machst /:
Natürlich weiß ich was ein array ist aber es fehlt mir am logischen denkvermögen, dies umzusetzen..

Wie erstelle ich nun ein zeidimensionales array?

var my2DIntArray : Array of Array of Integer;
SetLength(my2DIntArray, 12);
SetLength(my2DIntArray[0], 12);
SetLength(my2DIntArray[1], 12);
SetLength(my2DIntArray[2], 12);

oder :

var my2DIntArray : Array of Array of Integer;
SetLength(mySecond2DIntArray, 12, 12);

... Wäre das eine Option?

Ich werde mich dann morgen wieder melden, da ich es heute zeitlich nicht mehr schaffe.

Popov 27. Feb 2014 20:59

AW: Schiffe versenken programmieren
 
Hier eine Info an dich als Anfänger. Es gibt

- Statische Arrays (und)
- Dynamische Arrays

Vergiss mal die Dynamischen Arrays ganz schnell (als Anfänger). Sie sind nicht kompliziert, aber nach meiner Meinung sollte man erst die Statischen Arrays rauf und runter beherrschen. Erst dann sollte man sich an die an die Dynamischen wagen.

Was du hier im letzten Beitrag geliefert hast sind Dynamische Arrays. Die brauchst du nicht. Du benötigst ein zweidimensionales Statisches Array.

Wie gesagt, guck dir das Tutorial an, zusätzlich in Delphi die Hilfe aufrufen und im Register "Index" den Text "Statische Arrays" eingeben. Unter YouTube findet sich auch etwas: http://www.youtube.com/watch?v=1feCYnwB5DI

Bjoerk 27. Feb 2014 23:13

AW: Schiffe versenken programmieren
 
Laß dich nicht von dir selbst entmutigen. Wenn die Einstellung stimmt wirst du hier immer Leute finden die dir gern weiterhelfen.

Weiteres kleines Array Beispiel: :)

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
const
  MaxRowCount = 2;
  MaxColCount = 2;
type
  TIntegerArray = array [0..MaxRowCount - 1, 0..MaxColCount - 1] of integer;
  TFloatArray = array [0..MaxRowCount - 1, 0..MaxColCount - 1] of double;
  TStringArray = array [0..MaxRowCount - 1, 0..MaxColCount - 1] of string;
var
  IntegerArray: TIntegerArray;
  FloatArray: TFloatArray;
  StringArray: TStringArray;
  Row, Col: integer;
begin
  for Row := 0 to MaxRowCount - 1 do
    for Col := 0 to MaxColCount - 1 do
    begin
      IntegerArray[Row, Col] := 10 * Row + Col;
      FloatArray[Row, Col] := IntegerArray[Row, Col] / 3;
      StringArray[Row, Col] := 'Text ' + IntToStr(Row) + ' / ' + IntToStr(Col);
    end;
  for Row := 0 to MaxRowCount - 1 do
    for Col := 0 to MaxColCount - 1 do
      ShowMessage(Format('IntegerArray(%d %d) = %d', [Row, Col, IntegerArray[Row, Col]]));
  for Row := 0 to MaxRowCount - 1 do
    for Col := 0 to MaxColCount - 1 do
      ShowMessage(Format('FloatArray(%d %d) = %.4f', [Row, Col, FloatArray[Row, Col]]));
  for Row := 0 to MaxRowCount - 1 do
    for Col := 0 to MaxColCount - 1 do
      ShowMessage(Format('StringArray(%d %d) = %s', [Row, Col, StringArray[Row, Col]]));
end;

p80286 28. Feb 2014 10:20

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von leodinho (Beitrag 1249940)
Natürlich weiß ich was ein array ist aber es fehlt mir am logischen denkvermögen, dies umzusetzen..

Delphi-Quellcode:
Spielfeld : array [1..12,1..12] of integer;
oder
Delphi-Quellcode:
Spielfeld : array [0..11,0..11] of integer;
(was Du für dicke Eier hälst ist Wissen)

Gruß
K-H

DeddyH 28. Feb 2014 10:22

AW: Schiffe versenken programmieren
 
http://delphibasics.co.uk/RTL.asp?Name=Array

Back2Code 28. Feb 2014 10:26

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von p80286 (Beitrag 1249984)
Zitat:

Zitat von leodinho (Beitrag 1249940)
Natürlich weiß ich was ein array ist aber es fehlt mir am logischen denkvermögen, dies umzusetzen..

Delphi-Quellcode:
Spielfeld : array [1..12,1..12] of integer;
oder
Delphi-Quellcode:
Spielfeld : array [0..11,0..11] of integer;
(was Du für dicke Eier hälst ist Wissen)

Gruß
K-H

Array of String sollte bei Schiffe Versenken auch möglich sein.

p80286 28. Feb 2014 10:33

AW: Schiffe versenken programmieren
 
Na klar, wahrscheinlich wäre ein Record sowieso besser, aber da es zunächst einmal um ein zweidimensionales Array ging und er Integer in seinem Beispiel genutzt hat .......

Mal schauen wie er es umsetzen will und dann kann man ja immer noch etwas konkretes sagen.

Gruß
K-H

leodinho 28. Feb 2014 10:56

AW: Schiffe versenken programmieren
 
Ich habe jetzt mein statisches zweidimensionales array

Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var
  Zahlen : array of integer ;
  Feld : array [0..11, 0..11] of string;
begin
  setlength(zahlen, 12); //Zahlen : array (0...11) of Integer
dies würde doch jetzt schonmal so passen oder?

DeddyH 28. Feb 2014 10:58

AW: Schiffe versenken programmieren
 
Du hast jetzt ein dynamisches Integer-Array und ein statisches String-Array mit 12 * 12 Feldern deklariert. Syntaktisch ist das OK, allerdings bin ich mir nicht sicher, ob das statische Array wirklich eine lokale Variable sein sollte. Andererseits kenne ich Deine angedachte Vorgehensweise auch nicht, von daher musst Du selbst entscheiden, ob das so richtig ist.

leodinho 28. Feb 2014 11:03

AW: Schiffe versenken programmieren
 
Wie würde ich das mit einem statischen array nun machen?
Ich versteh bloß nicht, wie daraus dann später das feld generiert werden soll, da mir das logische denken irgendwie fehlt.

Wie würdest du es jetzt aus sicht eines anfänger mache? /:

p80286 28. Feb 2014 11:12

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von leodinho (Beitrag 1249997)
Ich versteh bloß nicht, wie daraus dann später das feld generiert werden soll,

Was verstehst Du unter Feld? Fußballfeld,Datenbankfeld,Spielfeld?
und wenn Du das Spielfeld meinst, das dargestellte oder das auf dem gerechnet und die Daten vorgehalten werden?

Gruß
K-H

leodinho 28. Feb 2014 11:15

AW: Schiffe versenken programmieren
 
Naja das Spielfeld...
das statiche array wird dann global und nicht lokal..

Sir Rufo 28. Feb 2014 11:21

AW: Schiffe versenken programmieren
 
Also du hast ein Spielfeld
Delphi-Quellcode:
Spielfeld : array[0..11,0..11] of integer;
und jedes Feld kann einen Wert annehmen, der den Status des Feldes darstellt.

Folgende Werte sind in dem Spiel möglich
Delphi-Quellcode:
const
  WATER = 0;
  NEARSHIP = 1; // Wird zum Positionieren der Schiffe benötigt
  SHIP = 2;

  HITVALUE = 10;

  HIT_WATER = WATER + HITVALUE;
  HIT_NEARSHIP = NEARSHIP + HITVALUE;
  HIT_SHIP = SHIP + HITVALUE;
Wenn du nun ein Schuss auf ein Feld abgeben willst, dann überprüfst du, ob der aktuelle Wert des Feldes kleiner als
Delphi-Quellcode:
HITVALUE
ist. Wenn dem so ist, dann addierst du zu dem aktuellen Feldwert einfach
Delphi-Quellcode:
HITVALUE
und der neue Wert ist gesetzt.
Delphi-Quellcode:
// Schuss auf 4,7
if Spielfeld[4,7] < HITVALUE then
  Spielfeld[4,7] := Spielfeld[4,7] + HITVALUE;
Wenn du das Spielfeld anzeigen willst, dann gibst du abhängig vom Wert eben das passende heraus (Zeichen, Bild, Farbe, whatever)
Delphi-Quellcode:
// Ausgabe des Spielfelds auf der Console
for y := 0 to 11 do
  for x := 0 to 11 do
  begin
    case Spielfeld[x,y] of
      WATER : Write( ' ' );
      NEARSHIP : Write( '+' );
      SHIP : Write( '#' );
      HIT_WATER : Write( 'o' );
      HIT_NEARSHIP : Write( '*' );
      HIT_SHIP : Write( 'X' );
    end;
  end;
  WriteLn; // Neue Zeile
end;

p80286 28. Feb 2014 11:22

AW: Schiffe versenken programmieren
 
In Deinem Array speicherst Du die Schiffe und Treffer und Wasser.. auf irgendeine weise kodiert, die Anzeige läuft dann im Prinzip so ab
Delphi-Quellcode:
for i:=1 to 12 do
  for j:=1 to 12 do
    Ausgabevon(Spielfeld[i,j]);
Wobei Ausgabevon die Zeichenroutine(n) enthält und auch die Interpretation der gespeicherten Daten (Schiff,Treffer,Wasser...)

Gruß
K-H

(wiede zu langsam)


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:22 Uhr.
Seite 3 von 5     123 45      

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