Permalänk
Medlem

Programmering 2, Dartspel

Hej,
Jag är nästan klar med en uppgift, vi ska göra ett Dart-spel.
Det jag har fastnat med är att kunna avgöra ifall det är datorn som spelar då datorns kast ska vara slumptal eller om det är spelaren som kastar. Jag antar att detta kan göras via ett villkor men är osäker på hur det ska struktureras.

Permalänk
Medlem

Du har ju gjort get och set på player objektets namn så testa nyttja det när du kollar, eller ge objektet en ny variabel som avgör om det är en spelare eller dator så använd den. Det skulle ta bort problemet om någon döper sin spelare till Dator

Visa signatur

"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood

Permalänk
Medlem

Då är jag med, Tack!

Permalänk
Medlem

Dart spelt hjälp

Hej,
kan någon hjälpa mig med min program som startar inte ?
Tyvärr vill inte min lärare hjälpa mig.
När jag startar program får jag 2 samma fel: ''Error CS0246: The type or namespace name 'List<>' could not be found (are you missing a using directive or an assembly reference?) (CS0246) (dart301)''

Snälla hjälpa mig

****************************************************

using System;

namespace dartspel

{
class Program
{
static void Main(string[] args)
{
var MyGame = new Game();
MyGame.PlayGame();
Console.WriteLine("Press any key to continue");
Console.ReadKey();
}
}
class Game
{
private List<Player> nameList = new List<Player>();

public void AddPlayer(string name)
{
Player players = new Player(name);
nameList.Add(players);
}
public void PlayGame()
{
int arrow1;
int arrow2;
int arrow3;

int total = 0;
int winner = 301;
Random slumptal = new Random();

Console.WriteLine("Välkommen till dart 301");
Console.WriteLine("Ange hur många ni är som spelar:");
int numberPlayers = int.Parse(Console.ReadLine());

for (int i = 0; i < numberPlayers; i++)
{
Console.WriteLine("Ange namnen på spelarna");
string playerName = Console.ReadLine();
AddPlayer(playerName);
}

{
foreach (var player in nameList)
{

Console.WriteLine("Det är {0}'s tur. Skriv in tre kast mellan 1-20", player);
arrow1 = int.Parse(Console.ReadLine());
if (arrow1 > 20 || arrow1 < 0)
{
Console.WriteLine("Ange endast ett tal mellan 1-20!");
--arrow1;
}
arrow2 = int.Parse(Console.ReadLine());
if (arrow2 > 20 || arrow2 < 0)
{
Console.WriteLine("Ange endast ett tal mellan 1-20!");
--arrow2;
}
arrow3 = int.Parse(Console.ReadLine());
if (arrow3 > 20 || arrow3 < 0)
{
Console.WriteLine("Ange endast ett tal mellan 1-20!");
--arrow3;
}

player.AddThrows(arrow1, arrow2, arrow3);
total = player.CalculatePoints();

}
}
while (total <= winner);

if (total >= winner)
{
Console.WriteLine("Vi har en vinanre!!\n");
}

foreach (var player in nameList)
{
player.PrintTurns();
}

}

class Player
{
private string name { get; set; }
private List<Turns> throwList = new List<Turns>();

public Player(string _name)
{
name = _name;
}
public void AddThrows(int kast1, int kast2, int kast3)
{
throwList.Add(new Turns(kast1, kast2, kast3));
}

public int CalculatePoints()
{
int score = 0;
foreach (var turns in throwList)
{
score = score + turns.GetScore();
}
return score;
}
public void PrintTurns()
{
Console.WriteLine("Statistik för spelare {0}", name);
Console.WriteLine("----------------------------------------------");
foreach (var turns in throwList)
{
Console.WriteLine(turns);
}
Console.WriteLine("----------------------------------------------");
Console.WriteLine("Totalpoängen för {1} {0}\n", CalculatePoints(), name);

}
public override string ToString()
{
return name;
}
}
class Turns
{
private int throwOne;
private int throwTwo;
private int throwThree;

public Turns(int throw1, int throw2, int throw3)
{
throwOne = throw1;
throwTwo = throw2;
throwThree = throw3;
}
public int GetScore()
{
int totalt = throwOne + throwTwo + throwThree;
return totalt;
}
public override string ToString()
{
return string.Format("Kasst ett: {0}, Kasst två: {1}, Kasst tre {2} ", throwOne, throwTwo, throwThree);
}
}

}
}

Permalänk
Skrivet av svati:

Hej,
kan någon hjälpa mig med min program som startar inte ?
Tyvärr vill inte min lärare hjälpa mig.
När jag startar program får jag 2 samma fel: ''Error CS0246: The type or namespace name 'List<>' could not be found (are you missing a using directive or an assembly reference?) (CS0246) (dart301)''

Snälla hjälpa mig

****************************************************

using System;

namespace dartspel

