예제 #1
1
파일: Game.cs 프로젝트: davidbedok/oeprog1
 private void AddItemToPalpitating(Player player)
 {
     if (this.palpitatingIndex < this.palpitating.Length)
     {
         this.palpitating[this.palpitatingIndex++] = player;
         player.End(this.round);
     }
 }
예제 #2
1
파일: Table.cs 프로젝트: davidbedok/oeprog1
 private bool IsFreePosition(Player player, Figure figure)
 {
     return figure == null || figure.Player != player;
 }
예제 #3
0
파일: Table.cs 프로젝트: davidbedok/oeprog1
 public String Print(Player[] players)
 {
     StringBuilder builder = new StringBuilder(100);
     for (int i = 0; i < TableView.TYPE.Length; i++)
     {
         for (int k = 0; k < TableView.TYPE[i].Length; k++)
         {
             char type = TableView.TYPE[i][k];
             int owner = TableView.OWNER[i][k];
             int index = TableView.INDEX[i][k];
             switch (type)
             {
                 case TableView.FIELD:
                     Figure figure = this.FindFigure(index);
                     builder.Append('[').Append(figure != null ? figure.Sign : ' ').Append(']');
                     break;
                 case TableView.START:
                     builder.Append(players[owner - 1].PrintStartFigure(index));
                     break;
                 case TableView.DESTINATION:
                     builder.Append(players[owner - 1].PrintFinishFigure(index));
                     break;
                 default:
                     builder.Append("   ");
                     break;
             }
         }
         builder.AppendLine();
     }
     return builder.ToString();
 }
예제 #4
0
파일: Table.cs 프로젝트: davidbedok/oeprog1
 public void MoveFigure(Player player, int diceValue)
 {
     List<Figure> playerFigures = this.Assortment(player);
     playerFigures.Sort(new FigureDistanceComparer());
     foreach (Figure figure in playerFigures)
     {
         if (figure.IsHome(diceValue))
         {
             figure.Player.Finish();
             this.figures.Remove(figure);
             break;
         }
         else
         {
             int position = this.CalculateRealPosition(figure.Position + diceValue);
             Figure enemy = this.FindFigure(position);
             if (this.IsFreePosition(player, enemy))
             {
                 figure.SetPosition(position, diceValue);
                 this.HandleHit(player, enemy);
                 break;
             }
         }
     }
 }
예제 #5
0
파일: Table.cs 프로젝트: davidbedok/oeprog1
 public bool IsStartPossible(Player player)
 {
     Figure figure = this.FindFigure(player.StartPosition);
     return this.IsFreePosition(player, figure);
 }
예제 #6
0
파일: Table.cs 프로젝트: davidbedok/oeprog1
 public void StartFigure(Player player)
 {
     Figure enemy = this.FindFigure(player.StartPosition);
     this.figures.Add(player.Start());
     this.HandleHit(player, enemy);
 }
예제 #7
0
 public Figure(Player player)
 {
     this.player = player;
     this.position = player.StartPosition;
     this.distance = 0;
 }
예제 #8
0
파일: Game.cs 프로젝트: davidbedok/oeprog1
 private bool IsStartFigurePossible(Player player, int diceValue)
 {
     return diceValue == START_DICE_VALUE && player.HasFigureAtStart() && this.table.IsStartPossible(player);
 }
예제 #9
-1
파일: Table.cs 프로젝트: davidbedok/oeprog1
 private void HandleHit(Player player, Figure enemy)
 {
     if (enemy != null)
     {
         player.Hit();
         enemy.Player.Death();
         this.figures.Remove(enemy);
     }
 }
예제 #10
-1
파일: Table.cs 프로젝트: davidbedok/oeprog1
 private List<Figure> Assortment(Player player)
 {
     List<Figure> figures = new List<Figure>();
     foreach (Figure current in this.figures)
     {
         if (current.Player.Equals(player))
         {
             figures.Add(current);
         }
     }
     return figures;
 }