Exemplo n.º 1
0
        public Card getNextCard(PlayerState p, List <Card> hand)
        {
            Card cur = ult.playPrimary(p, hand);

            if (cur != null)
            {
                return(cur);
            }

            //attempts to play wonder to increase science
            if ((p.getBoard().getName().Equals("WB3")) &&
                (p.getBoard().getCurrentWonderLevel() < 2) &&
                (ResourceManager.GetInstance().ValidateWonder(p)))
            {
                for (int i = 0; i < hand.Count; i++)
                {
                    if (hand[i].getType() != 6)
                    {
                        p.setWonderCards(hand[i]);
                        p.getBoard().incrementWonderLevel(p);
                        return(hand[i]);
                    }
                }
            }

            if ((p.getBoard().getName().Equals("WB4")) &&
                (p.getBoard().getCurrentWonderLevel() < 3) &&
                (ResourceManager.GetInstance().ValidateWonder(p)))
            {
                for (int i = 0; i < hand.Count; i++)
                {
                    if (hand[i].getType() != 6)
                    {
                        p.setWonderCards(hand[i]);
                        p.getBoard().incrementWonderLevel(p);
                        return(hand[i]);
                    }
                }
            }

            cur = ult.playSecondary(p, hand);
            if (cur != null)
            {
                return(cur);
            }

            cur = ult.buildWonder(p, hand);
            if (cur != null)
            {
                return(cur);
            }

            return(ult.playAnyCard(p, hand));
        }
        private void wonder_Click(object sender, RoutedEventArgs e)
        {
            String name = image.Source.ToString();

            String subs = name.Split(',').Last();
            String last = subs.Split('/').Last();

            if (!last.Equals("BackOfWonderCards.png"))//make sure its not the placeholder
            {
                if (player.getPlayedACard() == false && (player.getBoard().getMaxWonderLevel() > player.getWonderCards().Count))
                {
                    if (rm.ValidateWonder(player))
                    {
                        player.getHand().Remove(cardToPlay);//remove from cards in hand of player

                        player.setWonderCards(cardToPlay);
                        player.getBoard().incrementWonderLevel(player);

                        this.Close();
                        PlayerGameBoard play = new PlayerGameBoard(parent, player, rm.getGameState());
                    }
                    else
                    {
                        this.Close();
                        ResourceManager manager = ResourceManager.GetInstance(rm.getGameState());
                        manager.resetResources(player);

                        WonderBuyingWindow window = new WonderBuyingWindow(ResourceManager.GetInstance().GetCombinedResources(player), cardToPlay, view, rm.getGameState());
                        window.Show();
                    }
                }
            }
        }
Exemplo n.º 3
0
        public Card getNextCard(PlayerState p, List<Card> hand)
        {
            Card cur = ult.playPrimary(p, hand);
            if (cur != null)
            {
                return cur;
            }

            //attempts to play wonder to increase science
            if((p.getBoard().getName().Equals("WB3"))
                && (p.getBoard().getCurrentWonderLevel() < 2)
                && (ResourceManager.GetInstance().ValidateWonder(p))){
                for (int i = 0; i < hand.Count; i++){
                    if(hand[i].getType() != 6){
                        p.setWonderCards(hand[i]);
                        p.getBoard().incrementWonderLevel(p);
                        return hand[i];
                    }
                }
            }

            if((p.getBoard().getName().Equals("WB4"))
                && (p.getBoard().getCurrentWonderLevel() < 3)
                && (ResourceManager.GetInstance().ValidateWonder(p))){
                for (int i = 0; i < hand.Count; i++){
                    if(hand[i].getType() != 6){
                        p.setWonderCards(hand[i]);
                        p.getBoard().incrementWonderLevel(p);
                        return hand[i];
                    }
                }
            }

            cur = ult.playSecondary(p, hand);
            if (cur != null)
            {
                return cur;
            }

            cur = ult.buildWonder(p, hand);
            if (cur != null)
            {
                return cur;
            }

            return ult.playAnyCard(p, hand);
        }
