如何使用 streamwriter 将 c# 中的 dartsimulator 的结果写入 txt 文件?

How do I make the results from a dartsimulator in c# write to a txt file with streamwriter?

游戏 运行 正确,但现在我 need/want 使用 streamwriter 将游戏结果打印到文本文件。我该如何做到这一点?

要从结果中提取信息?

一直在尝试各种不同的事情,但还没有做到。所以如果有人可以帮助我,我将不胜感激。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.IO;

namespace Dartgame.Simulator
{
    class Program
    {   //Här ska simulatorn starta i main för min Simulator, Christopher
        public static void Main(string[] args)
        {
 
            Game mitt_spel = new Game();
            mitt_spel.Run_game();

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

    class Game
    {
        private List<Player> player_list = new List<Player>();
        private bool keepGoing = true;

        public void Run_game()
        {

            int winner = 301;
            Random slumptal = new Random();
            int turn1;
            int turn2;
            int turn3;

            // Här ska programmet köras

            Console.WriteLine(" Välkommen till Dartspels simulatorn! ");
            Console.WriteLine("**************************************");
            Console.WriteLine("Varje spelare kastar 3 pilar åt gången och får ett slumpat poäng. ");
            Console.WriteLine("Spelet avslutas när någon spelare når 301poäng eller över");
            player_list.Add(new Player("Christopher"));
            player_list.Add(new Player("Suzanne"));

            do
            {
                foreach (var Player in player_list)
                {
                    turn1 = slumptal.Next(0, 20);
                    turn2 = slumptal.Next(0, 20);
                    turn3 = slumptal.Next(0, 20);
                    Player.Add_turns(turn1, turn2, turn3);
                    if (Player.Calculate_Total() >= winner)
                    {
                        keepGoing = false;
                    }
                }
            }
            while (keepGoing);

            foreach (var Player in player_list)
            {
                Player.Print_Turns();
            }
        }
    }

    class Player
    {
        private string name;
        private List<Turns> turns_list = new List<Turns>();

        /* Om inte spelare skriver in ett namn får han ett default namn, en konstruktor är
         skapad för en spelare */
        public Player(string _name = "Zion")
        {
            name = _name;
        }

        // Används för att lägga på omgång/turn i spelet
        public void Add_turns(int turn1, int turn2, int turn3)
        {
            turns_list.Add(new Turns(turn1, turn2, turn3));
        }
        // Används för att beräkna totala poäng.
        public int Calculate_Total()
        {
            int total = 0;
            foreach (var Turns in turns_list)
            {
                total = total + Turns.Get_Score();
            }
            return total;
        }
        // Används för att skriva ut total poäng som lagrats i turns_list  
        public void Print_Turns()
        {
            Console.WriteLine("\n Poäng statistik för spelare {0}: ", name);
            Console.WriteLine("******************************************\n");
            foreach (var Turns in turns_list)
            {
                Console.WriteLine(Turns);
            }
            Console.WriteLine("******************************************\n");
            Console.WriteLine("Totala poängen för spelaren är {0} poäng", Calculate_Total());

        }

        public override string ToString()
        {
            return string.Format("Spelaren {0}", name, "fick poäng");
        }

    }
    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 totalt;
            totalt = turnOne + turnTwo + turnThree;
            return totalt;

        }

        /* skriver jag ut ett race object så hämtar den sen infon från private
         * int turnOne , turnTwo osv  från klassen Turns*/
        public override string ToString()
        {
            return string.Format("Kast 1 : {0}, Kast 2 : {1}, Kast 3: {2}", turnOne, turnTwo, turnThree);
        }
    }

}

有几种方法可以做到这一点,你可以构造一个字符串,创建一个文件并打印到它,你可以在播放时写入文件等

这是一个例子:

//Output results here
FileStream OutputFile = File.Create(SomeFilePath);
StreamWriter OutPutStream = new StreamWriter(OutputFile);

foreach (var Turns in turns_list)
{
    Console.WriteLine(Turns);
    OutPutStream.WriteLine(Turns.ToString());
}

OutPutStream.WriteLine("**Segrare: Suzanne**");
OutPutStream.Close();
OutputFile.Close();