import 'dart:math';
class Player {
int score = 0;
int acesHigh = 0;
void hit() {
int randomNumber = Random().nextInt(13) + 1;
if (randomNumber > 10) {
score += 10;
} else if (randomNumber == 1) {
score += 11;
acesHigh++;
} else {
score += randomNumber;
}
if (score > 21) {
if (acesHigh > 0) {
acesHigh--;
score -= 10;
}
}
}
bool get busted => score > 21;
}
void main() {
int turns = 100000;
int wins = 0, losses = 0;
for (int i = 0; i < turns; i++) {
Player player1 = new Player();
while (player1.score < 17) {
player1.hit();
}
if (player1.busted) {
losses++;
continue;
}
Player dealer = new Player();
while (dealer.score < 17) {
dealer.hit();
}
if (dealer.busted) {
wins++;
continue;
}
if (player1.score > dealer.score) {
wins++;
} else {
losses++;
}
}
assert(wins + losses == turns);
double winPercent = (wins / turns) * 100;
double lossPercent = 100 - winPercent;
print("WIN Percentage: $winPercent");
print("LOSS Percentage: $lossPercent");
}