Sänka skepp


Spelet sänka skepp spelas av två spelare. Varje spelare har en rektangulär spelplan, uppbyggd av ett antal rutor, t.ex. 10x10 rutor. På denna spelplan placerar varje spelare ut en bestämd uppsättning skepp. Varje skepp har en benämning och en specificerad längd, t.ex. tre rutor. Skeppen ska ligga horisontellt eller vertikalt på brädet och får inte placeras ut så att de ligger direkt intill varandra, inte ens diagonalt.

Exempel

Antag följande skepps\-uppsättning:

    Benämning        Längd    Antal
    ubåt             1        5
    jagare           3        3
    hangarfartyg     5        1

Ett möjligt sätt att placera ut dessa fartyg på en 10x10-spelplan är:

	0  1  2  3  4  5  6  7  8  9 

     0  .  .  *  .  .  .  .  *  .  .

     1  .  .  .  .  .  .  .  .  .  .

     2  .  *  .  *  *  *  .  .  .  .

     3  .  .  .  .  .  .  .  .  .  .

     4  .  .  .  .  .  .  .  *  .  .

     5  .  *  *  *  .  .  .  .  .  .

     6  .  .  .  .  .  .  .  .  .  .

     7  .  .  .  .  .  .  *  .  *  .

     8  *  *  *  *  *  .  .  .  *  .

     9  .  .  .  .  .  .  .  .  *  .

Spelets gång

När båda spelarna placerat ut sina skepp, kan spelet börja. Spelet går ut på att sänka samtliga av motståndarens skepp. Spelarna turas om att skjuta. Den spelare som står på tur får skjuta ända tills han missar. För varje skott får han reda på om han träffade eller ej. När ett skepp sänks, dvs. samtliga rutor som skeppet ligger på är beskjutna, får han även reda på detta. Den spelare vinner som först sänkt motspelarens samtliga skepp.

Krav på programmet

Spelets parametrar, dvs. spelplanens storlek och skeppsuppsättningen ska anges i en fil. Hur många skeppstyper det finns, vad skeppstyperna heter, hur långa de är, etc., ska alltså inte vara fixt i programmet utan stå i datafilen. Vilken fil som ska användas ska kunna anges vid programstart.

Varje spelare ska på sin skärm se två spelplaner, sin egen och det som är känt om motståndarens, baserat på de skott som skjutits. Vid utplaceringen av skepp, ska programmet kontrollera att denna är korrekt.

Spelet kan spelas av två personer eller av en person, som då spelar mot datorn. Du behöver inte implementera båda dessa varianter utan kan välja om spelet ska spelas mot datorn eller mellan två personer. Då datorn spelar ska skeppen slumpas ut. När datorn skjuter ska den göra detta på ett rimligt sätt, dvs. rutor där det inte kan ligga något skepp ska inte beskjutas. Då träff fås ska datorn sträva efter att sänka skeppet helt.