Я делаю это упражнение, в упражнении сказано следующее:
* Учитывая входной файл, содержащий 1000 случайных комбинаций блэкджека между 3 игроками (здесь: blackjack.txt), вычислите количество блэкджеков, встреченных для любого игрока во всех играх.
Блэкджек - это туз любой масти и карта номиналом 10 (валет, дама, король или 10) любой масти.
Входной файл выглядит так: (в качестве примера)
4H 5C AD JH 9C 10H
Это означает, что у первого игрока 4 червы и 5 треф; у игрока 2 есть бубновый туз и червовый валет (что считается блэкджеком); У игрока 3 есть 9 треф и 10 червей.
Для решения этой проблемы известно, что существует стандартная колода из 52 карт, которая перетасовывается для каждой новой игры *.
Я думаю, что придерживаюсь правильного подхода, и мой код правильный, но мои ответы терпят неудачу, любые подсказки, предложения по получению правильного ответа
это мой код:
import java.io.*;
public class Problema16 {
public static void main(String args[]) {
File archivo = null;
FileReader fr = null;
BufferedReader br = null;
int counter = 0;
//int rest = 0;
try {
archivo = new File("C:\\Users\\\blackjack.txt");
fr = new FileReader(archivo);
br = new BufferedReader(fr);
String linea;
String[] linea2 = null;
while ((linea = br.readLine()) != null) //System.out.println(linea);
{
linea2 = linea.split(" ");
String a = (linea2[0]);
String b = (linea2[1]);
String c = (linea2[2]);
String d = (linea2[3]);
String e = (linea2[4]);
String f = (linea2[5]);
if ((a.startsWith("A") && (b.startsWith("J") || (b.startsWith("Q") || (b.startsWith("K") || (b.startsWith("10")))))) || ((a.startsWith("J") || (a.startsWith("Q") || (a.startsWith("K") || (a.startsWith("10"))))) && (b.startsWith("A")))) {
counter++;
//System.out.println(a + "" + b + "");
} else if ((c.startsWith("A") && (d.startsWith("J") || (d.startsWith("Q") || (d.startsWith("K") || (d.startsWith("10")))))) || ((c.startsWith("J") || (c.startsWith("Q") || (c.startsWith("K") || (c.startsWith("10"))))) && (d.startsWith("A")))) {
counter++;
//System.out.println(c + "" + d + "");
} else if ((e.startsWith("A") && (f.startsWith("J") || (f.startsWith("Q") || (f.startsWith("K") || (f.startsWith("10")))))) || ((e.startsWith("J") || (e.startsWith("Q") || (e.startsWith("K") || (e.startsWith("10"))))) && (f.startsWith("A")))) {
counter++;
//System.out.println(e + "" + f + "");
} else {
//sobra++;
}
}
System.out.println(counter);
//System.out.println(sobra);
} catch (Exception e) {
e.printStackTrace();
}
}
}
это интерактивное упражнение 1. Мой ответ - 119, но это неверно.