Kaggteknik.se

Projekt 2 - Sänka Skepp

Instruktion
Spelet använder en spelplan (t.ex. 5×5 eller 7×7).
Datorn placerar ett skepp (längd 3–4 rutor) slumpmässigt — horisontellt eller vertikalt.
Du försöker sänka skeppet genom att skjuta med koordinater (rad och kolumn).
Spelet meddelar om du träffar ("träff") eller missar ("miss").
Du fortsätter tills skeppet är sänkt — spelet avslutas då med att datorn är "sänkt".

Spelmeny

Välkommen till Sänka skepp!
1. Starta nytt spel
2. Visa spelregler
3. Avsluta

Exempel: (När du väljer "Starta nytt spel":)

Ange rad (0–4): 2
Ange kolumn (0–4): 3
Miss!
Skott kvar: (eller Poäng, etc.)
Ange rad (0–4):
...
Du träffade och sänkte skeppet! Grattis!

Slump med Random

Random rnd = new Random();
// Exempel: slumpa startrad 0–4, kolumn 0–4
int startRad = rnd.Next(5);
int startKol = rnd.Next(5);
// Slumpa om skeppet är horisontellt eller vertikalt
bool horisontellt = rnd.Next(2) == 0;

Kodstruktur – Förslag

Initialisera spelplan (2D-array eller lista med bool/char)
Slumpplacera skeppet
Loop: fråga spelaren om rad och kolumn
Kontrollera giltighet (inom gränser)
Kolla träff eller miss
Markera planen, skriv ut feedback
När alla delar av skeppet är träffade: skriv ut "Sänkt!" och avsluta spelet

Sammanfattning, Delmoment

Placering, Datorn lägger ut skepp (längd 3–4) slumpmässigt
Input, Spelaren anger koordinater
Resultat, Skriv ut träff/miss, markera planen
Avslut, Spelet slutar när skeppet är sänkt
Menyalternativ, Starta nytt spel, visa regler, avsluta

Förslag på förbättringar - Om du blir klar tidigt

Flera skepp – Låt datorn placera ut 2–3 skepp av olika längd som spelaren måste sänka.
Poängsystem – Ge poäng för träffar och dra av poäng för missar, eller räkna hur många skott som behövdes.
Svårighetsnivåer – Välj spelplanens storlek (t.ex. 5×5, 7×7, 10×10) i början av spelet.
Eget placeringsläge – Låt spelaren själv placera sina skepp innan spelet börjar.
Avancerad dator-AI – Låt datorn skjuta mot spelaren i turordning och gör den smartare (t.ex. skjuter runt en träff).
Grafisk utskrift i konsolen – Visa spelplanen med X för träffar och O för missar, och tomma rutor för okända koordinater.
Flera rundor – Spela bäst av 3 matcher och visa slutpoäng.
Spara och läsa in spel – Spara spelets status i en fil och låt spelaren fortsätta senare.
Specialeffekter i text – Använd färg (med Console.ForegroundColor) för träffar/missar och animationer med små pauser.
Multiplayer-läge – Två spelare vid samma dator turas om att skjuta på varandras skepp.