• 1
  • 2
2018-04-07, 10:14
  #13
Medlem
Citat:
Ursprungligen postat av tj.
Det beror p hur du har tnkt att det ska fungera. Ska flera spelare kunna vinna? Fr som det r just nu s sparar du alla som har uppntt tillrckligt med pong i en lista kallad winningPlayers. Om det r OK att flera spelare vinner s r det bara att loopa igenom den listan och skriva ut respektive spelares namn.
Kod:
foreach (var player in winningPlayers)
{
    
Console.WriteLine($"{player.Name} is a winner!"

Om det bara ska finnas en vinnare s mste du ta fram den spelaren med mest pong ur den listan och skriva ut dennes namn.

Fr de ej att funka. Vill att en spelare ska skrivas ut och sen ska programmet stngas av!
Citera
2018-04-07, 10:24
  #14
Medlem
tj.s avatar
Citat:
Ursprungligen postat av Douknowme
Fr de ej att funka. Vill att en spelare ska skrivas ut och sen ska programmet stngas av!
Skriv hur du vill att programmet ska fungera. Grna i pseudokod. Och visa vad du har gjort fr att stadkomma det.
Citera
2018-04-07, 10:29
  #15
Medlem
Citat:
Ursprungligen postat av tj.
Skriv hur du vill att programmet ska fungera. Grna i pseudokod. Och visa vad du har gjort fr att stadkomma det.

Anropa metoden calculatepoints() och om pongen r lika med 301 eller hgre s lggs den spelaren in i winninPlayers.

ropa ut den spelaren med pongen 301 eller mer och avsluta programmet.

men de som blir fel r att vinner bara loopas om och mste skriva in nya pong fr honom.

Kod:
var winningPlayers = new List<Player>();

            while (
true)
            {
                foreach (var 
Player in PlayerList)
                {
                    
Console.WriteLine("|Turn one| Enter score for {0}"Player);
                    
turn1 Convert.ToInt32(Console.ReadLine());
                    
Console.WriteLine("|Turn two| Enter score for {0}"Player);
                    
turn2 Convert.ToInt32(Console.ReadLine());
                    
Console.WriteLine("|Turn three| Enter score for {0}"Player);
                    
turn3 Convert.ToInt32(Console.ReadLine());
                    
Player.AddTurns(turn1turn2turn3);

                    if (
Player.Calculatepoints() >= 301)
                    {
                        
winningPlayers.Add(Player);
                        break;
                    }
                }

                foreach(var 
player in winningPlayers)  
                {
                    
Console.WriteLine("And the winner is {0}"player);
                    break;
                }

            } 
Citera
2018-04-07, 10:36
  #16
Medlem
tj.s avatar
Citat:
Ursprungligen postat av Douknowme
Anropa metoden calculatepoints() och om pongen r lika med 301 eller hgre s lggs den spelaren in i winninPlayers.

ropa ut den spelaren med pongen 301 eller mer och avsluta programmet.

men de som blir fel r att vinner bara loopas om och mste skriva in nya pong fr honom.

Kod:
var winningPlayers = new List<Player>();

            while (
true)
            {
                foreach (var 
Player in PlayerList)
                {
                    
Console.WriteLine("|Turn one| Enter score for {0}"Player);
                    
turn1 Convert.ToInt32(Console.ReadLine());
                    
Console.WriteLine("|Turn two| Enter score for {0}"Player);
                    
turn2 Convert.ToInt32(Console.ReadLine());
                    
Console.WriteLine("|Turn three| Enter score for {0}"Player);
                    
turn3 Convert.ToInt32(Console.ReadLine());
                    
Player.AddTurns(turn1turn2turn3);

                    if (
Player.Calculatepoints() >= 301)
                    {
                        
winningPlayers.Add(Player);
                        break;
                    }
                }

                foreach(var 
player in winningPlayers)  
                {
                    
Console.WriteLine("And the winner is {0}"player);
                    break;
                }

            } 
Din kod innehller d tv fel. Dels loopar du igenom flera spelare som har uppntt tillrckligt med pong och skriver ut deras namn, trots att du bara vill ha en vinnare. Hur ska du lsa det? Vidare kommer din break; bryta dig ut ur foreach(var player in winningPlayers)-loopen och inte ur while(true)-loopen.
Citera
2018-04-07, 11:18
  #17
Medlem
Citat:
Ursprungligen postat av tj.
Din kod innehller d tv fel. Dels loopar du igenom flera spelare som har uppntt tillrckligt med pong och skriver ut deras namn, trots att du bara vill ha en vinnare. Hur ska du lsa det? Vidare kommer din break; bryta dig ut ur foreach(var player in winningPlayers)-loopen och inte ur while(true)-loopen.

Jo tagit bort break i while, ville bara testa en gng och rkade stanna kvar.. men till de frsta problemet..

Jag vill bara skriva ut spelaren som vunnit och sen avsluta. Antar att jag fortfarande ska ha min foreach loop dr med



Kod:
//Huvudet antar jag ska vara en foreach loop 
Foreach(var player in winningPlayers){


//Men kroppen r jag osker p. Vill ju bara den ska skriva ut vinnaren som uppntt <=301



Citera
2018-04-07, 13:14
  #18
Medlem
tj.s avatar
Citat:
Ursprungligen postat av Douknowme
Jo tagit bort break i while, ville bara testa en gng och rkade stanna kvar.. men till de frsta problemet..

Jag vill bara skriva ut spelaren som vunnit och sen avsluta. Antar att jag fortfarande ska ha min foreach loop dr med



Kod:
//Huvudet antar jag ska vara en foreach loop 
Foreach(var player in winningPlayers){


//Men kroppen r jag osker p. Vill ju bara den ska skriva ut vinnaren som uppntt <=301



Jag tror du mste tnka till lite hur du vill att det ska fungera. Anledningen till varfr jag freslog att du skulle spara de som har stadkommit ver 301 pong i en lista r fr att du nmnde att det r kriteriet fr att vinna.

Ponera att du har spelare A, B och C. I omgng tre kommer A upp i 302 pong och B upp i 303 pong. Bgge har allts kommit ver 301 pong. Rknas de bgge som vinnare d eller r det B, som har en pong mer n A, som har vunnit? I s fall mste du ju loopa tills dess att ngon av dem har kommit ver 301 pong och vl d plocka fram den spelare som har mest pong - och d skriva ut dennes namn och avsluta while(true)-loopen. Om bara en spelare kan vinna s finns det ingen vits med att spara dem i en vinnarlista.
Citera
  • 1
  • 2

Skapa ett konto eller logga in för att kommentera

Du måste vara medlem för att kunna kommentera

Skapa ett konto

Det är enkelt att registrera ett nytt konto

Bli medlem

Logga in

Har du redan ett konto? Logga in här

Logga in