Exemple #1
0
        //private List<string> getPieces(Symbol sym)
        //{
        //    List<string> ps = new List<string>();
        //    for(int i = 0; i < board.allPositions().Count; i++)
        //    {
        //        Tile t = board.getTile(board.allPositions()[i]);
        //        if (t.cond.Symbol == sym) ps.Add(t.pos);
        //    }
        //    return ps;
        //}
        //private bool availPieces(Symbol sym)
        //{
        //    List<string> list = getPieces(sym);
        //    bool isNotAvailable = false;
        //    foreach (string str in list)
        //    {
        //        isNotAvailable = isInMillPos(str, player);
        //        if (!isNotAvailable) return false;
        //    }
        //    return true;
        //}
        public void Shoot(IPlayer player, IReferee referee, string position)
        {
            if (referee.canShoot(player, position))
            {
                if (referee.isValidDestroy(player, position))

                {
                    if (!referee.isAvailablePieces(player))
                    {
                        if (referee.isInMillPos(position, player))
                        {
                            Console.WriteLine("You can't shoot a piece in a mill. There are still available pieces to shoot");
                            Thread.Sleep(1500);
                            flag = true;
                        }
                    }
                    else
                    {
                        board.updateTile(new Tile(position, new Piece(Symbol.BL, position)));
                        cowBox.placeCow(switchPlayer(player.symbol));
                        flag = false;
                    }
                }
                else
                {
                    Console.WriteLine("You can't remove your own player or shoot a blank spot!!!");
                    flag = true;
                    Thread.Sleep(1500);
                }
            }
        }
Exemple #2
0
        public Plugin(String Path)
        {
            string[] files = Directory.GetFiles(Path, "*.dll");

            foreach (string f in files)
            {
                try
                {
                    Assembly a = null;
                    a = Assembly.LoadFile(f);
                    System.Type[] types = a.GetTypes();
                    foreach (System.Type type in types)
                    {
                        if (type.BaseType.Name == "IReferee")
                        {
                            Console.WriteLine("Loading Referee : " + f);
                            IReferee ins = (IReferee)Activator.CreateInstance(type);
                            Console.WriteLine("Referee : " + ins.GetName());
                            m_referees.Add(ins);
                        }
                    }
                }
                catch (Exception e)
                {
                    //MessageBox.Show(e.Message);
                }
            }
        }
Exemple #3
0
 public void BeforeTests()
 {
     _board   = new Board(8);
     _rook    = new Rook(PlayerColor.White);
     _king    = new King(PlayerColor.Black);
     _referee = new Referee(new MoveAttemptHandler());
 }
 /// <summary>
 /// Enters into a cheating agreement between a player and a referee.
 /// <remarks>The referee informs the player about guesses made by the other players.</remarks>
 /// </summary>
 /// <param name="player">The player entering into a cheating agreement.</param>
 /// <param name="referee">The referee entering into a cheating agreement.</param>
 private void CheatingAgreement(IPlayer player, IReferee referee)
 {
     if (player is ICheaterPlayer)
     {
         referee.Cheating += ((ICheaterPlayer)player).CheatingAction;
     }
 }
Exemple #5
0
 public GameController(Player[] players, IReferee referee)
 {
     this.players = players;
     this.PlayersLeft = players.ToList();
     this.referee = referee;
     pile = new ObservableCollection<Card>();
 }
Exemple #6
0
        public void EachCowIsOnlyPlacedOnEmptySpace(int position, string [] inputs)
        ///Player should not be able to place piece on an occupied tile
        {
            //This test still has to be fixed.
            IBoard   board   = Substitute.For <IBoard>();
            IReferee referee = Substitute.For <IReferee>();
            Player   p1      = new Player(Symbol.CB);
            Player   p2      = new Player(Symbol.CW);

            board = new Board();
            IWorld world = Substitute.For <IWorld>();

            world = new World(p1, p2);
            bool occupied = true;

            foreach (string pos in inputs)
            {
                Tile tile = world.board.getTile(pos);
                if (tile.cond.Symbol == Symbol.BL)
                {
                    occupied = true;
                    Assert.That(!occupied);
                }
            }
            //Assert.That(!occupied);
        }
 public RefereeController(IUnitOfWork uow, IReferee referee, ICountry country, ISportType sporttype)
 {
     _uow       = uow;
     _Referee   = referee;
     _Country   = country;
     _SportType = sporttype;
 }
Exemple #8
0
 public void BeforeTests()
 {
     _board = new Board(8);
     _rook = new Rook(PlayerColor.White);
     _king = new King(PlayerColor.Black);
     _referee = new Referee(new MoveAttemptHandler());
 }
