Delphi-PRAXiS
Seite 1 von 5  1 23     Letzte »    

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)

leodinho 11. Jan 2014 11:22

Delphi-Version: 5

Schiffe versenken programmieren
 
Guten Tag Liebe Delphi-Community,

Ich muss momentan ein Programm für den Informatikunterricht erstellen.
Meine Aufgabe ist ,,Schiffe versenken'' zu programmieren.
Jedoch hab ich dafür bis jetzt wirklich sehr wenig vorkenntnisse und weiß ehrlich gesagt nicht wie ich anfangen soll und es systematisch aufbauen soll. Ich bin total überfragt, da ich auch im Internet noch nichts konkretes gefunden habe /:
Meine Aufgaben:
- Spielfeld 12x12 + Schiffe generieren mit zufallsfunktion
- Eingabe und Auswertung eines Spielerzuges
- Speichern und Laden eines Spielzuges

Ich hoffe ihr könnt mir weiterhelfen, da ich wirklich nicht weiß wie ich das anstellen soll. :?

Sir Rufo 11. Jan 2014 12:41

AW: Schiffe versenken programmieren
 
Herzlich Willkommen in der DP.

Um dir helfen zu können müsstest du uns noch etwas mehr mitteilen:

Wenig Vorkenntnisse heißt jetzt genau was?
(Wenn du so gut wie gar nichts weißt, dann können wir dir auch nicht helfen, außer den Hinweis auf ein Delphi-Einsteiger-Tutorial zu geben)

Nichts konkretes im Internet gefunden heißt?
(Ich habe auf Anhieb x Treffer und bei den ersten 10 soger ein komplettes Projekt mit Source - noch konkreter geht irgendwie nicht, oder?)

Um etwas zu programmieren, muß man die Thematik (Schiffe versenken) verstanden haben und kann sich dann Gedanken machen, was muss wie gemerkt (gespeichert) werden.
Hier hilft auch schon mal ein Zettel mit einer Skizze, wie das Spielfeld zur Mitte des Spiels stehen könnte (einfach mal durchspielen). Schon sieht man, welche Informationen man braucht um das auch so letztendlich auf den Bildschirm zu bringen.

So fängt man also an :)

leodinho 11. Jan 2014 13:18

AW: Schiffe versenken programmieren
 
