Einzelnen Beitrag anzeigen

Popov
(Gast)

n/a Beiträge
 
#46

AW: Schiffe versenken programmieren

  Alt 12. Jan 2014, 23:45
Mal ne Frage (auch an Popov):

Habt ihr das Spiel "Schiffe versenken" verstanden?
Jep.

Zitat:
Meines Wissens nach gibt es für die Platzierung folgende Regeln:
Steht in etwa auch so in Wikipedia.

Zitat:
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.
Jajn. Auf dem Papier ist das sehr einfach. Deshalb sind das auch die Regeln für die Papiervariante, denn bei so einem Aufbau:

Code:
0000000000
XXXXX00000
X000000000
X000000000
0000000000
0000000000
weiß man auf dem Papier nicht ob das ein 5'er und dein 2'er Schiff ist, oder ein 4'er und ein 3'er.

Deshalb auf dem Papier:

Code:
0000000000
XXXXX00000
0000000000
X000000000
X000000000
0000000000
Nun ist die Sache klar. Auf dem Papier.

Nun eine Computerversion:

Code:
0000000000
2111100000
2000000000
2000000000
0000000000
0000000000
Kein Problem, hier kann man erkennen welches Feld für welches Schiff gilt.

Aber bleiben wir mal bei den Regeln für Papierversion. Hier zwei Varianten nebeneinander:

Code:
0000000000 0000000000
XXXXX00000 1111100000
0000000000 0000000000
X000000000 2000000000
X000000000 2000000000
0000000000 0000000000
Welche Version ist leichter auszuwerten? Bei der linken Version mußt man erst mit einer Logik das Schiff lokalisieren, dann erkennen um welches es sich handelt, dh. dazu muss man nicht nur Felder zählen, sondern erkennen wo das Schiff einen Anfang und wo Ende hat. Dann zählt man die Felder dazwischen. Sorry, das ist aber mit Verlaub die komplizierteste aller Arten wie man das Problem angehen muss, denn man muss hier eine Logik programmieren. Bei der zweiten Variante weiß ich, dass Schiff 1 fünf Felder lang ist. Jetzt brauche ich nur noch alle Felder prüfen. Finde ich keine 1 mehr auf dem Feld, weiß ich, dann Schiff 1 versunken ist.

Zitat:
@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.
Ja. Aber wenn nach zwei Tagen immer noch die Bitte zu hören ist, dass die Idee für den Anfang fehlt, dann sollte man vielleicht ein Ziel vorschlagen. Das ist wie mit einer Reise in den Urlaub wo man am Flughafen steht und nicht weiß wo man eigentlich hin will.

Was ich mit meinem abgewandeltem Tic Tac Toe geboten habe ist ein Ziel auf das man hinarbeiten kann. Man fängt auch kein Haus zu bauen ohne zu wissen wie es aussagen will. Das Ziel ist vorgegeben. So abwegig ist also meine Hilfe mit dem Raster nicht.

Auf der andere Seite ist die Diskussion wohl aber eher akademisch, denn ich hab das Gefühl, dass der TE sich auf StringGrid eingeschossen hat.
  Mit Zitat antworten Zitat