Abwechselnd Würfeln [C#]

01/10/2015 18:10 Zweihorn.#1


edit: hab's gelöst. oh man, habs viel schwieriger gemacht, als es nötig war :D
lösung, falls jemand es vielleicht auch mal braucht
01/10/2015 18:51 Ludder231#2
für "wert" könntest du natürlich auch nen boolschen wert benutzen. true = player1 false = player2
01/10/2015 18:59 Zweihorn.#3
Quote:
Originally Posted by Ludder231 View Post
für "wert" könntest du natürlich auch nen boolschen wert benutzen. true = player1 false = player2
danach habe ich gesucht, bin aber einfach nicht drauf gekommen. bei mir sah das dann so aus, aber jetzt weiß ich immerhin warum es nicht funktioniert hat, danke! D:

01/11/2015 00:49 Mostey#4
Quote:
Originally Posted by Ludder231 View Post
für "wert" könntest du natürlich auch nen boolschen wert benutzen. true = player1 false = player2
Meiner Meinung nach überhaupt nicht vorteilhaft weil das kein selbst dokumentierender Code ist.

Dann lieber so etwas wie:

Code:
public enum Player
{
    Player1,
    Player2
};

...

if(actingPlayer == Player.Player1)
{
   // ...
}
Dann braucht man den Datentyp auch nicht wieder ändern, wenn es mal 3 Spieler werden. Aber das ist Geschmackssache. :cool:
01/11/2015 08:53 x]vIrus[x#5
nein Mostey, wenn dann:

(PseudoCode)
Code:
class Player
{
  public string Name;
  public int Total;
  public int Current;
  static Random r;

  public Player(string name)
  {
     Name = name;
  }
  public int Roll()
  {
    Current = r.Next(1,6);
    Total += Current;

    return Current;
  }
}

...

class Game
{
  List<Player> Players = new List<Player>();
  public Player CurrentPlayer
  {
    get
    {
      return Players[currentPlayerCounter % Players.Count];
    }
  }
  uint currentPlayerCounter =0;
  public void AddPlayer(string playerName)
  {
    Players.Add(new Player(playerName));
  }

  public int Roll()
  {
    var rolled = CurrentPlayer.Roll();
    currentPlayerCounter++;
    return rolled;
  }
}

...

class Form
{
  public Game Game = new Game();

  ...

  public void OnAddPlayerButtonClick(object s, eventargs e)
  {
    Game.AddPlayer(textBoxPlayerName.Text);
  }
  public void OnRollClick(object s, eventargs e)
  {
    labelCurrentRoll.Text = Game.Roll().ToString();
    labelCurrentPlayer.Text = Game.CurrentPlayer.Name;
  }
}
01/11/2015 16:24 Mostey#6
Quote:
Originally Posted by x]vIrus[x View Post
nein Mostey, wenn dann:
Wieso nicht? Es geht hier bloß um einen simplen Integer und um keine Spielerklasse die Informationen über den Spieler halten muss. Und wenn er das braucht, kann er das ja selber machen. Was Objektorientierung ist, muss man hier hoffentlich ja nicht erklären. :rolleyes: