public Card drawCard(Spades spades) { if (needMoreTricks(spades) && canWinTrick(spades) && (getHighestPlayableCard(spades).getRank() == Rank.Ace || getHighestPlayableCard(spades).getRank() == Rank.King)) { return(getHighestPlayableCard(spades)); } float[] neuralNetInput = getInputNodeData(spades); int chosenAction = neuralNet.propagateNetworkAndGetAction(neuralNetInput); if (chosenAction == 1) { return(tryWinAction(spades)); } return(tryLoseAction(spades)); }