Schiffe versenken programmieren?
Hallo, ich bin eine Schüler einer Technik Schule und wir haben die Aufgabe bekommen Das Spiel Schiffe Versenken in Java zu Programmieren. Da ich mich mit der Programmier sprache noch nicht zu recht finde und ich außerdem noch nie schiffe versenken gespielt habe oder weiß wie man es überhaupt spielt hätte ich gedacht das mir einer von euch eventuell dabei helfen könnte ich bedanke mich schonmal im Voraus.
MfG
3 Antworten
Beim Schiffe Versenken hat jeder Spieler ein 10 mal 10 Feld, in das er verschiedene Schiffe am Anfang des Spiels einträgt. Wie viele ist unterschiedlich, ich glaube Standard ist 4 mal 2er und je einmal einen 3er, 4er und 5er. (Ein 2er z.B. belegt zwei Kästchen/Felder nebeneinander). Die Schiffe dürfen nicht Seite an Seite nebeneinader liegen, nur Ecke an Ecke. Beim Spielablauf "schießen" die Spieler abwechselnd auf eine Position (die x-Achse ist idR mit 1-10 betitelt, die y-Achse mit A-J) z.B. "F3". Der andere Spieler sagt dann, ob auf diesem Feld ein Treffer ist, in diesem Fall darf der andere Spieler erneut "schießen", oder daneben ist, oder das schiff "versenkt" ist, auch dann darf der andere Spieler erneut. Beide spieler notieren sich auf einem zweiten Spielfeld mit, wohin sie schon geschossen haben und wo die gegnerischen Schiffe dementsprechend liegen. Einer hat gewonnen, wenn alle gegnerischen Schiffe versenkt sind...
Zur Umsetzung: Ich denke es würden zwei zweidimensionale Arrays sinn ergeben, eins für jeden Spieler. Hier kannst du z.B. booleans einspeichern, je nachdem ob hier ein Schiff ist oder nicht... Wenn dann eine Usereingabe kommt wie "A1", dann nimmst du das erste Zeichen, machst daraus eine Zahl, ziehst dann von beiden Zahlen 1 ab und hast so deine Adresse im Array, also 0,0 und du kannst zurückgebeben, ob hier ein Schiff ist oder nicht... Bei der Festlegung, wo ein Schiff ist, kommt es darauf an ob Mensch gegen Mensch oder Mensch gegen Computer spielen soll... Ersteres ist deutlich einfacher: Hier überprüfst du nur, ob Startpunkt und Endpunkt des Schiffes nah genug aneinander sind und ob daneben kein Schiff ist... Das ganze machst du - je nachdem wie viele Schiffe erstellt werden sollen - in einer Schleife. Wenn der Computer Schiffe erstellen soll könntest du per Zufall ein Feld aussuchen, und mit einem zweiten Zufall die Richtung. Wenn die Richtung z.B. nach rechts ist, dann wird auf die x-koorinate bei einem 4er Schiff 3 drauf addiert, und alles dazwischen ausgefüllt. Auch hier musst du aber prüfen dass sich keine Schiffe berühren oder kreuzen.
Ich hoffe ich konnte dir ein wenig helfen...
Lade dir eine App herunter wo man das spielen kann. Dann lernst du die Spielregeln
Zum Thema Schiffe versenken
https://de.wikipedia.org/wiki/Schiffe_versenken
Und was heißt das genau für uns?
Da ich mich mit der Programmier sprache noch nicht zu recht finde
Heißt das, du kannst noch nicht programmieren? Oder kennst du dich mit der OOP noch nicht aus?