Home | Registrieren | Einloggen | Suchen | Aktuelles


Forum » Software » Schiffe versenken?? Antworten
Schiffe versenken??

bine
Pixelschubser


Beiträge: 2


hi!
hab den "riesenfehler" gemacht und informatik belegt, naja eigentlich sollte das ja kein fehler sein, aber wenn der lehrer nicht erklären kann und davon ausgeht, dass man alles schon kann, hat's wenig sinn...
ok wie dem auch sei, ohne vorkenntnisse soll der kurs jetzt den anfang eines schiffe versenken spiels, in java (zu hause) schreiben (->lehrer sammelt's ein )

in dem programm soll zunächst:
-spielfeld angelegt werden (10x10)
-5 schiffe (2x 2er, 2x 3er und 1x 4er) in irgendeine zufällige richtung verteilt werden bis alles ins feld passt)

konnte bisher nichts brauchbares finden...
hoffe irgendwer kann mir helfen

DANKE

Diese Nachricht wurde geändert von: bine
  Profil   Editieren   Zitieren

Jamil
Quasselstrippe


Beiträge: 273


ich kann dir leider nicht helfen, aber ich würde mit dem lehrer bzw. dem direktor mal reden, wegen diesem lehrer und dieser aufgabe. der lehrer hat doch einen knall!!!!!

  Profil   Website   Editieren   Zitieren

skc.tiddy
Otto-Normal-Poster


Beiträge: 81


ist das problem java oder überhaupt nen lösungsansatz zu haben?

---
...blah.

  Profil   Website   Editieren   Zitieren

Can
Halbgott


Beiträge: 1330


Hm...Schiffeversenken ist keine leichte Sache, hab das kürzlich als kleines Multiplayer-Game in JavaScript für meinen Chat gemacht, aber da wurde das Spielfeld von den Spielern selbst gesetzt.

Um die Schiffe aufs Feld zu verteilen, würd ich in ner Schleife alle Schiffe durchgehen (zu erst die größten) und dann per Zufall irgendne Position und ne Richtung (also waagrecht oder senkrecht) ermitteln (also ne x- und y-Wert). Dann prüfst du (am besten mit ner eigenen Funktion), ob das Schiff dort hinkann (also ob alle Felder noch frei sind), wenn du gehst du zum nächsten Schiff, ansonsten randomierst (gibts das Wort? *g*) du erneut ne Position, und das so lange, bis du alle Schiffe untergebracht hast. Ist halt jetzt kein genialer Algorithmus, kannst auch "berechnen", wo noch ein Schiff hin kann.

Can

---
"S-púrlawits'chkâ A-ngáse gûrewüdíx" - Zaphrot Bibelprox

  Profil   E-Mail   Editieren   Zitieren

Jamil
Quasselstrippe


Beiträge: 273


wie soll man sowas programmieren ohne vorkentnisse??? ich finde, dass sich die lehrer das leben sehr einfach machen und die schüler alleine lassen. also als erste aufgabe sowas zu programmieren (ich hoffe ich hab dich richtig verstanden) ist doch einfach krank!!
man sollte erstmal bei der programmiersprache ganz unten anfangen, bevor man sowas machen will (ohne vorkentnisse).

ps: interessiert mich wirklich mal: welche stufe bist du?

Diese Nachricht wurde geändert von: Jamil
  Profil   Website   Editieren   Zitieren

bine
Pixelschubser


Beiträge: 2


ok, ich meinte vorkenntnis, die man speziell für diese aufgabe braucht z.B. wie man in einem feld eine zufällige koordinate auswählt, wie man überprüft ob die noch frei ist, wie man der koordinate ein schiff zuweist usw.. ganz ahnungslos sind wir nun auch nicht: haben anfang des 2. halbjahrs mit programmieren angefangen und können simple sachen (z.B. schleifen, if konstruktionen) aber der ganze kurs ist mit der schiffe versenken aufgabe überfordert...

  Profil   Editieren   Zitieren

c3o
Posting-Schinder


Beiträge: 586


Die beiden Spielraster speicherst du am besten in zweidimensionalen assoziativen Arrays (in Pseudosyntax, kann kein Java):
$spieler_a[0...9][0...9] -- also $spieler_a[0][0] über $spieler_a[0][9] bis $spieler_a[9][9]
Um Schiffe auf dem Feld zu platzieren, setzt du einfach den Wert der Rasterfelder die es einnimmt auf eine bestimmte Kennzahl. Eine zufällige Position ist einfach jedes zufällige Zahlenpaar zwischen 0 und 9. Die Nachbarfelder, die du wie Can sagte überprüfen musst, sind einfach einer der beiden Werte jeweils inkrementiert.
Schießt jetzt der Gegner, siehst du im Array nach, ob der Wert dort != 0, und wenn ja schleifst du das Array einmal durch und versenkst das gesamte getroffene Schiff, setzt also alle Felder die den gleichen Wert wie das erste getroffene haben auf 0 und gibst eine entsprechende Nachricht aus/vergibst Punkte/was auch immer.
Wenn das ganze grafisch sein soll, malst du halt nach jedem Zug den Werten im Array entsprechend ein Spielfeld auf.

Ich muss bis nächste Woche ein 3D-Tetris/Rennspiel-Hybridzeugs machen, da fühl ich mich erst überfordert, wünschte Schiffe versenken würde ausreichen

  Profil   E-Mail   Website   Editieren   Zitieren

skc.tiddy
Otto-Normal-Poster


Beiträge: 81


bine schrieb am 22.04.2004 22:52
ok, ich meinte vorkenntnis, die man speziell für diese aufgabe braucht z.B. wie man in einem feld eine zufällige koordinate auswählt, wie man überprüft ob die noch frei ist, wie man der koordinate ein schiff zuweist usw.. ganz ahnungslos sind wir nun auch nicht: haben anfang des 2. halbjahrs mit programmieren angefangen und können simple sachen (z.B. schleifen, if konstruktionen) aber der ganze kurs ist mit der schiffe versenken aufgabe überfordert...


das sollte auch für ein schiffeversenken reichen. für alle anderen funktionen usw...rtfm halt


---
...blah.

Diese Nachricht wurde geändert von: skc.tiddy
  Profil   Website   Editieren   Zitieren

Erni
Pixelschubser


Beiträge: 1


hi leute
sry dass ich diese alte kamelle noch mal aufwärme, aber ich hab jetzt das gleiche Problem. Hab son paar vorkenntnisse aus dem 1. und 2. Halbjahr und soll jetzt Schiffe versenken mit Logo programmieren. könnt ihr mir da vielleicht helfen??? ich hab absoulut keine ahnung wie das funktionieren soll und bin halb ab verzweifeln. danke im vorraus schonmal

  Profil   E-Mail   Editieren   Zitieren
 

Antworten
Nach oben