Пример #1
0
    private void Start()
    {
        _gameModeDropdown = GameObject.Find("GameModeDropdown").GetComponent <Dropdown>();
        List <Dropdown.OptionData> optionDataList = new List <Dropdown.OptionData>();

        optionDataList.Add(new Dropdown.OptionData("Select a Game Mode ..."));
        for (int position = 0; position < GameModeOptions.options.Length; position++)
        {
            optionDataList.Add(new Dropdown.OptionData(GameModeOptions.options[position].Label));
        }
        _gameModeDropdown.AddOptions(optionDataList);
        _gameModeDropdown.onValueChanged.AddListener(delegate {
            GameModeDropdownChanged(_gameModeDropdown);
        });

        _difficultyDropdown = GameObject.Find("DifficultyDropdown").GetComponent <Dropdown>();
        _difficultyDropdown.onValueChanged.AddListener(delegate {
            DifficultyDropdownChanged(_difficultyDropdown);
        });
        _difficultyDropdown.gameObject.SetActive(false);
        _difficultyText = GameObject.Find("DifficultyText").GetComponent <Text>();
        _difficultyText.gameObject.SetActive(false);

        _startButton = GameObject.Find("StartButton").GetComponent <Button>();
        _startButton.onClick.AddListener(delegate {
            StartGame(_startButton);
        });

        _configuration = BoardConfigurationGetter.getConfigurationObject();
        _configuration.EnabledGeneralAudio();
        _configuration.Difficulty = (DifficultyOptions.Options) 0;
    }
Пример #2
0
    private void Start()
    {
        _configuration = BoardConfigurationGetter.getConfigurationObject();
        _configuration.DisabledGeneralAudio();
        Player player1 = null;
        Player player2 = null;

        _restartInfo         = GameObject.Find("restartInfo").GetComponent <SpriteRenderer>();
        _restartInfo.enabled = false;
        _infoPlayerSymbol    = GameObject.Find("infoPlayerSymbol").GetComponent <SpriteRenderer>();
        if (_configuration.GameModeOption.Value == 1)
        {
            player1 = new AIPlayer(1, PlayerType.AIPlayer, Cross);
            _infoPlayerSymbol.sprite = InfoP1Computer;
        }
        else
        {
            player1 = new Player(1, PlayerType.HumanPlayer, Cross);
            _infoPlayerSymbol.sprite = InfoP1P2;
        }
        player2 = new Player(2, PlayerType.HumanPlayer, Circle);
        _game   = new Game(player1, player2);
        _currentPlayerSymbol = GameObject.Find("currentInfo").GetComponent <SpriteRenderer>();
        if (_configuration.Starter == 1)
        {
            SetCurrentPlayer(player1);
        }
        else
        {
            SetCurrentPlayer(player2);
        }
        _finishingGame = false;
        InitializeBoardPositions();
    }
Пример #3
0
        public void BoardConfigrationTest()
        {
            IBoardConfiguration boardConfiguration = new BoardConfiguration("5 4");

            Assert.AreEqual(boardConfiguration.GetBoard().Max.X, 4);
            Assert.AreEqual(boardConfiguration.GetBoard().Max.Y, 3);
        }
Пример #4
0
 public void Awake()
 {
     if (Instance == null)
     {
         Instance = this;
     }
 }
Пример #5
0
        public bool IsValid(BoardConfiguration boardConfiguration)
        {
            if (boardConfiguration.StartPosition == null)
            {
                return(true);
            }

            if (boardConfiguration.StartPosition.XCoordinate > (boardConfiguration.Size - 1) ||
                boardConfiguration.StartPosition.YCoordinate > (boardConfiguration.Size - 1))
            {
                return(false);
            }

            if (boardConfiguration.StartPosition.XCoordinate < 0 ||
                boardConfiguration.StartPosition.YCoordinate < 0)
            {
                return(false);
            }

            if (boardConfiguration.EndPosition == null &&
                boardConfiguration.StartPosition.XCoordinate == 0 &&
                boardConfiguration.StartPosition.YCoordinate == 0)
            {
                return(false);
            }

            if (boardConfiguration.EndPosition.XCoordinate == boardConfiguration.StartPosition.XCoordinate &&
                boardConfiguration.EndPosition.YCoordinate == boardConfiguration.StartPosition.YCoordinate)
            {
                return(false);
            }

            return(true);
        }
