Esempio n. 1
0
 /// <summary>
 /// Standard Konstruktor
 /// </summary>
 public Game()
 {
     _arrayGen = new ArrayGen();
     _testArrays = _arrayGen.getTestArrays();
     _winner = null;
     _fastestPlayer = null;
     _p1 = new Player();
     _p2 = new Player();
 }
Esempio n. 2
0
 /// <summary>
 /// Auswertung des Spiels.
 /// </summary>
 public void evaluate()
 {
     _p1.Programm.execute(_testArrays[0], true);
     _p2.Programm.execute(_testArrays[0], true);
     updateProgrammStats();
     for (int i = 1; i < Config.RUNS.Length; i++)
     {
         _p1.Programm.execute(_testArrays[i], false);
         _p2.Programm.execute(_testArrays[i], false);
         updateProgrammStats();
     }
     if (_p1.Time < _p2.Time)
     {
         _fastestPlayer = _p1;
         _p1.Points++;
     }
     else if (_p1.Time > _p2.Time)
     {
         _fastestPlayer = _p2;
         _p2.Points++;
     }
     if (_p1.Points > _p2.Points)
     {
         _winner = _p1;
     }
     else if (_p1.Points < _p2.Points)
     {
         _winner = _p2;
     }
 }
Esempio n. 3
0
 /// <summary>
 /// Initialisiert die Bausteinliste des uebergebenen Spielers.
 /// </summary>
 /// <param name="list">Bausteinliste</param>
 /// <param name="player">Besitzer der Bausteinliste</param>
 private void initPlayerWise(ObservableCollection<Statement> list, Player player)
 {
     //Allocations
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.ALLOC_ALENGHT));
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.ALLOC_I_TO_J));
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.ALLOC_I_TO_MIN));
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.ALLOC_J_TO_MIN));
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.ALLOC_LEFT));
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.ALLOC_PIVOT));
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.ALLOC_RIGHT));
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.DEC_J));
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.DEC_J));
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.INC_I));
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.INC_I));
     //Conditions
     list.Add(new ListStm(player.Programm, null, Config.EXECUTE.IF_AI_GREATER_AI_INC));
     list.Add(new ListStm(player.Programm, null, Config.EXECUTE.IF_AJ_LESS_AMIN));
     list.Add(new ListStm(player.Programm, null, Config.EXECUTE.IF_I_LESS_EQUALS_J));
     list.Add(new ListStm(player.Programm, null, Config.EXECUTE.IF_I_LESS_RIGHT));
     list.Add(new ListStm(player.Programm, null, Config.EXECUTE.IF_I_NOTEQUALS_MIN));
     list.Add(new ListStm(player.Programm, null, Config.EXECUTE.IF_LEFT_LESS_J));
     //Loops & If's
     list.Add(new ListStm(player.Programm, null, Config.EXECUTE.FOR_IN_BUBBLE));
     list.Add(new ListStm(player.Programm, null, Config.EXECUTE.FOR_IN_SELECTION));
     list.Add(new ListStm(player.Programm, null, Config.EXECUTE.FOR_INSERTION));
     list.Add(new ListStm(player.Programm, null, Config.EXECUTE.FOR_OUT_BUBBLE));
     list.Add(new ListStm(player.Programm, null, Config.EXECUTE.WHILE_AI_LESS_PIVOT));
     list.Add(new ListStm(player.Programm, null, Config.EXECUTE.WHILE_AJ_GREATER_PIVOT));
     list.Add(new ListStm(player.Programm, null, Config.EXECUTE.WHILE_I_LESS_EQUALS_J));
     list.Add(new ListStm(player.Programm, null, Config.EXECUTE.WHILE_J_GREATER_NULL));
     //MethodCalls
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.CALL_SORT_LEFT));
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.CALL_SORT_RIGHT));
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.SWAP_AI_WITH_AI_INC));
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.SWAP_AI_WITH_AJ));
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.SWAP_AJ_WITH_AJ_DEC));
     list.Add(new Statement(player.Programm, null, Config.EXECUTE.SWAP_AMIN_WITH_AI));
 }
Esempio n. 4
0
        /// <summary>
        /// Schaltet das Spieler Overlay sichtbar und startet, wenn beide Spieler fertig sind den Timer _loadingTimer 
        /// zur Darstellung des Ladebildschirms.
        /// </summary>
        /// <param name="player">Spieler der fertig ist</param>
        private void gameFin(Player player)
        {
            if (player == _game.P1)
            {
                _p1Fin = true;
                P1LoadingVisible = "Visible";
            }
            else if (player == _game.P2)
            {
                _p2Fin = true;
                P2LoadingVisible = "Visible";
            }
            if (_p1Fin && _p2Fin)
            {
                Waiting = Config.WAITING_RESULT;
                _gameTimer.Stop();
                _loadingTimer.Start();
            }

        }