Programmering 2 (Dart-spelet)
HEJ
Jag har uppgift och har fastnat i den flera dagar,Ju mer jag försöker lösa det, desto svårare och obegripligt blir det. Så därför tänkte fråga om hjälp, uppgiften går ut så :
1. Man börjar med att lägga till alla spelare som ska vara med genom att ange deras namn.
2. Spelarna kastar i tur och ordning. När det är en spelares tur att kasta står hans namn på
skärmen.
3. Spelaren kastar 3 pilar som kan ge 0-20 poäng per pil. (max 60p per runda) Varje kast läggs
manuellt in i datorn förutom om Dator spelar.
4. Därefter är det nästa spelares tur.
5. Den spelare vars totala summa på alla kast är över 301 poäng först vinner. (Vi bryr oss inte
om att man måste gå jämt ut – se dock nedan för svårare version.)
6. När en spelare har vunnit ska hans namn visas på skärmen varefter alla hans pil-kast skrivs ut
för hur han kastade. Varje serie av 3 pil-kast ska visas så att man förstår hur varje omgång har
kastats.
7. Ni kan själva välja om rundan spelas klart när någon uppnått maxpoängen.
::::::
1. Det första problemet är att siffrorna som anges eller matas in manuellt av spelarna inte visas på skärmen, det visas andra slumpmässiga nummer på skärmen, jag har försökt lösa det men kunde inte.
2. Det andra problemet var att jag inte kunde få de valda siffrorna att visas på skärmen när en av spelarna vann, men spelaren nummer två måste alltid vinna för att ordet vinnare ska visas på skärmen, annars vinnare ordet visas inte på skärmen och när ordet vinnare visas, Jag kunde inte bifoga namnet på den vinnande spelaren bredvid ordet vinnare när spelet var slut.
3. Det sista problemet är att siffrorna som spelarna matat in manuellt inte visas på skärmen, utan slumpmässiga siffror dyker upp två gånger istället för en gång, för att beräknas i metoden (calculatepoints) efter det.
Så om någon har tips eller en sökord på google som hjälper mig
Tusen tack för hjälpen
________________________________________________________________________
namespace Project101
{
internal class Class1
{
public static void Main(string[] args)
{
Game my_game = new Game();
try
{
my_game.playgame();
}
catch
{
Main(args);
}
Console.ReadKey(true);
}
class Game
{
private List<Player> player_List = new List<Player>();
public void addplayer(string name)
{
Player players = new Player(name);
player_List.Add(players);
}
public void playgame()
{
int antal_spelare;
int winner = 101;
int antal_kast = 3;
Random slump_tal = new Random();
int pil1 = 0;
int pil2 = 0;
int pil3 = 0;
int dart1 = 0;
int dart2= 0;
int dart3= 0;
Console.WriteLine("Vällkommen til dartspelet");
Console.WriteLine("---------------------------------------------------------");
Console.WriteLine("Hur många spelaren vill du ha ?");
try
{
antal_spelare = int.Parse(Console.ReadLine());
}
catch
{
Console.WriteLine("Skriv in bara siffror");
throw;
}
for (int i = 0; i < antal_spelare; i++)
{
Console.Write($"\nSkriv in namnet på spelare {i + 1}: ");
string name = Console.ReadLine();
addplayer(name);
}
do
{
foreach (var player in player_List)
{
Console.WriteLine("\n Det är {0} tur , kasta tre gånger mellan 0-20", player.Calculatepoints());
player.addturn(pil1, pil2, pil3);
pil1 = int.Parse(Console.ReadLine());
if (pil1 > 20 || pil1 < 0)
{
Console.WriteLine("Snälla bara mellan 0-20");
pil1--;
}
pil2 = int.Parse(Console.ReadLine());
if (pil2 > 20 || pil2 < 0)
{
Console.WriteLine("Snälla bara mellan 0-20");
pil2--;
}
pil3 = int.Parse(Console.ReadLine());
if (pil3 > 20 || pil3 < 0)
{
Console.WriteLine("Snälla bara mellan 0-20");
pil3--;
}
dart1= slump_tal.Next(0, 20);
dart2= slump_tal.Next(0, 20);
dart3= slump_tal.Next(0, 20);
Console.WriteLine("\nDet är datorns tur ");
Console.WriteLine("Pil 1: {0} Pil 2: {1} Pil 3: {2}\n-------------------------\n", dart1, dart2, dart3);
player.addturn(dart1, dart2, dart3);
antal_kast = player.Calculatepoints();
}
foreach (var player in player_List)
{
player.printresultat();
}
}
while (antal_kast <= winner);
foreach (var player in player_List)
{
Console.Write("\nVi har vinnare " + player);
}
}
class Player
{
private string name;
private List<Turns> turn_list = new List<Turns>();
public Player(string _name)
{
name = _name;
}
public int Calculatepoints()
{
int totalt = 0;
foreach (var turn in turn_list)
{
totalt = totalt + turn.getscore();
}
return totalt;
}
public void addturn(int tal1, int tal2, int tal3)
{
turn_list.Add(new Turns(tal1, tal2, tal3));
}
public void printresultat()
{
Console.WriteLine("\n Statisatik över varvs chansen för {0} : ", name);
Console.WriteLine("*****************************************************");
foreach (var turn in turn_list)
{
Console.WriteLine(turn);
}
Console.WriteLine("_________________________________________________________");
Console.WriteLine($"Den totla pöang för {name} är " + "{0}", Calculatepoints());
}
public override string ToString()
{
return name;
}
}
class Turns
{
private int varv1;
private int varv2;
private int varv3;
public Turns(int _varv1, int _varv2, int _varv3)
{
varv1 = _varv1;
varv2 = _varv2;
varv3 = _varv3;
}
public int getscore()
{
int totalt;
totalt = varv1 + varv2 + varv3;
return totalt;
}
//public int den_bästa()
//{
// int best = varv1;
// if (varv2 < best)
// best = varv2;
// if (varv3 < best)
// best = varv3;
// return best;
//}
public override string ToString()
{
return string.Format("kast1 är : [{0}], kast2 [{1}], 3 [{2}]", varv1, varv2, varv3 );
}
}
}
}
}