Пример #6
0
        public void SetupSequence()
        {
            conf = new BoardConfiguration();
            conf.AddPin(new DPin()
            {
                Number = 0
            });
            conf.AddPin(new DPin()
            {
                Number = 1
            });

            conf.AddSequence(new Sequence()
            {
                Pin   = conf.DigitalPins [0],
                Chain = new List <SequenceOperation> ()
                {
                    new SequenceOperation()
                    {
                        Duration = TimeSpan.FromSeconds(1),
                        State    = DPinState.HIGH
                    },
                    new SequenceOperation()
                    {
                        Duration = TimeSpan.FromSeconds(1),
                        State    = DPinState.HIGH
                    }
                }
            });
        }
Пример #7
0
        public Field(BoardConfiguration boardConfiguration, Point localization)
        {
            this.Localization = localization;

            int fieldSize = boardConfiguration.FieldSize;
            int boardSize = boardConfiguration.BoardSize;

            ClientSize = new Size(fieldSize, fieldSize);

            int x = localization.X;
            int y = localization.Y;

            Location = new Point(
                fieldSize + (fieldSize * x) % (fieldSize * boardSize),
                fieldSize + (fieldSize * y) % (fieldSize * boardSize)
                );

            int moveBy = boardConfiguration.ColorForTopLeftCorner == Color.White ? 1 : 0;

            BackColor    = ((x + y + moveBy) % 2 == 1) ? Color.White : Color.Black;
            Name         = String.Concat("Field_", y, "_", x);
            InitialColor = BackColor;

            MouseClick += ClickField;
        }
Пример #8
0
        public void GroupTest()
        {
            var conf = new BoardConfiguration();

            for (uint i = 0; i < 10; i++)
            {
                conf.AddPin(new DPin()
                {
                    Number = i
                });
                conf.AddSequence(new Sequence()
                {
                    Pin       = conf.DigitalPins [(int)i],
                    GroupName = i.ToString()
                });
            }

            Assert.AreEqual(10, conf.SequenceGroups.Count);

            conf.RemoveSequence(5);
            Assert.AreEqual(9, conf.SequenceGroups.Count);

            conf.Sequences [2].GroupName = conf.Sequences [0].GroupName;
            Assert.AreEqual(8, conf.SequenceGroups.Count);
        }
Пример #9
0
    /// <summary>
    /// Change the adaptation of the last configuration stored.
    /// </summary>
    public void SetLastMovement(float value)
    {
        BoardConfiguration bc = configList[configList.Count - 1];

        bc.SetLastValue(value);
        configList[configList.Count - 1] = bc;
    }
Пример #10
0
        public void setBoard(Game game)
        {
            mBoardConfiguration = game.BoardConfiguration;
            mBoardArrangment    = game.BoardArrangment;
            // calc prefered tiles in width and height
            int   singleMargin = Application.Context.Resources.GetDimensionPixelSize(Resource.Dimension.card_margin);
            float density      = Application.Context.Resources.DisplayMetrics.Density;

            singleMargin = Math.Max((int)(1 * density), (int)(singleMargin - mBoardConfiguration.Difficulty * 2 * density));
            int sumMargin = 0;

            for (int row = 0; row < mBoardConfiguration.NumRows; row++)
            {
                sumMargin += singleMargin * 2;
            }
            int tilesHeight = (mScreenHeight - sumMargin) / mBoardConfiguration.NumRows;
            int tilesWidth  = (mScreenWidth - sumMargin) / mBoardConfiguration.NumTilesInRow;

            mSize = Math.Min(tilesHeight, tilesWidth);

            mTileLayoutParams = new LinearLayout.LayoutParams(mSize, mSize);
            mTileLayoutParams.SetMargins(singleMargin, singleMargin, singleMargin, singleMargin);

            // build the ui
            buildBoard();
        }
