//Sorry for the code comments being in swedish. So, I've tried local solutions for emptying ryggSaker if the input is 4, I now below, in pure desperation, have tride a if-loop so that the array goes empty if 4 is the input. And if there is any other choice between 1-3 and 5 it should continue in the other if-loop....
Backpack menu:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Test
{
class Program
{
static void Main(string[] args)
{
string[] ryggSaker = new string[5];//Skapa stringvektor för att senare kunna stoppa in det avändaren skriver in i menyval 1.
int index = 0;//Skapa index med värde noll så att vi kan fylla på med saker i ryggsäcken under menyval 1.
//Skriv ut meny
Console.WriteLine("Hej! Nu ska vi fylla din rygga men lite saker!");
Console.WriteLine("[1] Lägg till ett föremål");
Console.WriteLine("[2] Skriv ut alla föremål");
Console.WriteLine("[3] Sök i ryggsäcken");
Console.WriteLine("[4] Rensa ryggan");
Console.WriteLine("[5] Avsluta");
bool spela = true;//Skapa en bool [spela] så att när användaren har slutfört ryggan kan vi sätta den till falsk och avsluta programmet.
while (spela)//Medans [spela]-loopen är sann körs if-looparna.
{
int menyVal = Convert.ToInt32(Console.ReadLine());//konvertera input(string) till en int så att vi kan skicka användarens val till rätt menyval(if).
if (menyVal==4)
{
Console.WriteLine("Ryggan är tömd!");
ryggSaker[index] = "";
}
else
{
if (menyVal == 1)//Om användaren skriver in 1
{
try//Om detta, så fortsätt
{
Console.WriteLine("Lägg till något i ryggan: ");//Ber användaren skriva in något som den vill lägga i ryggsäcken.
ryggSaker[index] = Console.ReadLine();//Här använder jag den tomma index vi redan skapat med värde 0 så att det användaren skriver in kan deklareras på den första platsen i ryggSaker -->[0]
Console.WriteLine("Du la till " + ryggSaker[index]);//Skriv ut vad användaren lagt till senast.
index++;//Nästa gång loopen körs kommer index skrivas in på 2:a platsen i ryggSaker ---> [1]
}
catch (Exception error)//Annars gör detta, (failure)
{
Console.WriteLine("Ryggsäcken är full!");//Skriv ut att ryggsäcken är full. Användaren har försökt skriva in fler saker än vad det finns indexplatser i ryggSaker
}
}
if (menyVal == 2)//Om användaren skriver in 2
{
Console.WriteLine("Detta har du lagt till i ryggan: ");//Skriv ut vad användaren hittils lagt till i ryggan
for (int i = 0; i < ryggSaker.Length; i++)//for-loopen gör att vi kan skriva ut varje sak i ryggSaker som har lagts till. vid varje loop hoppar vi en plats vidare så länge i är mindre än antelet saker(loppen stannar alltså när vi skrivit ut alla indexplatser och dess innehåll).
{
Console.WriteLine(ryggSaker[i]);//Skriv ut i, vilket vi deklarerat i for-loopen ovan att i ska vara alla platser som finns i ryggSaker.
}
}
if (menyVal == 3)//Om användaren skriver in 3
{
Console.WriteLine("Sök i ryggsäcken: ");//Användaren skriver in vad den söker i ryggan
string hittaSak = Console.ReadLine();//Skapa string som innehåller det som användaren skrivit in som sökord
for (int i = 0; i < ryggSaker.Length; i++)//For-loopen ser till att vi går igenom alla indexplatser i ryggSaker
{
if (hittaSak == ryggSaker[i])
Console.WriteLine("Den finns på plats " + i);//Om det som användaren skrivit in (som nu lagrats i hittaSak) är samma som det som finns på något av indexplatserna i ryggSaker= Skriv ut på vilken indexplats den finns
}
}
/*if (menyVal == 4)
{
Console.WriteLine("Ryggan är tom!");
}
*/
if (menyVal == 5)//Om användaren skrivit in 5
{
Console.WriteLine("Det var allt för idag, hej då!");//Skriv ut att vi är klara
break;//Bryt bool [spela] i while-loopen, spelet avslutas
}
}
}
Console.ReadLine();
}
}
}