Kaggteknik.se

Projekt 1 - kortspelet 21:an

Detta är första projektet och vi ska träna på att skriva större program.
Du ska skapa en variant av kortspelet Black Jack.

I 21:an kommer du att spela mot datorn och försöka tvinga datorn att få över 21 poäng. Både du och datorn får poäng genom att dra kort, varje kort är värt 1 – 10 poäng. När spelet börjar dras två kort till både dig och datorn.
Därefter får du dra hur många kort som du vill tills du är nöjd med din totalpoäng, du vill komma så nära 21 som möjligt utan att få mer än 21 poäng.
När du inte vill dra fler kort så kommer datorn att dra kort tills den har mer eller lika många poäng som dig.

Du vinner om datorn får mer än totalt 21 poäng.
Datorn vinner om den har mer poäng än dig när spelet är slut så länge som datorn inte har mer än 21 poäng.
Om det skulle bli lika i poäng så vinner datorn.
Om du får mer än 21 poäng, så har du förlorat.

Spelmeny

Välkommen till 21:an!
Välj ett alternativ
1. Spela 21:an
2. Visa senaste vinnaren
3. Spelets regler
4. Avsluta programmet

Exempel:

Välkommen till 21:an!
Välj ett alternativ
1. Spela 21:an
2. Visa senaste vinnaren
3. Spelets regler
4. Avsluta programmet
1
Nu kommer två kort dras per spelare
Din poäng: 4
Datorns poäng: 15
Vill du ha ett till kort? (j/n)
J
Ditt nya kort är värt 8 poäng
Din totalpoäng är 12
Din poäng: 12
Datorns poäng: 15
Vill du ha ett till kort? (j/n)
j
Ditt nya kort är värt 4 poäng
Din totalpoäng är 16
Din poäng: 16
Datorns poäng: 15
Vill du ha ett till kort? (j/n)
j
Ditt nya kort är värt 4 poäng
Din totalpoäng är 20
Din poäng: 20
Datorns poäng: 15
Vill du ha ett till kort? (j/n)
n
Datorn drog ett kort värt 8
Din poäng: 20
Datorns poäng: 23
Du har vunnit!
Skriv in ditt namn
Simon

Välj ett alternativ
1. Spela 21:an
2. Visa senaste vinnaren
3. Spelets regler
4. Avsluta programmet

Slump med Random

// En Random-variabel används för att slumpa fram tal
Random slumptalsgenerator = new Random();

// Ett slumptal från 0 till 4
int slumptal1 = slumptalsgenerator.Next(5);

// Ett slumptal från 10 till 19
int slumptal2 = slumptalsgenerator.Next(10, 20);

Console.WriteLine($"Tal 1: {slumptal1}");
Console.WriteLine($"Tal 2: {slumptal2}");

Spel regeler

Ditt mål är att tvinga datorn att få mer än 21 poäng.
Du får poäng genom att dra kort, varje kort har 1-10 poäng.
Om du får mer än 21 poäng har du förlorat.
Både du och datorn får två kort i början.
Därefter får du dra fler kort tills du är nöjd eller får över 21.
När du är färdig drar datorn kort till den har
mer poäng än dig eller över 21 poäng.

Förslag på förbättringar

Thread.Sleep - kan användas för att skriva ut texten långsamare.
Använd Thread.Sleep vid denna automatiska dragning så att det blir mer spännande för spelaren.

Gör så att datorn slutar dra kort innan den når 21 för att användaren lättare ska vinna. Låt en variabel styra vilken som är datorns sluta-dra-poäng.

Gör så att alla kort inte är lika vanliga. T.ex. så skulle det kunna vara dubbelt så vanligt att man får ett kort med antingen 1 eller 10 poäng jämfört med övriga kort.

Gör så att man genast får spela en ny omgång av 21:an om man vinner. Man ska fortsätta spela ända till man förlorar.

Experimentera med att förbättra användargränssnittet. Lägga till färgglada meddelanden, större text eller enklare animeringar.

Utöka menyn: Lägg till fler alternativ i spelmenyn. Till exempel, låt spelaren ångra sitt senaste drag eller starta om spelet utan att behöva avsluta och starta om programmet.

Kommentarer och kodstruktur: Förbättra kodens läsbarhet genom att lägga till kommentarer och organisera koden på ett tydligt sätt.

Input-validering: Se till att användarinput är giltigt och hantera felaktig input.

Resultatmeddelanden: Skapa tydligare och mer informativa meddelanden när spelet är över. Berätta för spelaren varför de vann eller förlorade och vad de kan förbättra nästa gång.