Пример #11
0
    public static BoardConfiguration getConfigurationObject()
    {
        Scene              configurationZone   = SceneManager.GetSceneByName(_configurationZoneName);
        GameObject         configurationObject = configurationZone.GetRootGameObjects()[0];
        BoardConfiguration _boardConfiguration = configurationObject.GetComponent <BoardConfiguration>();

        return(_boardConfiguration);
    }
Пример #12
0
 private void SetupWorldPosition(BoardConfiguration _boardConfiguration)
 {
     int indexInBoard = m_tileController.GetModel().PositionInBoard;
     int indexColumn = Mathf.CeilToInt(indexInBoard / _boardConfiguration.HorizontalTiles);
     int indexRow = Utils.PingPongRepeating(indexInBoard, _boardConfiguration.HorizontalTiles);
     Transform tileViewTransform = GetComponent<Transform>();
     tileViewTransform.position = new Vector3(indexRow * TILE_MESH_WIDTH, indexColumn* TILE_MESH_HEIGHT, indexColumn * TILE_MESH_WIDTH);
     m_tileController.SetWorldPosition(tileViewTransform.position);
 }
Пример #13
0
        public TurtleGame(BoardConfiguration boardConfiguration)
        {
            InitalizeBoard(
                boardConfiguration.Size,
                boardConfiguration.StartPosition,
                boardConfiguration.EndPosition);

            AddMines(boardConfiguration.MineCount);
        }
        public ConfigurationManager(NodeMapper nodeMapper, EdgeMapper edgeMapper, BoardConfiguration boardConfiguration,
                                    SerialConfiguration serialConfiguration, GpioConfiguration gpioConfiguration)
        {
            _nodeMapper = nodeMapper;
            _edgeMapper = edgeMapper;

            BoardConfiguration  = boardConfiguration;
            SerialConfiguration = serialConfiguration;
            GpioConfiguration   = gpioConfiguration;
        }
Пример #15
0
 public MainWindow()
 {
     InitializeComponent();
     InitComboBoxes();
     GrayPulsButtons();
     _BoardConfiguration  = new BoardConfiguration(105, 25, 100);
     _RenderSpeed         = speed.faster;
     _UserGameInfoCenter  = new UserInfoCenterM();
     _UserSteeringConsole = new UserSteeringConsoleM();
 }
Пример #16
0
    public BoardModel(BoardConfiguration _boardConfiguration)
    {
        m_boardConfiguration = _boardConfiguration;

        // Change seed to get other board
        //UnityEngine.Random.seed = 54654668;
        UnityEngine.Random.seed = 304476056;

        CreateBoard();
    }
Пример #17
0
    public override bool Equals(object obj)
    {
        if (obj == null)
        {
            return(false);
        }
        BoardConfiguration other = (BoardConfiguration)obj;

        return(other.GetBoardConfiguration().Equals(this.boardConfiguration));
    }
Пример #18
0
 public void Show()
 {
     for (int y = 0; y < BoardConfiguration.GetLength(0); y++)
     {
         for (int x = 0; x < BoardConfiguration.GetLength(1); x++)
         {
             Console.Write(string.Format($"  {BoardConfiguration[y, x]}  "));
         }
         Console.Write(Environment.NewLine);
         Console.Write(Environment.NewLine);
     }
 }
