如何使用 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();
游戏 运行 正确,但现在我 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();