Na, du hast deinen Algorithmus doch schon selbst ganz gut beschrieben: Wenn Treffer, dann gleich daneben nochmal schießen. Wo hapert es denn genau? Wobei man beim ersten Treffer natürlich noch raten muss, in welcher Richtung das Schiff ausgehend vom Treffer liegt (oben, unten, links oder rechts). Diese Richtung würde ich raten (1:4 Chance) ab dem zweiten Treffer in der richtigen Richtung halt "weiterschießen" (x/Y-Achse eins rauf/runter, je nach geratenem Richtungsmodus). Wenn kein Treffer mehr und Schiff noch nciht "versenkt", dann ausgehend von der Position vom ersten Treffer (merken!) das gleiche nochmals in der Gegenrichtung.
Ist schon etwas Rumprogrammiererei, wenn man es so straight-forward macht. Aber die Aufgabe klingt eh nach einer Übung... und du willst doch sicher nicht "schummeln", oder? Viel Spaß! ;-)
Genau so würde ich es machen. Der Computer muss - genau so wie ein menschlicher Gegner - raten. Wenn der Computer alles von vorn herein weiß, ist es ja auch langweilig.
Man kann den Algorithmus noch weiter verfeinern, indem man auf Präferenzen des Gegners eingeht oder systematisch vorgeht: - Das Raten systematisieren, indem man zuerst jedes vierte Feld beschiesst, dann jedes dritte usw. - Das systematische Beschiessen anpassen, je nach noch nicht versenken Schiffen - Schiffs-Cluster erkennen - Präferenz der Lage der Schiffe (horizontal/vertikal) erkennen