AGB  ·  Datenschutz  ·  Impressum  







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

Schiffe versenken programmieren

Ein Thema von leodinho · begonnen am 11. Jan 2014 · letzter Beitrag vom 4. Mär 2014
Antwort Antwort
leodinho

Registriert seit: 9. Dez 2013
58 Beiträge
 
#1

AW: Schiffe versenken programmieren

  Alt 13. Jan 2014, 17:22
Popov , ließt du dir meine Sachen eigl auch durch? ^^
Ich habe schon 3x geschrieben , dass ich kein Computer habe..
Außerdem geht es um die Planunf und nicht gleich um die Codierung ob ich Array nutze oder nicht..

@ Sir Rufo

Ich habe es aufgemalt aber hab halt wenig programmiert und mir fehlen halt die Zusammenhänge um es ordentlich zu planen ^^
Schonmal vielen dank für deine Zeit (:
Ich werde das Feld später mit einem StringGrid generieren obwohl ich noch nicht weiß wie das geht (hab dafür ja 2 monate zeit )
Zum zufälligen Positionieren wäre doch Boolean nützlich oder sehe ich das falsch? (dann könnte ich es kurz in der Planung erwähnen.. )
  Mit Zitat antworten Zitat
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#2

AW: Schiffe versenken programmieren

  Alt 13. Jan 2014, 17:37
Ich habe es aufgemalt aber hab halt wenig programmiert und mir fehlen halt die Zusammenhänge um es ordentlich zu planen ^^
Falsch, lass den ganzen Programmierkram komplett weg, der ist für den Plan nicht wichtig.
Stell dir einfach vor, du musst einer Person das Spiel "Schiffe Versenken" erklären, so dass er nachher den Part des Programms übernehmen kann. Dabei gibts du ihm auch ein paar Kniffe und Tricks mit, die du herausgefunden hast (siehe Positionierung eines Schiffes mit den Start-Koordinaten)
Schonmal vielen dank für deine Zeit (:
Ich werde das Feld später mit einem StringGrid generieren obwohl ich noch nicht weiß wie das geht (hab dafür ja 2 monate zeit )
Das ist der richtige Ansatz. Es wird schon irgendwie anzuzeigen sein. Mal ein Bild mit dem Titel "So ungefähr soll es aussehen" und dann versucht man so nah wie möglich da dran zu kommen (zur Not wird halt alles komplett selber gezeichnet, wie Popo das am Beispiel von TicTacToe gezeigt hat). Aber im Moment spielt das keine Geige
Zum zufälligen Positionieren wäre doch Boolean nützlich oder sehe ich das falsch? (dann könnte ich es kurz in der Planung erwähnen.. )
Nein, in die Planung gehört:
  1. Ermittlung der Orientierung (horizontal/vertikal) per Zufall
  2. Ermittlung der Start-Koordinaten (X,Y) per Zufall
  3. Wenn das Schiff mit der Orientierung und den Start-Koordinaten nicht in das Spielfeld passt dann wieder zu (1.)
  4. Schiff in das Spielfeld übernehmen
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Popov
(Gast)

n/a Beiträge
 
#3

AW: Schiffe versenken programmieren

  Alt 13. Jan 2014, 17:49
Ich habe schon 3x geschrieben , dass ich kein Computer habe..
Das habe ich schon gelesen, aber ich dachte das ist ein Scherz. Du sollst etwas programmieren, hast aber keinen Computer?

Vorausgesetzt du hast einen Computer, meinst aber keinen Computergegner zu haben, in dem Fall stellt sich die Frage was du da eigentlich programmieren sollst? Dann ist das eigentlich keine richtige Aufgabe.
  Mit Zitat antworten Zitat
leodinho

Registriert seit: 9. Dez 2013
58 Beiträge
 
#4

AW: Schiffe versenken programmieren

  Alt 13. Jan 2014, 18:01
@ Popov

Das Ziel meines Programmes ist halt so wenig wie möglich züge zu brauchen um alle schiffe zu versenken. (:

@ Rufo
Das waere bis jetzt meine vorläufige Planung:

Projektplanung - ,,Schiffe versenken''


1. Generieren des Spielfeldes durch ein StringGrid
1.1. 12x12 Feld erstellen mithilfe ( vertikal A-L und horizontal 1-12 )
2. Spiel Starten -> Schiffe zufällig auf dem Feld platzieren ( evtl mit Boolean )

2.1. Zufällige Position ermitteln
2.1.1. Einschränkungen der Schiffe:
4er – Schiff horizontal: 4er – Schiff vertikal:
(Für die anderen Schiffe gilt die Einschränkung je nach Größe auch)
2.1.2. Position zulässig? -> Alle Regelbedingungen erfüllt?
3er Schiff + mehrere Schiffe schon platziert:
Es ist zu erkennen, dass aufgrund der Regel ,,kein Schiff darf ein anderes Schiff berühren'',die Anzahl der Plätze gesunken ist.
2.1.3. Ermitteln aller gültigen Start-Koordinaten und aus dieser Menge zufällig eine auswählen
3. Klick auf das Feld (Zähler +1) ( if ... then ; else ... )
3.1. Treffer? → Ja → Dann Überprüfung ob Schiff versenkt? → Ja -> Meldung
''Schiff versenkt'' // Nein? → nächster Klick
3.2. Treffer? → Nein → nächster Klick
4. Solange Wiederholen bis alle Schiffe getroffen wurden -> 3. wiederholen
4.1. Zähler nach jedem Klick auf dem Spielfled um 1 erhöhen
5. Alle Schiffe getroffen?
5.1. Wurden alle Schiffe getroffen? → Ja? → Meldung anzeigen: ''Alle Schiffe getroffen''
6. Erscheinen des Highscores
6.1. Highscore ( Liste der Besten Spieler ) erstellen
6.2. Anzeige des Highscores sobald der Spieler alle Schiffe versenkt hat
6.3. Anzeige eines Feldes zum Eingeben des Namens
6.4. Speicherung der Daten im Highscore
Die Bilder hab ich jetzt hier mal weggelassen..
In welchem Bereich könnte ich genauer werden?
  Mit Zitat antworten Zitat
EWeiss
(Gast)

n/a Beiträge
 
#5

AW: Schiffe versenken programmieren

  Alt 13. Jan 2014, 18:05
Zitat:
In welchem Bereich könnte ich genauer werden?
Theorie ist das eine die Praxis eine andere..
Woher sollen wir wissen ob du dich überhaupt schon mal mit Delphi beschäftigt hast.

Ich hoffe hab jetzt nicht zu viel gesagt und jemand verärgert.

gruss
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Schiffe versenken programmieren

  Alt 13. Jan 2014, 18:06
1. ist immer noch falsch. Zuerst die Logik, dann die Darstellung. Ob das letztendlich ein StringGrid wird, ein Array of TPanel oder ein TSchießMichTot, ist doch erst einmal vollkommen irrelevant.
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
Benutzerbild von Sir Rufo
Sir Rufo

Registriert seit: 5. Jan 2005
Ort: Stadthagen
9.454 Beiträge
 
Delphi 10 Seattle Enterprise
 
#7

AW: Schiffe versenken programmieren

  Alt 13. Jan 2014, 18:23
1. Generieren des Spielfeldes durch ein StringGrid
Falsch, denn
  1. Daten werden nie, niemals, nicht in einem Control gespeichert. Ein Control ist für den Austausch mit dem Benutzer gedacht (Eingabe/Ausgabe)
  2. Ob das wirklich ein StringGrid wird, ist ja noch gar nicht raus ... leg dich da einfach noch nicht fest. Und die Generierung des Spielfelds hat nichts mit der Anzeige zu schaffen.
    Die Anzeige folgt dem Spielfeld

Ja eine Vereinfachung meiner Art. Warum bekomm ich das nicht gleich so konstant und gut hin ^^
Weil du dich die ganze Zeit an einem StringGrid festgebissen hast und das Pferd von hinten aufzäumen wolltest, anstatt einfach erstmal das aufzuschreiben/aufzumalen, was du aus der Beschreibung und den Regeln zum Spiel "Schiffe Versenken" herausarbeiten kannst
Kaum macht man's richtig - schon funktioniert's
Zertifikat: Sir Rufo (Fingerprint: ‎ea 0a 4c 14 0d b6 3a a4 c1 c5 b9 dc 90 9d f0 e9 de 13 da 60)
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

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

AW: Schiffe versenken programmieren

  Alt 13. Jan 2014, 18:25
Sach ich doch die ganze Zeit
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
leodinho

Registriert seit: 9. Dez 2013
58 Beiträge
 
#9

AW: Schiffe versenken programmieren

  Alt 13. Jan 2014, 18:30
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
  Mit Zitat antworten Zitat
Antwort Antwort

 

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 04:23 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