2018-03-26, 16:57
  #1
Medlem
Hller p med en uppgift dr jag ska skapa ett dartspel. Instruktionerna r ganska simpla:

Anvndarna fyller i antalet anvndare och namn >
3 kast per spelare varav 20 p som max per kast >
Frst till 301 p vinner.

Problemet jag har r att totalen som rknas ut i min while loop verkar vara baserat p samtliga kast frn alla spelare, jag vill att while loopen ska avbrytas nr en av dessa spelare fr 301 p. Vad r det som r fel i min kod?

Frvrigt s r jag lngt frn frdig med uppgiften utan det r hr jag fastnat just nu.

Jag r infrstdd med att jag inte kan f hjlp med en frdig kod och det vill jag heller inte ha, utan bara vgledning i var felet ligger s kanske jag kan klura ut det sjlv. Shr ser min kod ut:

Kod:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Dart
{
    class Program
    {
        static void Main(string[] args)
        {
            Game My_Game = new Game();
            My_Game.Playgame();

            Console.Write("Press any key to continue . . .");
            Console.ReadKey(true);
        }
    }
}

{
    class Game

    {
        private List<Player> playerlist = new List<Player>();
        private List<int> total_Score = new List<int>();

        public void Playgame()
        {
            int turn1;
            int turn2;
            int turn3;
            

            Console.WriteLine("Welcome to the awesome Dart game !");

            Console.WriteLine("\nThe rules for this game are simple. Each player gets 3 darts to throw per round. \nFor every dart thrown you can get 0-20 points. First one to 301 points wins ! ");
            Console.WriteLine("\nPress Enter key to begin . . .\n");
            Console.ReadKey();

            Console.WriteLine("How many players are you ?");
            int numberofPlayers = Convert.ToInt32(Console.ReadLine());


            for (int i = 0; i < numberofPlayers; i++)
            {
                Console.WriteLine("Enter player name : ");
                playerlist.Add(new Player(Console.ReadLine()));
            }
            int totalScore = 0;

            while (totalScore <= 301)
            {

                foreach (var player in playerlist)
                {
                    Console.WriteLine("Enter player score for {0} on turn one : ", player);
                    turn1 = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Enter player score for {0} on turn two : ", player);
                    turn2 = Convert.ToInt32(Console.ReadLine());
                    Console.WriteLine("Enter player score for {0} on turn three : ", player);
                    turn3 = Convert.ToInt32(Console.ReadLine());
                    player.addTurn(turn1, turn2, turn3);
                    
                    totalScore = turn1 + turn2 + turn3;
                    total_Score.Add(totalScore);
                    totalScore = total_Score.Sum(score => Convert.ToInt32(score));
                    Console.WriteLine("----------------------------------------");
                }
            } 

            foreach (var player in playerlist)
            {
                player.Print_Turns();
            }

        }
    }
}

{
    class Player
    {

        private string PlayerName;
        private List<Turns> playerturns = new List<Turns>();


        public Player(string _playername)
        {
            PlayerName = _playername;
        }

        public void addTurn(int firstTurn, int secondTurn, int thirdTurn)
        {

            playerturns.Add(new Turns(firstTurn, secondTurn, thirdTurn));

        }

        public int total_points()
        {
            int total = 0;
            foreach (var points in playerturns)
            {
                total = total + points.Get_Score();
            }
            return total;
        }

        public void Print_Turns()
        {
            Console.WriteLine("\nPlayerstatistics for {0} : ", PlayerName);
            Console.WriteLine("----------------------------------------");

            foreach (var turn in playerturns)
            {
                Console.WriteLine(turn);
            }
            Console.WriteLine("The total is : {0}", total_points());
        }

        public override string ToString()
        {
            return string.Format(PlayerName);
        }

    }
}

{
    class Turns
    {

        private int turnOne;
        private int turnTwo;
        private int turnThree;

        public Turns(int _turnOne, int _turnTwo, int _turnThree)

        {

            turnOne = _turnOne;
            turnTwo = _turnTwo;
            turnThree = _turnThree;

        }


        public int Get_Score()
        {
            int total;
            total = turnOne + turnTwo + turnThree;
            return total;
        }

        public override string ToString()
        {
            return string.Format("First throw was : {0} points, Second throw was : {1} points , Third throw was : {2} points .", turnOne, turnTwo, turnThree);
        }

    }
}
Citera
2018-03-26, 19:44
  #2
Medlem
Behver inte lngre hjlp hr d jag lyckades lsa det :-)
Citera

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