Hela programmet - 21:an
Random slump = new Random();
string senasteVinnaren = "Ingen har vunnit än";
Console.WriteLine("Välkommen till 21:an!");
string menyVal = "0";
while (menyVal != "4")
{
// Skriv ut huvudmenyn
Console.WriteLine("Välj ett alternativ");
Console.WriteLine("1. Spela 21:an");
Console.WriteLine("2. Visa senaste vinnaren");
Console.WriteLine("3. Spelets regler");
Console.WriteLine("4. Avsluta programmet");
menyVal = Console.ReadLine();
// Tom rad innan användarens val körs
Console.WriteLine();
switch (menyVal)
{
// Spela en omgång av 21:an
case "1":
int datornsPoäng = 0;
int spelarensPoäng = 0;
Console.WriteLine("Nu kommer två kort dras per spelare");
datornsPoäng += slump.Next(1, 11);
datornsPoäng += slump.Next(1, 11);
spelarensPoäng += slump.Next(1, 11);
spelarensPoäng += slump.Next(1, 11);
// Låt användaren dra fler kort
string kortVal = "";
while (kortVal != "n" && spelarensPoäng <= 21)
{
Console.WriteLine($"Din poäng: {spelarensPoäng}");
Console.WriteLine($"Datorns poäng: {datornsPoäng}");
Console.WriteLine("Vill du ha ett till kort? (j/n)");
kortVal = Console.ReadLine();
switch (kortVal)
{
case "j":
int nyPoäng = slump.Next(1, 11);
spelarensPoäng += nyPoäng;
Console.WriteLine($"Ditt nya kort är värt {nyPoäng} poäng");
Console.WriteLine($"Din totalpoäng är {spelarensPoäng}");
break;
case "n":
break;
default:
Console.WriteLine("Du valde inte ett giltigt alternativ");
break;
}
}
// Gå tillbaka till huvudmenyn om användaren har över 21
if (spelarensPoäng > 21)
{
Console.WriteLine("Du har mer än 21 och har förlorat");
break;
}
// Datorn drar kort tills den vinner eller går över 21
while (datornsPoäng < spelarensPoäng && datornsPoäng <= 21)
{
int datornsNyaPoäng = slump.Next(1, 11);
datornsPoäng += datornsNyaPoäng;
Console.WriteLine($"Datorn drog ett kort värt {datornsNyaPoäng}");
}
Console.WriteLine($"Din poäng: {spelarensPoäng}");
Console.WriteLine($"Datorns poäng: {datornsPoäng}");
// Undersök vem som vann
if (datornsPoäng > 21)
{
Console.WriteLine("Du har vunnit!");
Console.WriteLine("Skriv in ditt namn");
senasteVinnaren = Console.ReadLine();
}
else
{
Console.WriteLine("Datorn har vunnit!");
}
break;
// Visa senaste vinnaren
case "2":
Console.WriteLine($"Senaste vinnaren: {senasteVinnaren}");
break;
// Visa spelets regler
case "3":
Console.WriteLine("Ditt mål är att tvinga datorn att få mer än 21 poäng.");
Console.WriteLine("Du får poäng genom att dra kort, varje kort har 1-10 poäng.");
Console.WriteLine("Om du får mer än 21 poäng har du förlorat.");
Console.WriteLine("Både du och datorn får två kort i början. Därefter får du");
Console.WriteLine("dra fler kort tills du är nöjd eller får över 21.");
Console.WriteLine("När du är färdig drar datorn kort till den har");
Console.WriteLine("mer poäng än dig eller över 21 poäng.");
break;
// Gör ingenting (programmet avslutas)
case "4":
break;
default:
Console.WriteLine("Du valde inte ett giltigt alternativ");
break;
}
// Tom rad innan nästa körning
Console.WriteLine();
}