Nu är jag på sista uppgiften i Programmering 2, och det känns verkligen skönt.
Men den är svår så här inledningsvis, eftersom studieguiden är väldigt bristfällig i hur man hanterar Windows Forms.
Uppgiften lyder:
Studieguiden innehåller lite inledningsvis hur Forms fungerar, men jag tycker inte alls det innehåller hur jag faktiskt kopplar ihop det med ett program i stil med det jag har, så jag vet inte alls hur jag ska göra för att t.ex. trycka på en knapp, prompta vilket värde som ska matas in, och köra hela faderullan efter det.
Bifogar koden jag har nedan:
Fortsätter koden nedan, vart lite för många tecken med alla kommentarer.
Men den är svår så här inledningsvis, eftersom studieguiden är väldigt bristfällig i hur man hanterar Windows Forms.
Uppgiften lyder:
Citat:
I denna uppgift ska du bygga ut Joppes hundar (eller dartspelet) med ett grafiskt gränssnitt
Du får alltså själv välja vilket program du ska utgå ifrån.
Det är helt fritt fram att själv välja hur det grafiska gränssnittet ser ut och fungerar. Vi föreslår dock att ni jobbar med Windows Forms.
Du får alltså själv välja vilket program du ska utgå ifrån.
Det är helt fritt fram att själv välja hur det grafiska gränssnittet ser ut och fungerar. Vi föreslår dock att ni jobbar med Windows Forms.
Studieguiden innehåller lite inledningsvis hur Forms fungerar, men jag tycker inte alls det innehåller hur jag faktiskt kopplar ihop det med ett program i stil med det jag har, så jag vet inte alls hur jag ska göra för att t.ex. trycka på en knapp, prompta vilket värde som ska matas in, och köra hela faderullan efter det.
Bifogar koden jag har nedan:
Kod:
{ class Program { static void Main(string[] args) { var MyGame = new Game(); //Skapar ett nytt spel som ett objekt i klassen Game. MyGame.PlayGame(); //Startar spelet genom metoden PlayGame i klassen Game, inom objektet MyGame. Console.WriteLine("Press any key to continue"); Console.ReadKey(); } } class Game { private List<Player> nameList = new List<Player>(); //Genererar lista med spelarnas namn. public void AddPlayer(string name) //Metod som skapar ett spelarobjekt och lägger till i spelarlistan. { Player players = new Player(name); nameList.Add(players); } public void PlayGame() { int arrow1 = 0; //Lagrinsvariabler för vardera pil som kastas i vardera omgång. int arrow2 = 0; int arrow3 = 0; int total = 0; //Variabel som lagrar spelarens totalpoäng. int win = 301; //Variabel som anger hur många poäng som krävs för vinst. int numberPlayers = 0; //Variabel som lagrar hur många spelare som är med. bool temp = false; //Variabel som används för ett beslut nedan. do //Do-sats som avgör om användaren har skrivit ett heltal för antalet spelare. { Console.Clear(); Console.WriteLine("Welcome to the awesome dart game"); Console.WriteLine("Enter the amount of players:"); if (Int32.TryParse(Console.ReadLine(), out numberPlayers)) //Här sparas antalet spelare, om det är ett heltal. { temp = true; } else //Felmeddelande som körs om användaren ej angivit ett heltal. { Console.WriteLine("You have not entered a whole number.\n" + "Press any key to return to the previous menu,\n" + "then enter a whole number stating the amount of players."); Console.ReadKey(true); } } while (temp == false); for (int i = 0; i < numberPlayers; i++) //For-loop som körs lika många gånger som antalet spelare. { Console.WriteLine("Enter the name of player {0}", i+1); string name = Console.ReadLine(); AddPlayer(name); //Här läggs en spelare till, med namnet som villkor för metoden. } do //Do-loop som kör det faktiska spelet. Följande loop repeteras så länge ingen har över 300 poäng. { foreach (var players in nameList) //Foreach-loop som representerar en spelrunda, och repeterar en gång för varje spelare. { arrow1 = ThrowInput(players, "1st"); arrow2 = ThrowInput(players, "2nd"); arrow3 = ThrowInput(players, "3rd"); players.AddThrows(arrow1, arrow2, arrow3); //Sparar varje kastpoäng i den aktuella spelarens throwList lista via metoden AddThrows. total = players.CalculatePoints(); } } while (total <= win) ; Console.WriteLine("We have a winner!\n"); //Meddelande som skrivs när någon har över 300 poäng. foreach (var players in nameList) //Foreach-loop som repeterar en gång för varje spelare. { players.PrintTurns(); //Visar statistiklistan för den spelare som loopen för närvarande räknar. } static int ThrowInput(Player players, string thrownumber) //Metod som hanterar själva kasten i spelet. { Console.Clear(); Console.WriteLine("{0}, enter a whole number between 1 and 20 for the {1} throw:", players, thrownumber); int input; if (int.TryParse(Console.ReadLine(), out input)) //Ifsats som kör om input är en integer. { if (1 <= input && input <= 20) //Ifsats som returnerar inputvärdet om det är ett tall mellan 1 och 20. { return input; } else //Felmeddelande som körs om talet ej är mellan 1 och 20, och repeterar funktionen för det aktuella kastet. { Console.WriteLine("Wrong input, please enter a number between 1 and 20."); Console.WriteLine("Press any key to continue"); Console.ReadKey(); ThrowInput(players, thrownumber); return 0; //Körs ej då metoden repeterar i raden ovan, men krävs för att programmet ska kompilera. } } else //Felmeddelande som körs om inputen ej är en integer, och repeterar funktionen för det aktuella kastet. { Console.WriteLine("Wrong input, please enter a number between 1 and 20."); Console.WriteLine("Press any key to continue"); Console.ReadKey(); ThrowInput(players, thrownumber); return 0; //Körs ej då metoden repeterar i raden ovan, men krävs för att programmet ska kompilera. } } } }
Fortsätter koden nedan, vart lite för många tecken med alla kommentarer.
__________________
Senast redigerad av Bonnatorp 2022-03-28 kl. 19:59.
Senast redigerad av Bonnatorp 2022-03-28 kl. 19:59.