//displays discard cards public void DisplayDiscardCards() { if (discardDisplayList.Count() > 0) { CardImageControl startingCardControl = new CardImageControl(); flpDiscardPile.Controls.Add(startingCardControl); } }
//displays trump card public void DisplayTrumpCards() { flpTrumpCard.Controls.Clear(); trumpCardDisplayList.Clear(); for (int i = 0; i < 1; i++) { trumpCardDisplayList.Add(myDeck.getTrumpCard()); } foreach (Card card in trumpCardDisplayList) { CardImageControl myCardControl = new CardImageControl(); myCardControl.Card = card; flpTrumpCard.Controls.Add(myCardControl); } }
//displays river cards public void DisplayRiverCards() { //River Display Cards flpRiver.Controls.Clear(); RiverDisplayList.Clear(); for (int i = 0; i < myRiver.length(); i++) { RiverDisplayList.Add(myRiver.GetCard(i)); } foreach (Card card in RiverDisplayList) { CardImageControl myCardControl = new CardImageControl(); myCardControl.Card = card; flpRiver.Controls.Add(myCardControl); } }
//resets game public void ResetGame() { lblHumanAttacking.Visible = true; lblComputerAttacking.Visible = false; lblHumanPlayer.Text = myPlayerOne.getName().ToString(); lblComputerPlayer.Text = myPlayerTwo.getName().ToString(); flpDeck.Controls.Clear(); flpComputerHand.Controls.Clear(); flpHumanHand.Controls.Clear(); flpRiver.Controls.Clear(); flpTrumpCard.Controls.Clear(); flpDiscardPile.Controls.Clear(); CardImageControl startingCardControl = new CardImageControl(); flpDeck.Controls.Add(startingCardControl); myDeck = new GameDeck(deckSize); myRiver = new GameRiver(); myHandOne = new PlayerHand(); myHandTwo = new PlayerHand(); myPlayerOne = new Player("PlayerOne", myHandOne, true, false); myPlayerTwo = new PlayerAI("PlayerTwo", myHandTwo, false, true); DeckDisplayList = new CardList(); HandOneDisplayList = new CardList(); HandTwoDisplayList = new CardList(); PlayerOneDisplayList = new CardList(); PlayerTwoDisplayList = new CardList(); RiverDisplayList = new CardList(); trumpCardDisplayList = new CardList(); discardDisplayList = new CardList(); myDeck.Shuffle(deckSize); txtDeckCardsRemaining.Text = myDeck.getCardsRemaining().ToString(); txtRiverCardsRemaning.Text = myRiver.getCardsRemaining().ToString(); txtDicardCardsRemaining.Text = discardDisplayList.Count().ToString(); txtRoundNumber.Text = roundNumber.ToString(); btnPickUp.Enabled = false; btnCeaseAttack.Enabled = true; roundNumber = 0; GameLog.Log("\nNEW GAME"); GameLog.Log("\n PlayerOne Win/Loss Ratio " + playerOneWins.ToString() + "/" + playerOneLosses.ToString()); GameLog.Log("\n PlayerTwo Win/Loss Ratio " + playerTwoWins.ToString() + "/" + playerTwoLosses.ToString() + "\n"); }
//displays player one cards public void DisplayPlayerOneCards() { //PlayerOne Display Cards flpHumanHand.Controls.Clear(); PlayerOneDisplayList.Clear(); for (int i = 0; i < myPlayerOne.getHand().length(); i++) { PlayerOneDisplayList.Add(myPlayerOne.getHand().GetCard(i)); } foreach (Card card in PlayerOneDisplayList) { CardImageControl myCardControl = new CardImageControl(); myCardControl.Card = card; flpHumanHand.Controls.Add(myCardControl); //stores a card click event method for each card myCardControl.CardClicked += new EventHandler(Card_Click); } }
//displays player two cards public void DisplayPlayerTwoCards() { //PlayerTwo Display Cards flpComputerHand.Controls.Clear(); PlayerTwoDisplayList.Clear(); for (int i = 0; i < myPlayerTwo.getHand().length(); i++) { PlayerTwoDisplayList.Add(myPlayerTwo.getHand().GetCard(i)); } foreach (Card card in PlayerTwoDisplayList) { //CardImageControl myCardControl = new CardImageControl(); //myCardControl.Card = card; //flpComputerHand.Controls.Add(myCardControl); //myCardControl.CardClicked += new EventHandler(Card_Click); CardImageControl startingCardControl = new CardImageControl(); flpComputerHand.Controls.Add(startingCardControl); } }
//on card click will raise event in card image control class //clicked card will go through player attack/defend phase method private void Card_Click(object sender, EventArgs e) { CardImageControl clickedCardControl = new CardImageControl(); clickedCardControl = (CardImageControl)sender; //if (myPlayerTwo.getIsDefending() == false) //{ // myPlayerOne.setIsDefending(true); //} //else if (myPlayerTwo.getIsDefending() == true) //{ // myPlayerOne.setIsDefending(false); //} //checks to see if computer is defending if so human player attack phas starts and computer //defend phase begins if (myPlayerTwo.getIsDefending() == true) { myPlayerOne.AttackingPhase(myRiver, (clickedCardControl.Card)); myPlayerTwo.DefendingPhase(myRiver, myDeck.getTrumpCard()); //checks to see if computer is defending if not will log round in output file //will reset round and have human start defending if (myPlayerTwo.getIsDefending() == false) { roundNumber += 1; GameLog.LogRound(GameLog, roundNumber, myPlayerOne, myPlayerTwo, myRiver); for (int i = 0; i < myRiver.length(); i++) { myHandTwo.AddCardToHand(myRiver.GetCard(i)); } myRiver.ClearRiver(); lblComputerAttacking.Visible = true; lblHumanAttacking.Visible = false; try { myPlayerOne.RefillHand(myDeck); myPlayerTwo.RefillHand(myDeck); } catch (Exception) { } btnPickUp.Enabled = true; btnCeaseAttack.Enabled = false; myPlayerTwo.AttackingPhase(myRiver); } } //human is defending, from computer attacks else { myPlayerOne.DefendingPhase(myRiver, myDeck.getTrumpCard(), (clickedCardControl.Card)); myPlayerTwo.AttackingPhase(myRiver); //if human no longer defending, round over and reset, computer is now defending if (myPlayerTwo.getIsDefending() == true) { roundNumber += 1; GameLog.LogRound(GameLog, roundNumber, myPlayerOne, myPlayerTwo, myRiver); for (int i = 0; i < myRiver.length(); i++) { discardDisplayList.Add(myRiver.GetCard(i)); } myRiver.ClearRiver(); lblComputerAttacking.Visible = false; lblHumanAttacking.Visible = true; try { myPlayerOne.RefillHand(myDeck); myPlayerTwo.RefillHand(myDeck); } catch (Exception) { } btnPickUp.Enabled = false; btnCeaseAttack.Enabled = true; } } DisplayAllCardLists(); //logs who won the game and win/loss ratios if (myPlayerOne.getHand().length() == 0) { playerOneWins += 1; playerTwoLosses += 1; MessageBox.Show("GAME OVER: PLAYER ONE HAS WON"); GameLog.Log("\n*****GAME OVER: PLAYER ONE HAS WON***** \n"); GameLog.Log("\n PlayerOne Win/Loss Ratio " + playerOneWins.ToString() + "/" + playerOneLosses.ToString()); GameLog.Log("\n PlayerTwo Win/Loss Ratio " + playerTwoWins.ToString() + "/" + playerTwoLosses.ToString() + "\n"); ResetGame(); } if (myPlayerTwo.getHand().length() == 0) { playerTwoWins += 1; playerOneLosses += 1; MessageBox.Show("GAME OVER: PLAYER TWO HAS WON"); GameLog.Log("\n*****GAME OVER: PLAYER TWO HAS WON***** \n"); GameLog.Log("\n PlayerOne Win/Loss Ratio " + playerOneWins.ToString() + "/" + playerOneLosses.ToString()); GameLog.Log("\n PlayerTwo Win/Loss Ratio " + playerTwoWins.ToString() + "/" + playerTwoLosses.ToString() + "\n"); ResetGame(); } }