public void PrintTurns() //Metod som skriver ut slutstatistiken för varje spelare. { Console.WriteLine("Statistics for player {0}", name); Console.WriteLine("------------------------------------------"); foreach (var turns in throwList) //Foreach-loop som repeterar en gång för varje runda i spelarens lista över rundor. { Console.WriteLine(turns); //Skriver ut den runda i throwList som är aktuell i foreach-loopen. } Console.WriteLine("------------------------------------------"); Console.WriteLine("Total score for {0}: {1}", name, CalculatePoints()); }
public void PrintTurns() //Metod som skriver ut slutstatistiken för varje spelare. { Console.WriteLine("Statistics for player {0}", name); Console.WriteLine("------------------------------------------"); foreach (var turns in throwList) //Foreach-loop som repeterar en gång för varje runda i spelarens lista över rundor. { Console.WriteLine(turns); //Skriver ut den runda i throwList som är aktuell i foreach-loopen. } Console.WriteLine("------------------------------------------"); Console.WriteLine("Total score for {0}: {1}", name, CalculatePoints()); }
foreach (var j in nameList) { MessageBox.Show(nameList[j].PrintTurns()); }
foreach (var j in nameList) { MessageBox.Show(nameList[j].PrintTurns()); }
foreach (var j in nameList) { MessageBox.Show(nameList[j].PrintTurns()); }
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms; namespace Dartspelet_forms { public partial class Form1 : Form { private List<Player> nameList = new List<Player>(); private int numberPlayers = 0; //Variabel som lagrar hur många spelare som är med. 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; //Vinnande poäng int i = 0; //Iteration av aktuell spelare public Form1() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { } private void button_Click(object sender, EventArgs e) { if (numberPlayers == 0) //Tillstånd för spelets början, när spelare matas in. { if (Int32.TryParse(input.Text, out numberPlayers)) //Här sparas antalet spelare, om det är ett heltal. { label1.Text = String.Format("Enter the name of player 1"); } else { label1.Text = "You have not entered a whole number.\n" + "Please enter a whole number stating the amount of players."; } return; } if (numberPlayers != nameList.Count && numberPlayers != 0) //Tillstånd för att mata in spelarna. Uppfyllt när spelarlistan är lika lång som antalet spelare. { string name = input.Text; AddPlayer(name); //Här läggs en spelare till, med namnet som villkor för metoden. label1.Text = String.Format("{0}, make your 1st throw.", nameList[i].ToString()); if (numberPlayers != nameList.Count) { label1.Text = String.Format("Enter the name of player {0}", nameList.Count + 1); } return; } if (numberPlayers == nameList.Count) //Tillstånd som endast körs när alla spelare än inmatade. { if (arrow1 == 0) //Tillstånd för när första pilen ej är kastad. { label1.Text = String.Format("{0}, make your 1st throw.", nameList[i].ToString()); if (Int32.TryParse(input.Text, out arrow1)) { label1.Text = String.Format("{0}, make your 2nd throw.", nameList[i].ToString()); return; } else { label1.Text = "You did not enter a correct throw number"; } } if (arrow2 == 0 && arrow1 != 0) //Tillstånd för när andra pilen ej är kastad. { if (Int32.TryParse(input.Text, out arrow2)) { label1.Text = String.Format("{0}, make your 3rd throw.", nameList[i].ToString()); return; } else { label1.Text = "You did not enter a correct throw number"; } } if (arrow3 == 0 && arrow1 != 0 && arrow2 != 0) //Tillstånd för när tredje pilen ej är kastad. { if (!Int32.TryParse(input.Text, out arrow3)) { label1.Text = "You did not enter a correct throw number"; } } if (arrow1 != 0 && arrow2 != 0 && arrow3 != 0 && numberPlayers == nameList.Count) //Tillstånd för när alla pilar kastats. { nameList[i].AddThrows(arrow1, arrow2, arrow3); //Sparar varje kastpoäng i den aktuella spelarens throwList lista via metoden AddThrows. if (nameList[i].CalculatePoints() > win) //Tillstånd när den senaste spelaren ansamlat en vinnande poäng. { label1.Text = String.Format("{0} has won the game!", nameList[i].ToString()); foreach (var player in nameList) { MessageBox.Show(player.PrintTurns()); //Skriver ut varje spelares statistik i varsin dialogruta. } return; } arrow1 = 0; //Återställer pilarnas variabler för att de första tillstånden för kast ska köras igen. arrow2 = 0; arrow3 = 0; if (i == nameList.Count - 1) //Återställer kastordningen om sista spelaren kastat. { i = 0; label1.Text = String.Format("{0}, make your 1st throw.", nameList[i].ToString()); return; } if (i < nameList.Count - 1) //Ökar i så att nästa spelare kast sparas i nästa körning, om inte sista spelaren har kastat. { i++; label1.Text = String.Format("{0}, make your 1st throw.", nameList[i].ToString()); } } } } private void label1_Click(object sender, EventArgs e) { } 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 class Player { public string name; //Initierar en variabel för spelarens namn. public List<Turns> throwList = new List<Turns>(); //Initierar en lista för spelrundorna. public Player(string name) //Konstruktor för att hämta spelarens namn från ett villkor och spara inom klassen. { this.name = name; //Sparar den lokala variabeln name till klassvariabeln name genom att klassvariabeln kallas genom funktionen this. } public void AddThrows(int throw1, int throw2, int throw3) //Metod som sparar kastvärdena till listan throwList { throwList.Add(new Turns(throw1, throw2, throw3)); } public int CalculatePoints() { int score = 0; foreach (var turns in throwList) //Foreach-loop som repeterar en gång för varje objekt i listan throwList. { score = score + turns.GetScore(); //Adderar nuvarande poäng i räkningen med poängen för den runda som foreachloopen är på. } return score; } public string PrintTurns() //Metod som skriver ut slutstatistiken för varje spelare. { StringBuilder output = new StringBuilder(); //Skapar en stringbuilder att spara följande strängar i. output.AppendLine(String.Format("Statistics for player {0}", name)); output.AppendLine("------------------------------------------"); foreach (var i in throwList) //Foreach-loop som repeterar en gång för varje runda i spelarens lista över rundor. { output.AppendLine(i.ToString()); //Skriver ut den runda i throwList som är aktuell i foreach-loopen. } output.AppendLine("------------------------------------------"); output.AppendLine(String.Format("Total score for {0}: {1}", name, CalculatePoints())); return output.ToString(); // För att få ut all text ur stringbuildern } public override string ToString() //Returnerar spelarens namn. { return name; } } public class Turns { public int arrow1; //Lagringsvariabler som lagrar poängvärdet för varje kast i en runda. public int arrow2; public int arrow3; public Turns(int throw1, int throw2, int throw3) //Konstruktor som kontruerar ett objekt för varje runda, och lagrar tre värden i detta objekt. { arrow1 = throw1; arrow2 = throw2; arrow3 = throw3; } public int GetScore() //Metod som returnerar poängen för kasten i en runda. { int totalt = arrow1 + arrow2 + arrow3; return totalt; } public override string ToString() //Returnerar kasten för den aktuella spelaren. { return String.Format("Throw one: {0}, Throw two: {1}, Throw three: {2} ", arrow1, arrow2, arrow3); } } }
Du måste vara medlem för att kunna kommentera
Flashback finansieras genom donationer från våra medlemmar och besökare. Det är med hjälp av dig vi kan fortsätta erbjuda en fri samhällsdebatt. Tack för ditt stöd!
Swish: 123 536 99 96 Bankgiro: 211-4106