Exemplo n.º 1
0
        public HitInfo GetShot(Position pos)
        {
            HitInfo result = null;
            if (pos.Row >= 0 && pos.Row < _map.Height && pos.Column >= 0 && pos.Column < _map.Width)
            {
                var val = _map[pos.Row, pos.Column];
                var p = new Position { Row = pos.Row, Column = pos.Column };
                if (val <= 0)
                {
                    result = new HitInfo { IsHit = false, Destroyed = false };
                }
                else
                {
                    var count = 0;
                    for (int row = 0; row < _map.Height; row++)
                    {
                        for (int col = 0; col < _map.Width; col++)
                        {
                            if (_map[row, col] == val) count++;
                        }
                    }

                    if (count == 1)
                        result = new HitInfo { IsHit = true, Destroyed = true };
                    else
                        result = new HitInfo { IsHit = true, Destroyed = false };
                }

                _map[pos.Row, pos.Column] = -1;
                result.Pos = p;
                return result;
            }
            else throw new Exception("Invalid shot");
        }
Exemplo n.º 2
0
 public void Update(HitInfo hitInfo)
 {
     _player.UpdateInfo(hitInfo);
 }
Exemplo n.º 3
0
 public void UpdateInfo(HitInfo info)
 {
     _dic[_recent] = info;
 }