У меня есть карточная игра, которую я пытаюсь сделать. Большинство из них работает, но мне трудно понять эффективный способ присвоения целочисленных значений строковым элементам, которые у меня есть в моих массивах. По сути, у меня есть ArrayList
с каждой карточкой в стандартной колоде, и по два разворачиваются каждый ход. Несмотря на то, что они - струны (Туз Пик и т. Д.), Мне нужно, чтобы они каким-то образом обладали численным значением, поэтому две карты можно сравнить, чтобы определить победителя (Джек бьет 7 и т. Д.). Я дал ему попытку, которая, я думаю, должна быть способна работать, но это не так.Присвоение целочисленных значений строкам в ArrayList
boolean checkAce = deckList.get(0).startsWith("Ace");
boolean checkTwo = deckList.get(0).startsWith("Two");
boolean checkThree = deckList.get(0).startsWith("Three");
boolean checkFour = deckList.get(0).startsWith("Four");
boolean checkFive = deckList.get(0).startsWith("Five");
boolean checkSix = deckList.get(0).startsWith("Six");
boolean checkSeven = deckList.get(0).startsWith("Seven");
boolean checkEight = deckList.get(0).startsWith("Eight");
boolean checkNine = deckList.get(0).startsWith("Nine");
boolean checkTen = deckList.get(0).startsWith("Ten");
boolean checkJack = deckList.get(0).startsWith("Jack");
boolean checkQueen = deckList.get(0).startsWith("Queen");
boolean checkKing = deckList.get(0).startsWith("King");
boolean checkAceP2 = deckList.get(1).startsWith("Ace");
boolean checkTwoP2 = deckList.get(1).startsWith("Two");
boolean checkThreeP2 = deckList.get(1).startsWith("Three");
boolean checkFourP2 = deckList.get(1).startsWith("Four");
boolean checkFiveP2 = deckList.get(1).startsWith("Five");
boolean checkSixP2 = deckList.get(1).startsWith("Six");
boolean checkSevenP2 = deckList.get(1).startsWith("Seven");
boolean checkEightP2 = deckList.get(1).startsWith("Eight");
boolean checkNineP2 = deckList.get(1).startsWith("Nine");
boolean checkTenP2 = deckList.get(1).startsWith("Ten");
boolean checkJackP2 = deckList.get(1).startsWith("Jack");
boolean checkQueenP2 = deckList.get(1).startsWith("Queen");
boolean checkKingP2 = deckList.get(1).startsWith("King");
int playerOneScore = 0;
int playerTwoScore = 0;
if (checkAce = true) {
playerOneScore = 14;
}else if (checkTwo = true) {
playerOneScore = 2;
}else if (checkThree = true) {
playerOneScore = 3;
}else if (checkFour = true) {
playerOneScore = 4;
}else if (checkFive = true) {
playerOneScore = 5;
}else if (checkSix = true) {
playerOneScore = 6;
}else if (checkSeven = true) {
playerOneScore = 7;
}else if (checkEight = true) {
playerOneScore = 8;
}else if (checkNine = true) {
playerOneScore = 9;
}else if (checkTen = true) {
playerOneScore = 10;
}else if (checkJack = true) {
playerOneScore = 11;
}else if (checkQueen = true) {
playerOneScore = 12;
}else if (checkKing = true) {
playerOneScore = 13;
}
if (checkAceP2 = true) {
playerTwoScore = 14;
}else if (checkTwoP2 = true) {
playerTwoScore = 2;
}else if (checkThreeP2 = true) {
playerTwoScore = 3;
}else if (checkFourP2 = true) {
playerTwoScore = 4;
}else if (checkFiveP2 = true) {
playerTwoScore = 5;
}else if (checkSixP2 = true) {
playerTwoScore = 6;
}else if (checkSevenP2 = true) {
playerTwoScore = 7;
}else if (checkEightP2 = true) {
playerTwoScore = 8;
}else if (checkNineP2 = true) {
playerTwoScore = 9;
}else if (checkTenP2 = true) {
playerTwoScore = 10;
}else if (checkJackP2 = true) {
playerTwoScore = 11;
}else if (checkQueenP2 = true) {
playerTwoScore = 12;
}else if (checkKingP2 = true) {
playerTwoScore = 13;
}
if (playerOneScore > playerTwoScore) {
System.out.println("Player One Wins!");
}else if (playerTwoScore > playerOneScore) {
System.out.println("Player Two Wins!");
}else if (playerOneScore == playerTwoScore) {
System.out.println("Tie");
}
Идея заключается в том, что каждый цикл я преформы, чтобы раздать карты будет проверять ArrayList
Element, чтобы увидеть, если начало соответствует строке номинальной стоимости. Затем оператор if
проверяет, какой из них является истинным, и присваивает соответствующие очки значению для каждого игрока и сравнивает их. По какой-то причине каждый раз, когда я запускаю его checkAce
и checkAceP2
, оба оценивают true
независимо от того, какие карты на самом деле находятся на deckList.get(0)
и .get(1)
. В результате каждый раз получается ничья. Может ли кто-нибудь увидеть недостаток в моем коде? Или может кто-нибудь рекомендовать лучший метод для достижения моей цели?
Ах, спасибо! Это решило мою проблему. – andrewxt