kniffliges problem bei schiffeversenken in c++

moinsen,

ich habe das spiel schiffeversenken auf der windows konsole geschrieben. das klappt soweit auch ganz gut. die zwei spielfelder umfassen je 10x10 felder auf denen ein 5er, ein 4er, ein 3er, ein 2er und ein 1er schiff jeweils vom spieler und vom computer platziert werden. anschließend werden die felder halt beschossen. nachdem ich das spiel ein paar mal gespielt habe ist mir aufgefallen, dass ich als mensch lücken suche in die die noch gesuchten schiffe hineinpassen. der computer schießt in meinem spiel in eine zufällige spalte und zeile. trifft er wählt er eine zufällige richtung. wie kann ich es realisieren, dass auch er, nach dem das feld zunehmend mit treffern und fehlversuchen belegt ist, nach möglichkeiten sucht und nicht einfach weiter zufällig schießt????????

schönen rest sonntag
frequency
 
AW: kniffliges problem bei schiffeversenken in c++

Hi frequency,

ein "1er" Schiff ?!? ... das ist wohl nicht leicht zu finden 8)

was du brauchst ist eine Plausibillitätsprüfung
von allen Schiffen und allen möglichen Platzierungen

ich vermute mal das der PC sich merkt wo er schon hingeschossen hat
und was "Wasser" war

ich würde mal mit einem Schiff anfangen und folgendes probieren


1. wenn der PC einen Treffer gelandet hat,
sucht er nicht zufällig eine Richtung, sondern
Prüft für diesen Treffer und (z.B. das 3er Schiff)
welche Felder in Frage kommen (also welche angrenzenden Felder nicht "Wasser", "Rand", "eigenes Schiff", "Gegner Schiff" sind)

bei einem 3er Schiff gibt es 6 Möglichkeiten
wo das Schiff sitzen kann,
die musst du alle abprüfen und dann entscheiden
wo der nächste Schuss hingehen soll

2. In einem zweiten Schritt kannst du auch versuchen nicht einfach "blind" zu schießen,
sondern "vorher" abzuprüfen ob ein Schiff an der gewählten Position überhaupt
reinpassen würde

Gruss Uwe
 
Zuletzt bearbeitet:
Top