Schon mal Danke für deine Zeit mir das zu schreiben (:

Wenig Vorkenntnisse heißt jetzt genau was?
Ich habe schon einige Vorkenntnisse , also behersche die Grundlagen der Programmierung.
Also brauch jetzt keine Hilfe wie und was ich machen soll, sodern bräuchte einen Ansatz.


Nichts konkretes im Internet gefunden heißt?
Ich habe auch einige Treffer bekommen, jedoch war dies meist sehr Unterschiedlich und hat mir nicht geholfen?
Hättest du ein bestimmten Link dieser Seiten bzw. Projekte?

Zur Programmierung:
Ich hab keine Idee wie ich die Felder erstelle um auf denen dann zufällige Schiffe zu generieren.
Außerdem hab ich keine Lösung um die ''getroffen'' Schiffteile anzuzeigen sobald man ein bestimmtes Feld geklickt hat..
Gibt es vllt Strktuogramme oder ähnliches, was mir dabei helfen könnte?

Danke im Vorraus! (:

Sir Rufo 11. Jan 2014 13:33

AW: Schiffe versenken programmieren
 
Bei Google suchenDelphi Schiffe versenken (ja, hat mich einige Mühe gekostet, bis ich diese Kombination hatte) :roll:

Nimm ein Blatt Papier, male das Spielfeld auf.

Dann nimm dir 4 Würfel und würfel damit die Koordinaten zusammen und platziere die Schiffe.
(Achtung auf Platzierungsregeln achten, wenn es nicht geht, dann erneut würfeln)

Wenn alle Schiffe platziert sind, dann fang an zu schießen.

Schreib dir dabei auf, was du wie und warum so gemacht hast, dass muss auch das Programm so machen.

leodinho 11. Jan 2014 13:55

AW: Schiffe versenken programmieren
 
Mensch auf die Idee , dass zu googeln bin ich ja noch garnicht gekommen :wink:
Natürlich habe ich mir schon alles durchgelesen in den meisten foren aber ich bin noch immer nicht auf eine lösung gestoßen.. /:

Ich bräuchte lediglich geeignete vorbetrachtungen die mir dabei helfen, da mir einfach der Ansatz fehlt..
Bin momentan echt überfragt.. :?

Aviator 11. Jan 2014 14:23

AW: Schiffe versenken programmieren
 
Du solltest dir vielleicht überlegen, wie du dein Spielfeld aufbauen willst und was alles angezeigt werden soll (und wie es angezeigt werden soll). Du könntest für das Spielfeld z. B. ein StringGrid nehmen (FixedCols und FixesRows geben die Koordinaten an) oder das gesamte Spielfeld selbst zeichnen.
Dann musst du dir darüber im Klaren sein, wie ein Spielzug ablaufen soll. Hat man zwei Spielfelder (normal so üblich zumindest so wie ich es kenn) und siehst die Schiffe des Gegners auf dem einen und die beschossenen Punkte und auf dem anderen die eigenen Schiffe und die vom Gegner getroffenen Punkte ...
Willst du deine Schiffe per Drag&Drop auf das Spielfeld ziehen können, oder gibtst du in einem Feld die Koordinaten an, auf denen das Schiff platziert werden soll? Die Schiffe dürfen nachdem das Spiel gestartet wurde nicht mehr bewegt werden können usw.

Ich hoffe ich konnte dir wenigstens ein paar Denkanstöße geben, die du möglicherweise auch mit den gefundenen Suchergebnissen kombinieren kannst. Einfach mal der Kreativität freien Lauf lassen und dann an die Struktur des Programmes gehen und alle/die meisten Eventualitäten berücksichtigen.

Sir Rufo 11. Jan 2014 14:44

AW: Schiffe versenken programmieren
 
Und das hier

http://forum.delphi-treff.de/index.p...threadID=30233

hast du nicht gefunden (10. Treffer der Suche)

Den Link zum Source in dem Beitrag findest du?

Da ist ein fertiges Schiffe versenken

leodinho 11. Jan 2014 15:06

AW: Schiffe versenken programmieren
 
Also mein Ziel ist es ein Feld 12x12 zu generieren auf dem:
- 1 4er Schiff
- 2 3er Schiffe
- 2 2er Schiffe
- 2 1er Schiffe
zufällig angeordnet sind..
Dann soll mit jedem Klick ein Zähler laufen bis das Spiel gewonnen wurde um die Züge zu ermitteln..

Frage die sich mir jetzt zuerst aufwirft.. Wie mache ich das mit einem StringGrid?

Perlsau 11. Jan 2014 16:14

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von Sir Rufo (Beitrag 1243162)
http://forum.delphi-treff.de/index.p...threadID=30233 Da ist ein fertiges Schiffe versenken

Stimmt leider nicht, denn ich hab dieses Projekt niemals fertiggestellt, sondern lediglich die Darstellung entworfen. Sprich: das Projekt stellt kein Spiel dar, sondern ermöglicht lediglich die Platzierung der Schiffe nebst der Einstellung des Grids nebst der Anzahl der Schiffe usw.

Doch zum Einstieg in die Problematik dürfte man hier erstmal reichlich Anschauungsmaterial finden. Der TE scheint mir aber nicht so weit zu sein, damit wirklich was anfangen zu können ...

Sir Rufo 11. Jan 2014 16:29

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von Perlsau (Beitrag 1243180)
Zitat:

Zitat von Sir Rufo (Beitrag 1243162)
http://forum.delphi-treff.de/index.p...threadID=30233 Da ist ein fertiges Schiffe versenken

Stimmt leider nicht, denn ich hab dieses Projekt niemals fertiggestellt, sondern lediglich die Darstellung entworfen. Sprich: das Projekt stellt kein Spiel dar, sondern ermöglicht lediglich die Platzierung der Schiffe nebst der Einstellung des Grids nebst der Anzahl der Schiffe usw.

Doch zum Einstieg in die Problematik dürfte man hier erstmal reichlich Anschauungsmaterial finden. Der TE scheint mir aber nicht so weit zu sein, damit wirklich was anfangen zu können ...

Ok, angesehen habe ich es mir nicht, aber der Anfang ist also da ... scheint aber nicht zu reichen ...

Zitat:

Zitat von leodinho (Beitrag 1243168)
Frage die sich mir jetzt zuerst aufwirft.. Wie mache ich das mit einem StringGrid?

Die erste Frage sollte sein, was für eine Datenstruktur (
Delphi-Quellcode:
array
?) für das Spielfeld und welche Werte sind dort möglich.
Die Ausgabe in ein StringGrid ist dann Spaziergang.

leodinho 11. Jan 2014 17:50

AW: Schiffe versenken programmieren
 
ja ich würde das mit einem array [1-...] machen..

Sir Rufo 11. Jan 2014 17:53

AW: Schiffe versenken programmieren
 
Und was für ein Datentyp
Delphi-Quellcode:
array[1..12,1..12] of ???
?
Und welche Werte können dort auftreten?

leodinho 11. Jan 2014 18:19

AW: Schiffe versenken programmieren
 
welcher waere für dieses programm am besten?

Sir Rufo 11. Jan 2014 18:54

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von leodinho (Beitrag 1243198)
welcher waere für dieses programm am besten?

Uberlege dir, welche Werte dort auftreten können, dann kommst du auch auf den Typ

leodinho 12. Jan 2014 15:11

AW: Schiffe versenken programmieren
 
Ich bin grad dabei das Feld mithilfe von StringGrid zu erstellen..
Brauche umbedingt Hilfe da ich es einfach nicht schaffe das Programm zu erstellen..
Mir würde momentan auch erstmal eine Projektplanung reichen? :?
Bin das erste mal überfragt.. /:

Danke im Vorraus

Aviator 12. Jan 2014 15:18

AW: Schiffe versenken programmieren
 
Wo hängt es denn genau? Was hast du bisher? Form schon fertig und am Code hängt es jetzt? Bekommst du das Grid nicht so hin wie du es gerne hättest? Konkretisiere deine Frage doch bitte noch etwas, sonst wird er schwierig dir zu helfen. :roll:

leodinho 12. Jan 2014 15:23

AW: Schiffe versenken programmieren
 
Also ich habe gestern schon etwas angefangen aber nichts passte so wie es sollte.. Habe jetzt neu angefangen..
Wie sollte ich am Besten anfangen? /:
Mit dem Programm hab ich noch 2 Monate Zeit aber bräuchte jetzt schon die Projektplanung /:

Sir Rufo 12. Jan 2014 15:24

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von leodinho (Beitrag 1243265)
Ich bin grad dabei das Feld mithilfe von StringGrid zu erstellen..
Brauche umbedingt Hilfe da ich es einfach nicht schaffe das Programm zu erstellen..
Mir würde momentan auch erstmal eine Projektplanung reichen? :?
Bin das erste mal überfragt.. /:

Danke im Vorraus

Hast du dir schon mal das "Schiffe versenken" Spielfeld auf ein Blatt gemalt, dort die Schiffe eingezeichnet und ein paar Spielzüge gemacht?

Nein -> dann kann ich dich verstehen, das könnte ich auch nicht (und will ich auch nicht)

Ich habe mittlerweile die Vermutung, du willst hier etwas Fertiges haben frei nach dem Motto "Lass doch mal die Anderen arbeiten".

Dann bist du aber in der falschen Rubrik gelandet. Stell die Anfrage in Job Börse: Angebote und Gesuche

leodinho 12. Jan 2014 15:31

AW: Schiffe versenken programmieren
 
Nein so ist das nicht.. Ich hab halt nur die Grundlagen in Info gelernt und in die Richtung waren wir noch nicht gegangen.. Ich hba halt das Problem , dass ich überhaupt nicht weiß wie ich anfangen soll bzw wie ich mit dem StringGrid arbeiten soll etc.. /:

Sir Rufo 12. Jan 2014 15:37

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von leodinho (Beitrag 1243270)
Nein so ist das nicht.. Ich hab halt nur die Grundlagen in Info gelernt und in die Richtung waren wir noch nicht gegangen.. Ich hba halt das Problem , dass ich überhaupt nicht weiß wie ich anfangen soll bzw wie ich mit dem StringGrid arbeiten soll etc.. /:

Du sollst auch nicht mit dem StringGrid anfangen, sondern das Spielfeld auf ein Blatt Papier malen, das kann doch nicht so schwer sein :wall:

TForm1 12. Jan 2014 15:54

AW: Schiffe versenken programmieren
 
Ich würde mir vielleicht erst mal dieses Tutorial hier anschauen, ist zwar kein Schiffe versenken, aber von der Grundart (Spielfeld usw.) sehr ähnlich. Dabei lernt man auch gleich die grundsätzliche Verwendung von Bitmaps und wie man darauf zeichnet. Das ist zwar deutlich umständlicher, aber dafür ist der Lerneffekt größer :wink:. Danach kannst Du ja versuchen das Konzept soweit auf dein Konzept zu übertragen.

leodinho 12. Jan 2014 15:56

AW: Schiffe versenken programmieren
 
Ok habe ich jetzt gemacht..
12x12 Spielfeld aufgezeichnet ..
Ist bloß scheiße wenn die Schiff zufällig drauf sein sollen /:

Popov 12. Jan 2014 16:01

AW: Schiffe versenken programmieren
 
@leodinho

Meine Frage zu diesem Zeitpunkt ist: welche Programmierkenntnisse habt ihr?

Die Frage ist wichtig, denn ein Problem kann man verschieden anpacken. Man kann z. B. eine TSchiffeVersenken Klasse erstellen. Nur stellt sich die Frage ob der Lehrer dir das dann auch abnimmt. Hat ihr das schon durchgekommen? Oder ohne Klasse. Soll alles einfach oder bunt sein, usw.

Mavarik 12. Jan 2014 16:08

AW: Schiffe versenken programmieren
 
So langsam bekomme ich lust Schiffe versenken zu programmieren...

1:1 über tcp/ip in Firemonkey 3d und so... :stupid:

Sollen wir einfach mal?

Mavarik

Sir Rufo 12. Jan 2014 16:09

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von leodinho (Beitrag 1243276)
Ok habe ich jetzt gemacht..
12x12 Spielfeld aufgezeichnet ..
Ist bloß scheiße wenn die Schiff zufällig drauf sein sollen /:

Und, wo ist das Problem?

Suche dir einen zufälligen Punkt und eine zufällige Richtung (links, oben, rechts, unten).
Jetzt versuchen das Schiff anhand der Vorgabe zu platzieren.
Wenn das nicht geht, dann neuer Punkt neue Richtung

Wenn das geht dann zum nächsten Schiff

leodinho 12. Jan 2014 16:19

AW: Schiffe versenken programmieren
 
@ Mavarik
Kannst du gerne machen jedoch hilft mir das auch nicht weiter, wenn ich ein fertiges Programm oderso hätte..

@ Popov

Wir haben halt alle Grundlagen von Algorhtymenstrukturen zu Variablen bis hin zu Schleifen und Verkettunken und noch am Ende Sortier und Such - Algorythmen..
Das Problem: Viele aus meiner Klasse müssen halt nur eine Datenbank eines Sportvereins etc erstellen , was nicht so schwer ist.. Ich hab halt die Aufgabe bekommen ein Programm zu programmieren /:

Popov 12. Jan 2014 16:19

AW: Schiffe versenken programmieren
 
Ich hab hier ein Ansatz, ein Spielfeld. Benötigt wird eine PaintBox. Das habe ich mal für Tic Tac Toe erstellt. Ich hab es nur auf 12 Felder erweitert. Das Feld ist simpel und die Ansteuerung ist simpel. Vielleicht bringt es dich auf eine Idee.
Delphi-Quellcode:
const
  MaxFelder = 12;

//Breite der Zelle
function CellWidth(Canvas: TCanvas): Integer;
begin
  with Canvas do
    Result := (ClipRect.Right - ClipRect.Left) div (MaxFelder + 1);
end;

//Höhe der Zelle
function CellHeight(Canvas: TCanvas): Integer;
begin
  with Canvas do
    Result := (ClipRect.Bottom - ClipRect.Top) div (MaxFelder + 1);
end;

//Rect-Bereich der Zelle
function CellRect(Canvas: TCanvas; x, y: Integer): TRect;
begin
  with Canvas do
    Result := Rect(x * CellWidth(Canvas), y * CellHeight(Canvas),
      (x + 1) * CellWidth(Canvas), (y + 1) * CellHeight(Canvas));
end;

//Text in Zelle mittig plazieren (horizontal und vertikal)
procedure CellRectText(Canvas: TCanvas; x, y: Integer; Text: String);
var
  a, b: Integer;
begin
  with Canvas do
  begin
    //Vermittelt Text in Höhe und Breite
    a := (CellWidth(Canvas) div 2) - (TextWidth(Text) div 2);
    b := (CellHeight(Canvas) div 2) - (TextHeight(Text) div 2);

    with Canvas do
      TextRect(CellRect(Canvas, x, y), (x * CellWidth(Canvas)) + a, (y * CellHeight(Canvas)) + b, Text);
  end;
end;

procedure DrawMatrix(Canvas: TCanvas);
var
  x, y: Integer;
  s: String;
begin
  with Canvas do
  begin
    Font.Color := clBlack;
    Font.Style := [] + [fsBold];

    //X-Koordinaten-Beschriftung zeichnen (1, 2, 3, ...)
    y := 0;
    for x := 1 to MaxFelder do
    begin
      s := IntToStr(x);
      CellRectText(Canvas, x, y, s);
    end;

    //Y-Koordinaten-Beschriftung zeichnen (A, B, C, ...)
    x := 0;
    for y := 1 to MaxFelder do
    begin
      s := Chr(y + 64); //64 ist das Ascii-Zeichen für @, ein Zeichen vor A
      CellRectText(Canvas, x, y, s);
    end;

    //Beispiel
    CellRectText(Canvas, 3, 5, 'X');
    CellRectText(Canvas, 6, 9, 'X');
    CellRectText(Canvas, 4, 7, 'O');


    //Gitter zeichnen
    Canvas.Brush.Style := bsClear;
    for x := 1 to MaxFelder do
      for y := 1 to MaxFelder do
      begin
        Pen.Color := clGray;

        Rectangle(CellRect(Canvas, x, y));
      end;
  end;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
  with PaintBox1 do
    DrawMatrix(Canvas);
end;

Sir Rufo 12. Jan 2014 16:28

AW: Schiffe versenken programmieren
 
@Popov

Das ist aber der Teil der zum Schluß kommt. Der TE hat aber bis jetzt nur den linken Fuß gehoben.
Von losgehen oder Schluß in Sicht kann man hier nicht sprechen.

Von daher trägt dein Beitrag im Moment nur zur Verwirrung bei.
Zu einem späteren Zeitpunkt wird dieser Beitrag sehr hilfreich sein.

leodinho 12. Jan 2014 16:38

AW: Schiffe versenken programmieren
 
Ja ich wollte es auch grad schreiben..
Ich bin mir unschlüssig wie ich nun das Feld erstellen soll..
Soll ich es mit einer Imagekomponente oder mit einem StringGrid machen?
Ich weiß einfach nicht wie ich anfangen soll..
Aufgemalt habe ich auch schon alles aber hilft auch nicht /:

Popov 12. Jan 2014 16:51

AW: Schiffe versenken programmieren
 
@Sir Rufo

Da bin ich vorläufig einer anderen Meinung. Im Grunde würde ich die evtl. zustimmen, aber unter anderen Umständen. Ich weiß auf was du hinaus willst. Zuerst zwei Arrays erstellen, Schiffe platzieren und das Ganze trocken abspielen. Und wenn alles funktioniert, kümmern wir uns um die Ausgabe.

Auf der anderen Seite fragt der TE schon seit zwei Tagen und bis auf warme Worte hat er bisher nichts bekommen, d. h. der hat noch nicht mal den ersten Schritt gemacht.

Der Code oben ist ein mögliches Ziel. Er kann sich auch ein anderes entwickeln, aber es ist vorläufig ein Ziel. Ein Feld von 12x12. Auf das hin kann er hinarbeiten.

Wenn du aber meinst, dass kein professioneller Programmierer so arbeitet, er ist kein professioneller Programmierer.

@leodinho

Als der Lehrer Aufgaben verteilte hast du vermutlich gedacht eine leichtere Aufgabe ergattert zu haben. Das war vermutlich kein guter Gedanke.

Du überlegst nun das Ganze mit einem StringGrid zu lösen, weil es ja schon das typische Feld hat. Ich denke nicht, dass das ein guter Gedanke ist. Es hat Vorteile, man muss nichts zeichnen, aber das Beispiel oben zeigt, dass das Zeichnen das kleinste Problem ist. Die Nachteile die ein StringGrid mit sich bringt kommen später.

leodinho 12. Jan 2014 17:30

AW: Schiffe versenken programmieren
 
So das wäre momentan mein Entwurf , es kann auch erfolgreich kompiliert werden jedoch kommt eine Meldung wenn ich dann gestartet habe /:

Meldung: Projekt project1 hat Exception Klasse >> External:SIGSEGV << ausgelöst.
In Datei ''grids.pas'' in zeile 4891

Würde gern eine Meinung zum Quellcode (:

Delphi-Quellcode:
unit Unit1;

{$mode objfpc}{$H+}

interface

uses
  Classes, SysUtils, FileUtil, Forms, Controls, Graphics, Dialogs, Grids;

type

  { TForm1 }

  TForm1 = class(TForm)
    StringGrid1: TStringGrid;
  StringGridSpielfeld: TStringGrid;
  procedure FormCreate(Sender: TObject);
  private
    { private declarations }
  public
    { public declarations }
  end;

  const COLS = 12;
        ROWS = 12;

var
  Form1: TForm1;
  SpielfeldIntern :array[1..COLS, 1..ROWS] of integer;
implementation

{$R *.lfm}

{ TForm1 }

procedure TForm1.FormCreate(Sender: TObject);
begin
 StringgridSpielfeld.ColCount:=COLS;
 StringgridSpielfeld.RowCount:=ROWS;
end;

end.

Popov 12. Jan 2014 17:57

AW: Schiffe versenken programmieren
 
Zitat:

Zitat von leodinho (Beitrag 1243299)
Würde gern eine Meinung zum Quellcode (:

Kurz ;)


Delphi-Quellcode:
  const COLS = 12;
        ROWS = 12;
Da COLS immer ROWS ist, würde ich dafür eine Konstante nutzen.

Wie ich schon sagte, StringGrid erscheint im ersten Moment die beste Wahl, aber bedenke, dass du mehrere Informationen verwalten musst. Welches Schiff ist es, welcher Teile getroffen wurden, ist es versunken?

leodinho 12. Jan 2014 18:08

AW: Schiffe versenken programmieren
 
Ja aber mit der Imagekomponente bekomm ich es erst garnicht hin ein Spielfeld zu entwerfen /:

Sir Rufo 12. Jan 2014 18:11

AW: Schiffe versenken programmieren
 
@Popov

Eine Textaufgabe löst man, indem man den Sinn versteht, in einzelnen logischen Teile zerlegt und sich den passenden Rechenweg überlegt.
Dann fängt man an zu rechnen.

So sollte man das eigentlich gelernt haben.

Warum das beim Programmieren anders sein soll oder auf einmal nur professionellen Programmierern vorbehalten ist, hört sich fast nach Lobotomie bei den nicht- professionellen Programmierern an.

Gutelo 12. Jan 2014 18:12

AW: Schiffe versenken programmieren
 
Ich glaub du solltest erstmal alle deine Mitschriften im Unterricht nochmal genau lesen, speziell zu Arrays, Klassen und deren Eigenschaften und Methoden. Danach solltest du dir ueberlegen wie du das umsetzen willst und Schritt fuer Schritt programmieren. Wieviel Zeit hast du denn dafuer?

Sir Rufo 12. Jan 2014 18:18

AW: Schiffe versenken programmieren
 
Mal ne Frage (auch an Popov):

Habt ihr das Spiel "Schiffe versenken" verstanden?

Meines Wissens nach gibt es für die Platzierung folgende Regeln:
  • Schiffe nur waagerecht oder senkrecht
  • zwischen den Schiffen ist mindestens ein Feld frei
Mit diesen Regeln ist es unerheblich zu wissen, welches Schiff es ist, sondern kann durch das Auswerten der Nachbarfelder (horizontal, vertikal) herausfinden ob das Schiff versenkt ist oder nicht.

Als Datenstruktur reicht somit Folgendes vollkommen aus
Delphi-Quellcode:
TEnvironmentState = (esWasser, esSchiff, esDaneben, esTreffer);
TEnvironment = array[1..12,1..12] of TEnvironmentState;
BTW: Das Spiel ist beendet, wenn es keine Felder mehr mit dem Status
Delphi-Quellcode:
esSchiff
gibt.

Zitat:

Zitat von Gutelo (Beitrag 1243309)
Ich glaub du solltest erstmal alle deine Mitschriften im Unterricht nochmal genau lesen, speziell zu Arrays, Klassen und deren Eigenschaften und Methoden. Danach solltest du dir ueberlegen wie du das umsetzen willst und Schritt fuer Schritt programmieren. Wieviel Zeit hast du denn dafuer?

2 Monate (wurde schon erwähnt)

leodinho 12. Jan 2014 18:27

AW: Schiffe versenken programmieren
 
Mein Problem ist halt dass ich bis dienstag meine Projektplanung fertig haben muss und dann noch 2 Monate um Programm und die Extras zu erstellen.. /:
Jedoch ist mir nicht ganz klar wie ich mir für dieses Projekt ein Plan aufschreiben kann /:

Sir Rufo 12. Jan 2014 18:33

AW: Schiffe versenken programmieren
 
Indem man das Problem analysiert und dabei z.B. feststellt, dass jedes Zelle in dem Spielfeld 4 Zustände annehmen kann.

Bei einem Schuss auf ein Feld wird der Status des Felds verändert und bei einem Treffer werden die Nachbarzellen untersucht, ob das Schiff versenkt wurde.

Sind nach dem Schuss (mit einem Treffer) keine Felder mehr mit dem Status Schiff vorhanden, dann ist das Spiel beendet.

Klaus01 12. Jan 2014 18:36

AW: Schiffe versenken programmieren
 
Guten Abend,

die Regeln zum Schiffeversenken: wiki

Was verstehst Du bzw. Dein Lehrer unter Projektplanung?

Grüße
Klaus

leodinho 12. Jan 2014 18:46

AW: Schiffe versenken programmieren
 
Projektplanung:
- grober Aufbau / Ablauf
- wenn es geht Struktogramme (obwohl ich jetzt nicht wüsste wie ich dazu Struktogramme erstellen könnte)


Alle Zeitangaben in WEZ +1. Es ist jetzt 23:39 Uhr.
Seite 1 von 5  1 23     Letzte »    

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