Пример #19
0
    /// <summary>
    ///     Retrieve the estimation (story points) from the issue, this only works by using the BoardConfiguration
    /// </summary>
    /// <typeparam name="T">Type for the estimation</typeparam>
    /// <param name="boardConfiguration">BoardConfiguration</param>
    /// <returns>T or default(T) if there is no value</returns>
    public T GetEstimation <T>(BoardConfiguration boardConfiguration)
    {
        if (boardConfiguration == null)
        {
            throw new ArgumentNullException(nameof(boardConfiguration));
        }

        // Get the custom estimation field ID
        var estimationCustomField = boardConfiguration.Estimation.Field.FieldId;

        // check if there is a custom field for the ID
        if (!Fields.CustomFields.ContainsKey(estimationCustomField))
        {
            return(default);
Пример #20
0
 private void Start()
 {
     _coin                  = GetComponent <SpriteRenderer>();
     _initScaleX            = transform.localScale.x;
     _luckyNumber           = Random.Range(3f, 6f);
     _configuration         = BoardConfigurationGetter.getConfigurationObject();
     _configuration.Starter = 0;
     _audioSource           = GetComponent <AudioSource>();
     if (_configuration.GameModeOption.Label == "Player X Computer")
     {
         coinPlayer1 = coinComputer;
         coinPlayer2 = coinPlayer;
     }
 }
Пример #21
0
    /// <summary>
    /// Find the board configuration in the historic if exists or return null if doesn't.
    /// </summary>
    private BoardConfiguration FindBoardConfiguration(string configuration)
    {
        BoardConfiguration bc = null;

        foreach (BoardConfiguration boardConf in historic)
        {
            if (boardConf.GetBoardConfiguration().Equals(configuration))
            {
                bc = boardConf;
                break;
            }
        }

        return(bc);
    }
Пример #22
0
        public void Setup()
        {
            conf = new BoardConfiguration();

            for (int i = 0; i < 5; i++)
            {
                conf.AddPin(new APin()
                {
                    Number = (uint)i
                });
                conf.AddPin(new DPin()
                {
                    Number = (uint)i
                });
            }
        }
Пример #23
0
        public void SerializeBoardConfigTest1()
        {
            var conf = new BoardConfiguration();

            conf.AddPin(new APin()
            {
                Number = 42
            });

            Formator.Serialize(MemStream, conf);
            MemStream.Seek(0, SeekOrigin.Begin);

            var confClone = (BoardConfiguration)Formator.Deserialize(MemStream);

            Assert.AreEqual(conf.Pins[0], confClone.Pins[0]);
        }
        private void arrangeBoard()
        {
            BoardConfiguration boardConfiguration = mPlayingGame.BoardConfiguration;
            BoardArrangment    boardArrangment    = new BoardArrangment();

            // build pairs
            // result {0,1,2,...n} // n-number of tiles
            List <int> ids = new List <int>();

            for (int i = 0; i < boardConfiguration.NumTiles; i++)
            {
                ids.Add(i);
            }
            // shuffle
            // result {4,10,2,39,...}
            var rnd = new Random();

            ids = ids.OrderBy(item => rnd.Next()).ToList();

            // place the board
            List <string> tileImageUrls = mPlayingGame.Theme.TileImageUrls;

            tileImageUrls = tileImageUrls.OrderBy(item => rnd.Next()).ToList();

            boardArrangment.pairs    = new Dictionary <int, int>();
            boardArrangment.tileUrls = new Dictionary <int, string>();
            int j = 0;

            for (int i = 0; i < ids.Count; i++)
            {
                if (i + 1 < ids.Count)
                {
                    // {4,10}, {2,39}, ...
                    boardArrangment.pairs.Add(ids[i], ids[i + 1]);
                    // {10,4}, {39,2}, ...
                    boardArrangment.pairs.Add(ids[i + 1], ids[i]);
                    // {4,
                    boardArrangment.tileUrls.Add(ids[i], tileImageUrls[j]);
                    boardArrangment.tileUrls.Add(ids[i + 1], tileImageUrls[j]);
                    i++;
                    j++;
                }
            }

            mPlayingGame.BoardArrangment = boardArrangment;
        }
        public bool IsValid(BoardConfiguration boardConfiguration)
        {
            var avaibableSpaces = boardConfiguration.Size * boardConfiguration.Size;

            var mineRatio = avaibableSpaces / boardConfiguration.MineCount;

            if (mineRatio > MaxMineThreshold)
            {
                return(false);
            }

            if (mineRatio < MinMineThreshold)
            {
                return(false);
            }

            return(true);
        }
Пример #26
0
        public void SerializeBoardConfigTest2()
        {
            var conf = new BoardConfiguration();

            conf.Board.AnalogReferenceVoltageType = "INTERNAL";
            conf.Board.AnalogReferenceVoltage     = 4.24;

            var pin = new APin()
            {
                Number = 42
            };

            var MeCom = new MeasurementCombination();

            MeCom.AddPin(pin);


            conf.AddPin(pin);
            conf.AddMeasurementCombination(MeCom);


            Formator.Serialize(MemStream, conf);
            MemStream.Seek(0, SeekOrigin.Begin);

            var confClone = (BoardConfiguration)Formator.Deserialize(MemStream);

            Assert.AreEqual(conf.Pins[0], confClone.Pins[0]);
            Assert.AreEqual(conf.MeasurementCombinations[0], confClone.MeasurementCombinations[0]);
            Assert.AreEqual(4.24, conf.Board.AnalogReferenceVoltage, 0.000000001);
            Assert.AreEqual(4.24, confClone.Board.AnalogReferenceVoltage, 0.000000001);
            Assert.AreEqual("INTERNAL", conf.Board.AnalogReferenceVoltageType);
            Assert.AreEqual("INTERNAL", confClone.Board.AnalogReferenceVoltageType);
            Assert.AreSame(conf.Pins[0], conf.MeasurementCombinations[0].Pins[0]);
            Assert.AreSame(confClone.Pins[0], confClone.MeasurementCombinations[0].Pins[0]);

            conf.Pins[0].Name = "Dulli";
            Assert.AreEqual(conf.Pins[0].Name, conf.MeasurementCombinations[0].Pins[0].Name);
            Assert.AreEqual(19, confClone.AvailableDigitalPins.Length);
            Assert.AreEqual(6, confClone.AvailableAnalogPins.Length);

            conf.ClearPins();
            Assert.AreEqual(0, conf.Pins.Count);
            Assert.AreEqual(0, conf.MeasurementCombinations.Count);
        }
Пример #27
0
    /// <summary>
    /// Return the bigger mean in a tree of a Given depth.
    /// This function make a recursive call.
    /// </summary>
    private float MeanAdaptation(string configuration, float sum, int depth)
    {
        BoardConfiguration bc = FindBoardConfiguration(configuration);

        // Stop when the configuration doesn't exists or reached the max depth.
        if (bc == null)
        {
            return(sum / depth);
        }
        if (depth > MAX_DEPTH)
        {
            return(sum / (depth - 1));
        }

        // Select the best adaptation of the possible movements ever tried.
        float betterAdaptation = addap;

        foreach (MovementConfiguration mc in bc.GetMovementsConfigurations())
        {
            // if this configuration do not end up with another, return the mean.
            float confAdaptation = mc.GetAdaptation();
            if (mc.GetResults().Count == 0 &&
                betterAdaptation < (sum + confAdaptation) / depth)
            {
                betterAdaptation = (sum + confAdaptation) / depth;
            }

            Debug.Log("adaptation: " + confAdaptation);

            // Get the best mean adaptation of each result.
            foreach (string result in mc.GetResults())
            {
                float adaptation = MeanAdaptation(result, sum + confAdaptation, depth + 1);
                if (adaptation > betterAdaptation)
                {
                    betterAdaptation = adaptation;
                }
            }
        }

        return(betterAdaptation);
    }
Пример #28
0
        public void SetupMeasurementCombination()
        {
            conf = new BoardConfiguration();
            conf.AddPin(new APin()
            {
                Number = 0
            });
            conf.AddPin(new APin()
            {
                Number = 1
            });

            conf.AddMeasurementCombination(new MeasurementCombination()
            {
                Pins = new List <APin> ()
                {
                    conf.AnalogPins [0], conf.AnalogPins [1]
                },
            });
        }
Пример #29
0
    public void RandomMove()
    {
        string configuration = TranslateBoard();

        Movement  choseMove;
        ArrayList botPieces     = base.board.GetEnemyPieces();
        ArrayList possibleMoves = ga.GenerateMutations(this, botPieces);
        int       randomIndex   = UnityEngine.Random.Range(0, possibleMoves.Count);

        choseMove = (Movement)possibleMoves[randomIndex];

        BoardConfiguration bConfig = new BoardConfiguration(configuration);

        bConfig.AddMovement(choseMove, ga.AdaptationScore(choseMove));
        configList.Add(bConfig);

        // Make the movement.
        Debug.Log("Chosed Movement: " + choseMove.ToString());
        lastMovement = choseMove;
        base.board.MovePiece(choseMove);
    }
Пример #30
0
        public void DPinCloneTest2()
        {
            string name = "TestPin";

            conf = new BoardConfiguration();
            conf.AddPin(new DPin()
            {
                Number = 5,
                Name   = name
            });


            conf.ClonePin(conf.DigitalPins [0]);

            Assert.AreEqual(2, conf.DigitalPins.Count);
            Assert.AreEqual(name, conf.DigitalPins [0].Name);
            Assert.AreEqual(name, conf.DigitalPins [1].Name);

            conf.DigitalPins [0].Name = string.Empty;
            Assert.AreEqual(name, conf.DigitalPins [1].Name);
        }
Пример #31
0
        public void StartIsNotOnBoard()
        {
            IBoardConfiguration boardConfiguration = new BoardConfiguration("5 4");
            IExitConfiguration  exitConfiguration  = new ExitConfiguration("4 2");
            IMinesConfiguration minesConfiguration = new MinesConfiguration("1,1 1,3 3,3");
            IMoveConfiguration  moveConfiguration  = new MoveConfiguration(new List <string>()
            {
                "M R L", "L M R", "R M L"
            });
            IStartConfiguration startConfiguration = new StartConfiguration("6 9 N");

            IBoard                  board  = boardConfiguration.GetBoard();
            List <ICoordinate>      mines  = minesConfiguration.GetMines();
            ICoordinate             exit   = exitConfiguration.GetExitPoint();
            IPosition               start  = startConfiguration.GetStartPoint();
            List <List <MoveType> > moves  = moveConfiguration.GetMoves();
            ITurtle                 turtle = new Turtle(start);

            IGameValidator gameValidator = new GameValidator(board, mines, exit, start, moves, turtle);

            gameValidator.Validate();
        }
Пример #32
0
        public void CSVMappingTest()
        {
            var con = new BoardConfiguration();

            con.AddPin(new APin()
            {
                Number = 1, Name = "Pin1"
            });
            con.AddPin(new APin()
            {
                Number = 2, Name = "Pin2"
            });
            con.AddPin(new APin()
            {
                Number = 3, Name = "Pin3"
            });

            var res = con.CreateMapping();

            Assert.AreEqual(3, res.Keys.Count);
            Assert.AreEqual(0, res [con.Pins [0].DisplayName]);
            Assert.AreEqual(1, res [con.Pins [1].DisplayName]);
            Assert.AreEqual(2, res [con.Pins [2].DisplayName]);

            con.AddMeasurementCombination(new MeasurementCombination()
            {
                Pins = new System.Collections.Generic.List <APin> ()
                {
                    con.Pins [0] as APin, con.Pins [1] as APin
                },
                Name = "MeCom"
            });

            res = con.CreateMapping();

            Assert.AreEqual(4, res.Keys.Count);
            Assert.AreEqual(3, res [con.MeasurementCombinations [0].DisplayName]);
        }