Exemple #9
0
 public Game(IPlayer playerBlack, IPlayer playerWhite, IBoard Board, IReferee referee)
 {
     this.playerBlack = playerBlack;
     this.playerWhite = playerWhite;
     this.referee     = referee;
     this.Board       = Board;
     Board.printBoard(Board.getBoard());
 }
Exemple #10
0
 public bool Select(int position, IBoard board, IReferee referee)
 {
     if (referee.CanSelect(Color, board, position))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
Exemple #11
0
 public MatchController(IUnitOfWork uow, IMatch match, IReferee referee, IGroup group, Istadium stadium, IPartInGroup partGroup, IUserPrediction userprediction, IpartInMatch partInMatch)
 {
     _uow            = uow;
     _match          = match;
     _referee        = referee;
     _Group          = group;
     _stadium        = stadium;
     _partInGroup    = partGroup;
     _partInMatch    = partInMatch;
     _userPrediction = userprediction;
 }
        public GameSession(IBoard b, IPlayer p1, IPlayer p2, ICowBox cow, IReferee r)
        {
            board    = b;
            Player_1 = p1;
            Player_2 = p2;
            box      = cow;
            referee  = r;

            Current_Player = Player_1;
            Current_Phase  = Phase.Placing;
        }
Exemple #13
0
        public Game(ILobby lobby)
        {
            StartTime = DateTime.Now;
            ID        = lobby.Id;
            _players  = lobby.GetAllPlayers();

            PlayerOrder = Permutation.Random(_players.Count);

            Settings = lobby.Settings;
            _grid    = new Grid(Settings.GridSize, Settings.GridSize);
            _referee = new LineReferee(Settings.WinChainLength);
        }
Exemple #14
0
 public bool Kill(int position, IBoard board, IReferee referee)
 {
     if (referee.CanKill(Color, position))
     {
         board.Kill(position);
         return(true);
     }
     else
     {
         return(false);
     }
 }
Exemple #15
0
 public bool MoveFlying(int Destination, int secondPosition, IBoard board, IReferee referee, Phase currPhase)
 {
     if (referee.CanFlyTo(Color, secondPosition, currPhase))
     {
         board.Move(Destination, secondPosition);
         return(true);
     }
     else
     {
         return(false);
     }
 }
Exemple #16
0
 public bool Place(int position, IBoard board, IReferee referee, Phase currPhase)
 {
     if (referee.CanPlace(Color, position, currPhase))
     {
         ICow cow = Box.TakeCow(Color);
         board.Place(cow, position);
         return(true);
     }
     else
     {
         return(false);
     }
 }
        public void IsInTieBreakShouldReturnFalseWhenOneOfPlayersScoreIsLessThan40()
        {
            var player1 = playerBuilder.Build();

            player1.Score = 3;
            var player2 = playerBuilder.Build();

            player2.Score = 2;
            scoreBoard    = new ScoreBoard(player1, player2);
            referee       = new Referee(scoreBoard);

            Assert.That(referee.IsInTieBreak(), Is.Not.True);
        }
 public GameController(
     IPlayerBuilder playerBuilder,
     IPlayersDataReader playersDataReader,
     IEvenOrOdd evenOrOdd,
     IScoreBoard scoreBoard,
     IReferee referee)
 {
     _playerBuilder           = playerBuilder;
     _playersDataReader       = playersDataReader;
     _evenOrOdd               = evenOrOdd;
     _scoreBoard              = scoreBoard;
     _referee                 = referee;
     scoreBoard.PlayerScored += referee.OnPlayerScored;
 }
Exemple #19
0
        public void playFly(string to, string from, IPlayer player, IReferee referee)
        {
            if (referee.isValidFly(to, from, player))
            {
                Tile tileTo   = new Tile(to, new Piece(player.symbol, to));
                Tile tileFrom = new Tile(from, new Piece(Symbol.BL, from));

                board.updateTile(tileTo);
                board.updateTile(tileFrom);
            }
            else
            {
                Console.WriteLine("Invalid move, please make a valid move");
            }
        }
        public void IsDeuceShouldReturnFalseWhenPlayesTieWhileNotInTieBreak()
        {
            var player1 = playerBuilder.Build();

            player1.Score = 1;
            var player2 = playerBuilder.Build();

            player2.Score = 2;
            scoreBoard    = new ScoreBoard(player1, player2);
            referee       = new Referee(scoreBoard);

            scoreBoard.PlayerScored += referee.OnPlayerScored;
            scoreBoard.SetPlayerOneScore();

            Assert.That(referee.IsDeuce(), Is.False);
        }
        public void OnPlayerScoredShouldSetGameEndedToTrueWhenPlayer1Wins()
        {
            var player1 = playerBuilder.Build();

            player1.Score = 4;
            var player2 = playerBuilder.Build();

            player2.Score = 3;
            scoreBoard    = new ScoreBoard(player1, player2);
            referee       = new Referee(scoreBoard);

            scoreBoard.PlayerScored += referee.OnPlayerScored;
            scoreBoard.SetPlayerOneScore();

            Assert.That(referee.GameEnded);
        }
        public void IsInTieBreakShouldReturnTrueWhenPlayerTwoTies()
        {
            var player1 = playerBuilder.Build();

            player1.Score = 3;
            var player2 = playerBuilder.Build();

            player2.Score = 2;
            scoreBoard    = new ScoreBoard(player1, player2);
            referee       = new Referee(scoreBoard);

            scoreBoard.PlayerScored += referee.OnPlayerScored;
            scoreBoard.SetPlayerTwoScore();

            Assert.That(referee.IsInTieBreak(), Is.True);
        }
Exemple #23
0
        private void Form1_Load(object sender, EventArgs e)
        {
            Plugin p = new Plugin(Environment.CurrentDirectory);

            refe = p.GetReferees()[0];
            p1   = new PlayerData("Player 1");
            refe.AddPlayer(p1);
            p2 = new PlayerData("Player 2");
            refe.AddPlayer(p2);
            p3 = new PlayerData("Player 3");
            refe.AddPlayer(p3);
            p4 = new PlayerData("Player 4");
            refe.AddPlayer(p4);
            refe.NewGame();
            Draw();
        }
        public void IsAdvantageShoulfReturnTrueWhenPlayer1UntiesDuringTieBreak()
        {
            var player1 = playerBuilder.Build();

            player1.Score = 2;
            var player2 = playerBuilder.Build();

            player2.Score = 3;
            scoreBoard    = new ScoreBoard(player1, player2);
            referee       = new Referee(scoreBoard);

            scoreBoard.PlayerScored += referee.OnPlayerScored;
            scoreBoard.SetPlayerOneScore();
            scoreBoard.SetPlayerOneScore();

            Assert.That(referee.IsAdvantage(), Is.True);
        }
        public void OnPlayerScoredShouldChangeTheScoreListWhenStartingTieBreakByPlayer2()
        {
            var player1 = playerBuilder.Build();

            player1.Score = 3;
            var player2 = playerBuilder.Build();

            player2.Score = 2;
            scoreBoard    = new ScoreBoard(player1, player2);
            referee       = new Referee(scoreBoard);

            scoreBoard.PlayerScored += referee.OnPlayerScored;
            scoreBoard.SetPlayerTwoScore();

            Assert.That(scoreBoard.ScoreList[1], Is.EqualTo(1));
            Assert.That(scoreBoard.ScoreList.Count, Is.EqualTo(100));
        }
        public void OnPlayerScoredShouldChangeScoreListOfScoreBoardAndZeroPlayrsScore()
        {
            var player1 = playerBuilder.Build();

            player1.Score = 3;
            var player2 = playerBuilder.Build();

            player2.Score = 2;
            scoreBoard    = new ScoreBoard(player1, player2);
            referee       = new Referee(scoreBoard);

            scoreBoard.PlayerScored += referee.OnPlayerScored;
            scoreBoard.SetPlayerTwoScore();

            Assert.That(scoreBoard.Player1.Score, Is.EqualTo(0));
            Assert.That(scoreBoard.Player2.Score, Is.EqualTo(0));
        }
Exemple #27
0
        public void playPlace(string pos, IPlayer player, IReferee referee)
        {
            if (referee.isValidPlace(pos, this))
            {
                Tile t = new Tile(pos, new Piece(player.symbol, pos));
                if (player.LastPosPlayed.Contains(pos))
                {
                    player.LastPosPlayed.Remove(pos);
                }

                player.LastPosPlayed.Add(pos);
                board.updateTile(t);
                cowBox.takeCow(player.symbol);
            }
            else
            {
                Console.WriteLine("Invalid move, please make a valid move");
            }
        }
Exemple #28
0
        public Game(IBoard board, IReferee referee, IPlayer player_1, IPlayer player_2)
        {
            GameBoard     = board;
            Referee       = referee;
            Player_1      = player_1;
            Player_2      = player_2;
            CurrentPlayer = player_1;
            OtherPlayer   = player_2;

            /*  if(Player_1.Color==Player_2.Color){ //if wrong information for starting a game is wrong
             *    Player_1 = new Player(Player_1.Name,Color.dark);
             *    Player_2 = new Player(Player_2.Name,Color.light);
             * }*/
            if (Player_2.Color == Color.dark)
            {
                CurrentPlayer = Player_2;
                OtherPlayer   = Player_1;
            }
            Winner = null;
        }
Exemple #29
0
 private void Form1_Load(object sender, EventArgs e)
 {
     Plugin p = new Plugin(Environment.CurrentDirectory);
     refe = p.GetReferees()[0];
     p1 = new PlayerData("Player 1");
     refe.AddPlayer(p1);
     p2 = new PlayerData("Player 2");
     refe.AddPlayer(p2);
     p3 = new PlayerData("Player 3");
     refe.AddPlayer(p3);
     p4 = new PlayerData("Player 4");
     refe.AddPlayer(p4);
     refe.NewGame();
     Draw();
 }
        /// <summary> run the game. </summary>
        public virtual void Run()
        {
            // Create Referee
            _referee = CreateReferee(_numCards, _numPlayers, _seed);

            // Create Views
            for (int i = 0; i < _numPlayers; ++i) {
                CardGameViewWindow view = (CardGameViewWindow)CreateView(_numCards, _imageURI);
                _referee.Join(view);
                view.Show();
            }

            // run referee in background thread
            BackgroundWorker worker = new BackgroundWorker();
            worker.DoWork += new DoWorkEventHandler(delegate { _referee.Start(); });
            worker.RunWorkerAsync();

            // run event loop in this thread
            App app = new App();
            app.Run();
        }
Exemple #31
0
 public void AddReferee(IReferee refe)
 {
     m_referee = refe;
 }
Exemple #32
0
 public void AddReferee(IReferee refe)
 {
     m_referee = refe;
 }
Exemple #33
0
 public WhistController(Player[] players, Player FirstPlayer, Suits trump, IReferee referee)
     : base(players, referee)
 {
     this.trump = trump;
     for (int i = 0; i < players.Length; i++)
         if (players[i] == FirstPlayer)
         {
             currentPlayer = i;
             break;
         }
     CardPlayedByPlayer = new Dictionary<Player, Card>();
     foreach (Player player in players)
         CardPlayedByPlayer.Add(player, null);
 }
Exemple #34
0
        static void Main(string[] args)
        {
            SmthHappened score = new SmthHappened();

            score.ChangeScoreNotify += DisplayMessage;
            score.Whistle();

            ITeam teams = Factory.GetTeamModuleObject();

            teams.AddToTeam(4, teams.ChooseRandomTeam().Id);
            teams.AddToTeam(2, teams.ChooseRandomTeam().Id);
            teams.AddToTeam(3, teams.ChooseRandomTeam().Id);
            teams.AddToTeam(1, teams.ChooseRandomTeam().Id);
            teams.AddToTeam(5, teams.ChooseRandomTeam().Id);
            teams.AddToTeam(7, teams.ChooseRandomTeam().Id);
            teams.AddToTeam(2, teams.ChooseRandomTeam().Id);

            IPlayer players = Factory.GetPlayerModuleObject();

            players.Shoot(1, 2);
            players.Shoot(1, 2);

            ICoach coach = Factory.GetCoachModuleObject();

            coach.plusForTeam(coach.GetCoachById(1));
            score.ShowScore(teams.ChooseRandomTeam(), teams.ChooseRandomTeam());


            coach.plusForTeam(coach.GetCoachById(1));
            score.ShowScore(teams.GetTeamById(1), teams.GetTeamById(2));
            List <Player> p = teams.GetTeamById(1).players;



            IReferee referee = Factory.GetRefereeModuleObject();

            referee.addToFavouriteTeam(referee.GetRefereeById(1));
            referee.addToFavouriteTeam(referee.GetRefereeById(1));


            score.ShowScore(teams.GetTeamById(1), teams.GetTeamById(2));



            Game game = new Game();



            // playerAction.Shoot(player1, player11);
            score.Gol(1, game);

            //score.RefereePrefer(referee);
            //score.CouchTime(coach1);
            //score.CouchTime(coach1);
            //score.CouchTime(coach1);

            //score.Gol(ChooseTeamForGoal(teamsInGame), game);
            //score.Gol(ChooseTeamForGoal(teamsInGame), game);
            //score.Gol(ChooseTeamForGoal(teamsInGame), game);
            //score.Gol(ChooseTeamForGoal(teamsInGame), game);
            //score.Gol(ChooseTeamForGoal(teamsInGame), game);
            score.ShowScore(teams.GetTeamById(1), teams.GetTeamById(2));

            Console.ReadKey();
        }
        /// <summary> run the game. </summary>
        public virtual void Run()
        {
            // Run the Referee in this thread
            _referee = CreateReferee(_numCards, _numPlayers, _seed);

            for (int i = 0; i < _numPlayers; ++i )
            {
                CardGameViewWindow view = (CardGameViewWindow)CreateView(_numCards, _imageURI);
                view.Show();
                _referee.Join(view);
            }

            // Create Views in their own threads
            /*            for (int i=0; i<_numPlayers; ++i) {
                Thread t = new Thread(new ThreadStart(delegate {
                    CardGameViewWindow view = (CardGameViewWindow)CreateView(_numCards, _imageURI);
                    _referee.Join(view);
                    TriggerStart();
                    view.ShowDialog();
                }));
                t.SetApartmentState(System.Threading.ApartmentState.STA);
                t.Start();
            }
            */
        }
Exemple #36
0
 private void StartGame()
 {
     _referee = new Referee(this);
     CreateModels(_playerViews);
     CreateModels(_ballViews);
 }
        private bool GetMessageROM(NetPlayer p, String[] tab, NetMessage msg, ref String DiconnectionReason)
        {
            if (tab[1] == "ADD")
            {
                //Room already exist ??
                Room ins = new Room(tab[2]);
                m_rooms.Add(ins);
                SendAll("ROM:LST:" + ins.Name + ":" + ins.GetPlayer() + ":" + ins.GetMaxPlayer());
                p.Send("ROM:ADD:OK");
            }

            if (tab[1] == "DEL")
            {
                //Room ins = new Room(tab[2]);
            }

            if (tab[1] == "JOIN")
            {
                //Room ins = new Room(tab[2]);
                Room tmp = GetRoomByName(tab[2]);
                if (tmp.GetPlayer() == tmp.GetMaxPlayer())
                {
                    p.Send("ROM:JOIN:KO");
                    return(true);
                }
                p.Send("ROM:JOIN:OK");
                tmp.AddPlayer(p);
                p.CurrentRoom = tmp;
                for (int i = 0; i < tmp.GetPlayer(); i++)
                {
                    NetPlayer tmpp = tmp.GetPlayer(i);
                    p.Send("ROM:PLAYER:ADD:" + tmpp.GetName());
                }
                p.CurrentRoom.Send("ROM:PLAYER:ADD:" + p.GetName(), p);
                List <IReferee> plugins = m_plugin.GetReferees();
                for (int i = 0; i < plugins.Count; i++)
                {
                    p.Send("ROM:REFEREE:ADD:" + plugins[i].GetName());
                }
                if (tmp.GetReferee() != null)
                {
                    p.Send("ROM:REFEREE:SELECTED:" + tmp.GetReferee().GetName());
                }
            }

            if (tab[1] == "LEAVE")
            {
                Room tmp = p.CurrentRoom;

                tmp.Send("ROM:PLAYER:LEAVE:" + p.GetName(), null);
                tmp.RemovePlayer(p);
            }

            if (tab[1] == "REFEREE")
            {
                Room            tmp     = p.CurrentRoom;
                List <IReferee> plugins = m_plugin.GetReferees();
                IReferee        iref    = null;
                for (int i = 0; i < plugins.Count; i++)
                {
                    if (plugins[i].GetName() == tab[2])
                    {
                        iref = plugins[i];
                    }
                }
                if (iref != null)
                {
                    tmp.AddReferee(iref);
                    p.CurrentRoom.Send("ROM:REFEREE:SELECTED:" + tmp.GetReferee().GetName(), null);
                }
                else
                {
                    p.Send("ROM:REFEREE:KO");
                }
            }

            if (tab[1] == "START")
            {
                // Make PlayerData List
                if (p.CurrentRoom.GetReferee() == null)
                {
                    p.Send("ROM:START:KO");
                    return(true);
                }
                Room tmp = p.CurrentRoom;
                List <PlayerData> ltmp = new List <PlayerData>();

                tmp.Send("STR:" + p.GetName(), null);
                for (int i = 0; i < tmp.GetPlayer(); i++)
                {
                    ltmp.Add(tmp.GetPlayer(i));
                }

                p.CurrentRoom.GetReferee().NewGame(ltmp);
                for (int i = 0; i < tmp.GetPlayer(); i++)
                {
                    SendHandTiles(tmp.GetPlayer(i));
                }
                SendTurn(p);
            }

            return(true);
        }
 public RefereeController(IRepository repository, IReferee referee)
 {
     _repository = repository;
     _referee = referee;
 }