Exemplo n.º 4
0
//Mouse Click for "Add to Wonder" Button
        public void wonderCardButton_Click(object sender, EventArgs e)
        {
            if (player.getPlayedACard() == false && (player.getBoard().getMaxWonderLevel() > player.getWonderCards().Count))
            {
                for (int i = 0; i < player.getHand().Count; i++)
                {
                    Card  c   = player.getHand()[i];
                    Image img = (Image)playBoard.Children[(56 + i)];

                    if (img.ActualHeight > 150)
                    {
                        if (img.Source != new BitmapImage(new Uri(@"pack://*****:*****@"pack://application:,,,/Images/EmptyCard.png", UriKind.RelativeOrAbsolute));

                                Image           imgl = (Image)playBoard.Children[91];
                                PlayerGameBoard play = new PlayerGameBoard(parent, player, game);
                            }
                            else
                            {
                                ResourceManager manager = ResourceManager.GetInstance(game);
                                manager.resetResources(player);

                                WonderBuyingWindow window = new WonderBuyingWindow(ResourceManager.GetInstance().GetCombinedResources(player), c, this, game);
                                window.Show();
                            }
                        }
                    }
                }
            }
        }
Exemplo n.º 5
0
 //attempts to build a wonder
 public Card buildWonder(PlayerState p, List <Card> hand)
 {
     if (ResourceManager.GetInstance().ValidateWonder(p))
     {
         for (int i = 0; i < hand.Count; i++)
         {
             if (hand[i].getType() == strategy)
             {
                 p.setWonderCards(hand[i]);
                 p.getBoard().incrementWonderLevel(p);
                 return(hand[i]);
             }
         }
         return(hand[0]);
     }
     return(null);
 }
Exemplo n.º 6
0
 private Card BuildWonder(PlayerState p, List <Card> hand)
 {
     if (p.getBoard().notMaxYet())
     {
         for (int i = 0; i < hand.Count(); i++)
         {
             if (hand[i].getType() == 1 || hand[i].getType() == 2)
             {
                 if (ResourceManager.GetInstance().ValidateWonder(p))
                 {
                     strategy = new CommerceStrategy();
                     p.setWonderCards(hand[i]);
                     p.getBoard().incrementWonderLevel(p);
                     return(hand[i]);
                 }
             }
         }
     }
     return(null);
 }
Exemplo n.º 7
0
 //attempts to build a wonder
 public Card buildWonder(PlayerState p, List<Card> hand)
 {
     if (ResourceManager.GetInstance().ValidateWonder(p))
     {
         for (int i = 0; i < hand.Count; i++)
         {
             if (hand[i].getType() == strategy)
             {
                 p.setWonderCards(hand[i]);
                 p.getBoard().incrementWonderLevel(p);
                 return hand[i];
             }
         }
         return hand[0];
     }
     return null;
 }
Exemplo n.º 8
0
        public Card getNextCard(PlayerState p, List<Card> hand)
        {
            PlayerState left = ResourceManager.GetInstance().getGameState().getLeftPlayer(p);
            PlayerState right = ResourceManager.GetInstance().getGameState().getRightPlayer(p);
            int age = ResourceManager.GetInstance().getGameState().getAge();

            Card cur;

            //Checks to see if AI has enough MilitaryPower to win the
            //the battles at the end of the Age
            if ((left.getMilitaryPower() >= p.getMilitaryPower() - age) ||
                (right.getMilitaryPower() >= p.getMilitaryPower() - age))
            {
                cur = ult.playPrimary(p, hand);
                if (cur != null)
                {
                    return cur;
                }
            }

            //attempts to play wonder to increase military
            if ((p.getBoard().getName().Equals("WB7"))
                && (p.getBoard().getCurrentWonderLevel() < 2)
                && (ResourceManager.GetInstance().ValidateWonder(p)))
            {
                for (int i = 0; i < hand.Count; i++)
                {
                    if (hand[i].getType() != 6)
                    {
                        p.setWonderCards(hand[i]);
                        p.getBoard().incrementWonderLevel(p);
                        return hand[i];
                    }
                }
            }

            if ((p.getBoard().getName().Equals("WB8"))
                && (p.getBoard().getCurrentWonderLevel() < 2)
                && (ResourceManager.GetInstance().ValidateWonder(p)))
            {
                for (int i = 0; i < hand.Count; i++)
                {
                    if (hand[i].getType() != 6)
                    {
                        p.setWonderCards(hand[i]);
                        p.getBoard().incrementWonderLevel(p);
                        return hand[i];
                    }
                }
            }

            cur = ult.playSecondary(p, hand);
            if (cur != null)
            {
                return cur;
            }

            cur = ult.buildWonder(p, hand);
            if (cur != null)
            {
                return cur;
            }

            return ult.playAnyCard(p, hand);
        }
Exemplo n.º 9
0
        public Card getNextCard(PlayerState p, List<Card> hand)
        {

            Random random = new Random();
            int randomNumber;
         
            Card c = null;
            if (ResourceManager.GetInstance().ValidateWonder(p))
            {
                randomNumber = random.Next(0, 2);
                Console.WriteLine("attempting to play wonder " + randomNumber);
                if (randomNumber == 1)
                {
                    Console.WriteLine("playing wonder " + randomNumber);
                    randomNumber = random.Next(0, hand.Count - 1);
                    c = hand[randomNumber];
                    p.setWonderCards(c);
                    p.getBoard().incrementWonderLevel(p);
                    
                }
            }

            List<int> availCards = new List<int>();
            for (int i = 0; i < hand.Count; i++)
            {
                availCards.Add(i);
            }

            int trade;
            //selects a card to play
            for (int i = 0; i < hand.Count; i++)
            {
                randomNumber = random.Next(0, availCards.Count - 1);
                c = hand[availCards[randomNumber]];
                if (ResourceManager.GetInstance().ValidateCard(p, c))
                {
                    p.addPlayedCards(c);
                    return c;
                    //Console.WriteLine("===================== CHECKED CARD ===========================");
                }
                trade = ResourceManager.GetInstance().validateTrade(p, c, 0);

                if ((trade > 0) && (p.getCoins() >= trade))
                {
                    //.WriteLine(p.getName() + " trading for " + trade);
                    p.updateCoins(-trade);
                    ResourceManager.GetInstance().getGameState().getRightPlayer(p).updateCoins(trade);
                    p.addPlayedCards(c);
                    return c;
                }
                trade = ResourceManager.GetInstance().validateTrade(p, c, 1);

                if ((trade > 0) && (p.getCoins() >= trade))
                {
                    //Console.WriteLine(p.getName() + " trading for " + trade);
                    p.updateCoins(-trade);
                    p.addPlayedCards(c);
                    ResourceManager.GetInstance().getGameState().getLeftPlayer(p).updateCoins(trade);
                    return c;
                }
                availCards.Remove(randomNumber);
                //Console.Write("RANDOM STRATEGY:: AGE :: ");
                //Console.WriteLine(ResourceManager.GetInstance().getGameState().getAge());

            }
            return null;
        }
// This button click handler finds which button you pressed and then modifies the appropriate
// Player resources as well calling methods for removing and adding money
// B[1,7] = YOU, B[8,14] = LEFT, B[15-21] = RIGHT

        private void buyButton_Click(object sender, RoutedEventArgs e)
        {
            Button b    = (Button)sender;
            string name = b.Name;//have button name will travel

            int index;

            if (name.Length > 2)
            {
                index = ((int)Char.GetNumericValue(name[1]) * 10) + (int)Char.GetNumericValue(name[2]);
            }
            else
            {
                index = (int)Char.GetNumericValue(name[1]);//know which number
            }

            if (index > 0 && index < 8)//Player clicked on YOU
            {
                manager.usingSpecialResource(you, (index - 1));
                resources = manager.GetCombinedResources(you);

                if (manager.ValidateWonder(you)) //ok check if you can play the card now.
                {
                    you.getHand().Remove(card);  //remove from cards in hand of player
                    you.setPlayedACard();        //set true
                    you.setWonderCards(card);

                    you.getBoard().incrementWonderLevel(you);
                    manager.getGameState().incrementTurn();
                    this.Close();
                    PlayerGameBoard play = new PlayerGameBoard(board.getGrid(), you, manager.getGameState());
                }
                else
                {
                    this.Close();

                    WonderBuyingWindow window = new WonderBuyingWindow(resources, card, board, game);
                    window.Show();
                }
            }

            if (index > 7 && index < 15)//Player clicked on LEFT
            {
                int i = (index - 8);

                if (manager.canAfford(you))
                {
                    //PlayerGameBoard play = new PlayerGameBoard(board.getGrid(), you, manager.getGameState());
                    Canvas c = (Canvas)board.getGrid().Children[1];
                    Label  l = (Label)c.Children[90];
                    l.Content = " " + manager.getTempCoins(you);

                    manager.tradeTo(you, i, 0);
                    resources = manager.GetCombinedResources(you);

                    if (manager.ValidateWonder(you)) //ok check if you can play the card now.
                    {
                        you.getHand().Remove(card);  //remove from cards in hand of player
                        you.setPlayedACard();        //set true
                        you.setWonderCards(card);
                        you.getBoard().incrementWonderLevel(you);
                        manager.getGameState().incrementTurn();
                        this.Close();
                        PlayerGameBoard play = new PlayerGameBoard(board.getGrid(), you, manager.getGameState());
                    }
                    else
                    {
                        this.Close();

                        WonderBuyingWindow window = new WonderBuyingWindow(resources, card, board, game);
                        window.Show();
                    }
                }
            }

            if (index > 14 && index < 22) //Player clicked on RIGHT
            {
                int i = (index - 15);     //0-6 the resource traded

                if (manager.canAfford(you))
                {
                    Canvas c = (Canvas)board.getGrid().Children[1];
                    Label  l = (Label)c.Children[90];
                    l.Content = " " + manager.getTempCoins(you);

                    manager.tradeTo(you, i, 1);
                    resources = manager.GetCombinedResources(you);

                    if (manager.ValidateWonder(you)) //ok check if you can play the card now.
                    {
                        you.getHand().Remove(card);  //remove from cards in hand of player
                        you.setPlayedACard();        //set true
                        you.setWonderCards(card);
                        you.getBoard().incrementWonderLevel(you);
                        manager.getGameState().incrementTurn();
                        this.Close();
                        PlayerGameBoard play = new PlayerGameBoard(board.getGrid(), you, manager.getGameState());
                    }
                    else
                    {
                        this.Close();

                        WonderBuyingWindow window = new WonderBuyingWindow(resources, card, board, game);
                        window.Show();
                    }
                }
            }
        }
Exemplo n.º 11
0
        public Card getNextCard(PlayerState p, List <Card> hand)
        {
            PlayerState left  = ResourceManager.GetInstance().getGameState().getLeftPlayer(p);
            PlayerState right = ResourceManager.GetInstance().getGameState().getRightPlayer(p);
            int         age   = ResourceManager.GetInstance().getGameState().getAge();

            Card cur;

            //Checks to see if AI has enough MilitaryPower to win the
            //the battles at the end of the Age
            if ((left.getMilitaryPower() >= p.getMilitaryPower() - age) ||
                (right.getMilitaryPower() >= p.getMilitaryPower() - age))
            {
                cur = ult.playPrimary(p, hand);
                if (cur != null)
                {
                    return(cur);
                }
            }

            //attempts to play wonder to increase military
            if ((p.getBoard().getName().Equals("WB7")) &&
                (p.getBoard().getCurrentWonderLevel() < 2) &&
                (ResourceManager.GetInstance().ValidateWonder(p)))
            {
                for (int i = 0; i < hand.Count; i++)
                {
                    if (hand[i].getType() != 6)
                    {
                        p.setWonderCards(hand[i]);
                        p.getBoard().incrementWonderLevel(p);
                        return(hand[i]);
                    }
                }
            }

            if ((p.getBoard().getName().Equals("WB8")) &&
                (p.getBoard().getCurrentWonderLevel() < 2) &&
                (ResourceManager.GetInstance().ValidateWonder(p)))
            {
                for (int i = 0; i < hand.Count; i++)
                {
                    if (hand[i].getType() != 6)
                    {
                        p.setWonderCards(hand[i]);
                        p.getBoard().incrementWonderLevel(p);
                        return(hand[i]);
                    }
                }
            }

            cur = ult.playSecondary(p, hand);
            if (cur != null)
            {
                return(cur);
            }

            cur = ult.buildWonder(p, hand);
            if (cur != null)
            {
                return(cur);
            }

            return(ult.playAnyCard(p, hand));
        }
Exemplo n.º 12
0
 private Card BuildWonder(PlayerState p, List<Card> hand)
 {
     if (p.getBoard().notMaxYet())
     {
         for (int i = 0; i < hand.Count(); i++)
         {
             if (hand[i].getType() == 1 || hand[i].getType() == 2)
             {
                 if (ResourceManager.GetInstance().ValidateWonder(p))
                 {
                     strategy = new CommerceStrategy();
                     p.setWonderCards(hand[i]);
                     p.getBoard().incrementWonderLevel(p);
                     return hand[i];
                 }
             }
         }
     }
     return null;
 }
Exemplo n.º 13
0
        public Card getNextCard(PlayerState p, List <Card> hand)
        {
            Random random = new Random();
            int    randomNumber;

            Card c = null;

            if (ResourceManager.GetInstance().ValidateWonder(p))
            {
                randomNumber = random.Next(0, 2);
                Console.WriteLine("attempting to play wonder " + randomNumber);
                if (randomNumber == 1)
                {
                    Console.WriteLine("playing wonder " + randomNumber);
                    randomNumber = random.Next(0, hand.Count - 1);
                    c            = hand[randomNumber];
                    p.setWonderCards(c);
                    p.getBoard().incrementWonderLevel(p);
                }
            }

            List <int> availCards = new List <int>();

            for (int i = 0; i < hand.Count; i++)
            {
                availCards.Add(i);
            }

            int trade;

            //selects a card to play
            for (int i = 0; i < hand.Count; i++)
            {
                randomNumber = random.Next(0, availCards.Count - 1);
                c            = hand[availCards[randomNumber]];
                if (ResourceManager.GetInstance().ValidateCard(p, c))
                {
                    p.addPlayedCards(c);
                    return(c);
                    //Console.WriteLine("===================== CHECKED CARD ===========================");
                }
                trade = ResourceManager.GetInstance().validateTrade(p, c, 0);

                if ((trade > 0) && (p.getCoins() >= trade))
                {
                    //.WriteLine(p.getName() + " trading for " + trade);
                    p.updateCoins(-trade);
                    ResourceManager.GetInstance().getGameState().getRightPlayer(p).updateCoins(trade);
                    p.addPlayedCards(c);
                    return(c);
                }
                trade = ResourceManager.GetInstance().validateTrade(p, c, 1);

                if ((trade > 0) && (p.getCoins() >= trade))
                {
                    //Console.WriteLine(p.getName() + " trading for " + trade);
                    p.updateCoins(-trade);
                    p.addPlayedCards(c);
                    ResourceManager.GetInstance().getGameState().getLeftPlayer(p).updateCoins(trade);
                    return(c);
                }
                availCards.Remove(randomNumber);
                //Console.Write("RANDOM STRATEGY:: AGE :: ");
                //Console.WriteLine(ResourceManager.GetInstance().getGameState().getAge());
            }
            return(null);
        }