Esempio n. 1
0
        public bool IsMovePossible(SuperFieldModel superField, SquarePosition pos)
        {
            if (superField.Winner != FieldState.None)
            {
                return(false);
            }
            if (superField.Fields[pos.Field.Y][pos.Field.X].Winner != FieldState.None)
            {
                return(false);
            }

            if (superField.Fields[pos.Field.Y][pos.Field.X].Squares[pos.Square.Y][pos.Square.X] != SquareState.Empty)
            {
                return(false);
            }

            if (_superField.TurnRestrictedToField)
            {
                if (_superField.RestrictedToFieldPosition != pos.Field)
                {
                    return(false);
                }
            }
            return(true);
        }
Esempio n. 2
0
        private bool HasSuperFieldThreeInARow(SuperFieldModel superField)
        {
            foreach (var fieldRow in superField.Fields)
            {
                if (AreThreeInARowField(fieldRow[0], fieldRow[1], fieldRow[2]))
                {
                    return(true);
                }
            }

            for (int i = 0; i < 3; i++)
            {
                if (AreThreeInARowField(superField.Fields[0][i], superField.Fields[1][i], superField.Fields[2][i]))
                {
                    return(true);
                }
            }
            if (AreThreeInARowField(superField.Fields[0][0], superField.Fields[1][1], superField.Fields[2][2]))
            {
                return(true);
            }
            if (AreThreeInARowField(superField.Fields[2][0], superField.Fields[1][1], superField.Fields[0][2]))
            {
                return(true);
            }

            return(false);
        }
Esempio n. 3
0
 private bool IsSuperFieldFull(SuperFieldModel superField)
 {
     foreach (var fieldRow in superField.Fields)
     {
         foreach (var field in fieldRow)
         {
             if (field.Winner == FieldState.None)
             {
                 return(false);
             }
         }
     }
     return(true);
 }
 protected override void OnInitialized()
 {
     SuperFieldModel = SuperFieldState.GetSuperField();
     SuperFieldState.StateChanged += OnStateChanged;
 }
Esempio n. 5
0
 public void ResetSuperField()
 {
     _superField = new SuperFieldModel();
     StateHasChanged();
 }