public bool TakeSlot(bool isX, int row, int col) { var player = isX ? "X" : "O"; var slot = Slots.Find(s => s.Row == row && s.Column == col); // ตรวจสอบเกมยังไม่จบและช่องนี้ว่าง if (GameState == State.Playing && slot.IsX == null) { // ตาแรก if (ThisTurn == string.Empty) { ThisTurn = player; } // เป็นตาของผู้เล่นหรือไม่ if (ThisTurn == player) { slot.IsX = player == "X"; ChangeTurn(); return(true); } return(false); } return(false); }
public virtual void Add(TItem item) { Ensure.That(item, nameof(item)).IsNotNull(); Ensure.That( AllowedFor(item) && item.AllowedFor(this) && Slots.Find(item.Slot).Exists(s => s.AllowedFor(item)), nameof(item), opt => opt.WithMessage($"'{item}' is not allowed in this container: '{this}'.")) .IsTrue(); DoAdd(item); _items.OnNext(Items.Add(item.Slot, item)); this.LogDebug("Item '{}' is added to the container.", item); _onAdd.OnNext(item); }
public BaseSlot this[WeaponType type] => Slots.Find(slot => Match(slot, type));
public BaseSlot this[ArmorType type] => Slots.Find(slot => Match(slot, type));