{
class Program
{
static void Main(string[] args)
{
var MyGame = new Game();
MyGame.PlayGame();
Console.WriteLine("Press any key to continue");
Console.ReadKey();
}
}
class Game
{
private List<Player> nameList = new List<Player>();

public void AddPlayer(string name)
{
Player players = new Player(name);
nameList.Add(players);
}
public void PlayGame()
{
int arrow1;
int arrow2;
int arrow3;

int total = 0;
int winner = 301;
Random slumptal = new Random();

Console.WriteLine("Välkommen till dart 301");
Console.WriteLine("Ange hur många ni är som spelar:");
int numberPlayers = int.Parse(Console.ReadLine());

for (int i = 0; i < numberPlayers; i++)
{
Console.WriteLine("Ange namnen på spelarna");
string playerName = Console.ReadLine();
AddPlayer(playerName);
}

{
foreach (var player in nameList)
{

Console.WriteLine("Det är {0}'s tur. Skriv in tre kast mellan 1-20", player);
arrow1 = int.Parse(Console.ReadLine());
if (arrow1 > 20 || arrow1 < 0)
{
Console.WriteLine("Ange endast ett tal mellan 1-20!");
--arrow1;
}
arrow2 = int.Parse(Console.ReadLine());
if (arrow2 > 20 || arrow2 < 0)
{
Console.WriteLine("Ange endast ett tal mellan 1-20!");
--arrow2;
}
arrow3 = int.Parse(Console.ReadLine());
if (arrow3 > 20 || arrow3 < 0)
{
Console.WriteLine("Ange endast ett tal mellan 1-20!");
--arrow3;
}

player.AddThrows(arrow1, arrow2, arrow3);
total = player.CalculatePoints();

}
}
while (total <= winner);

if (total >= winner)
{
Console.WriteLine("Vi har en vinanre!!\n");
}

foreach (var player in nameList)
{
player.PrintTurns();
}

}

class Player
{
private string name { get; set; }
private List<Turns> throwList = new List<Turns>();

public Player(string _name)
{
name = _name;
}
public void AddThrows(int kast1, int kast2, int kast3)
{
throwList.Add(new Turns(kast1, kast2, kast3));
}

public int CalculatePoints()
{
int score = 0;
foreach (var turns in throwList)
{
score = score + turns.GetScore();
}
return score;
}
public void PrintTurns()
{
Console.WriteLine("Statistik för spelare {0}", name);
Console.WriteLine("----------------------------------------------");
foreach (var turns in throwList)
{
Console.WriteLine(turns);
}
Console.WriteLine("----------------------------------------------");
Console.WriteLine("Totalpoängen för {1} {0}\n", CalculatePoints(), name);

}
public override string ToString()
{
return name;
}
}
class Turns
{
private int throwOne;
private int throwTwo;
private int throwThree;

public Turns(int throw1, int throw2, int throw3)
{
throwOne = throw1;
throwTwo = throw2;
throwThree = throw3;
}
public int GetScore()
{
int totalt = throwOne + throwTwo + throwThree;
return totalt;
}
public override string ToString()
{
return string.Format("Kasst ett: {0}, Kasst två: {1}, Kasst tre {2} ", throwOne, throwTwo, throwThree);
}
}

}
}

Svarade i din andra tråd:

Skrivet av FrazzorXx:

Du saknar ett using direktiv. I de flesta brukar man få lite hjälp med detta, beroende på vilken editor man använder. Använder ni Visual studio?

Lägg till detta i början: using System.Collections.Generic

Permalänk
Medlem

@svati ska ni använda namespace, vet du hur det funkar? Gissar det är pga detta som läraren inte hjälper för om ni inte uttryckligen gått igenom just namespace så luktar det som copy paste, speciellt när namespace och några få saker är på svenska och resten engelska.

Visa signatur

"One is always considered mad, when one discovers something that others cannot grasp."
- Ed Wood

Permalänk
Medlem
Skrivet av Ferrat:

@svati ska ni använda namespace, vet du hur det funkar? Gissar det är pga detta som läraren inte hjälper för om ni inte uttryckligen gått igenom just namespace så luktar det som copy paste, speciellt när namespace och några få saker är på svenska och resten engelska.

Jag är inte svensk därför blandar jag svensk och engelska språk men om du vill jag kan börja prata i min nationella språk och skriva min kod också! Då lcka till med det

Jag vet att många svenskar gillar säga i lätt sätt och utan bevis att någon ljuga !
Tack får tips i så fall

Permalänk
Medlem
Skrivet av FrazzorXx:

Svarade i din andra tråd:

1000 tack för hjälp
Det funkar just nu

Permalänk
Medlem

Glöm inte bort att lära dig tyda felkoder som kompilatorn ger. Det är en ovärderlig kunskap som du alltid kommer ha nytta av, oavsett vilken nivå du jobbar på.

T.ex fick du detta:

The type or namespace name 'List<>' could not be found (are you missing a using directive or an assembly reference?)

Som du ser var svaret precis där. En using saknades. Vilken som saknas brukar code completion kunna hjälpa till med, annars Google

Visa signatur

Processor: Motorola 68000 | Klockfrekvens: 7,09 Mhz (PAL) | Minne: 256 kB ROM / 512 kB RAM | Bussbredd: 24 bit | Joystick: Tac2 | Operativsystem: Amiga OS 1.3