Advertisement
Guest User

Untitled

a guest
Mar 30th, 2020
89
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 9.35 KB | None | 0 0
  1. package entidades;
  2.  
  3. import java.awt.BorderLayout;
  4. import java.awt.EventQueue;
  5. import java.util.ArrayList;
  6. import java.util.Collections;
  7. import java.util.List;
  8. import java.util.Scanner;
  9.  
  10. import javax.swing.JFrame;
  11. import javax.swing.JPanel;
  12. import javax.swing.border.EmptyBorder;
  13. import javax.swing.JLabel;
  14.  
  15. public class Jogo extends JFrame {
  16.  
  17. private static JLabel carta1 = new JLabel("");
  18. private static JLabel carta2 = new JLabel("");
  19. private static JLabel carta3 = new JLabel("");
  20. private static JLabel carta4 = new JLabel("");
  21. private JPanel contentPane;
  22. public static Baralho baralho;
  23. public static Scanner sc = new Scanner(System.in);
  24. public static Jogador truco = new Jogador();
  25. public static List<Rodada> rodada = new ArrayList<>();
  26. public static List<Jogador> jogadores = new ArrayList<>();
  27. public static List<String> nomes = new ArrayList<>();
  28. public static String[] pesoDasCartas = { "4", "5", "6", "7", "Q", "J", "K", "A", "2", "3" };
  29. public static int pontosTimeParRodada = 0;
  30. public static int pontosTimeParTotal = 0;
  31. public static int pontosTimeImparRodada = 0;
  32. public static int pontosTimeImparTotal = 0;
  33. public static Carta vira = new Carta();
  34. public static Jogo frame = new Jogo();
  35. public static tela tela = new tela();
  36.  
  37. /**
  38. * Launch the application.
  39. */
  40. public static void main(String[] args) {
  41. EventQueue.invokeLater(new Runnable() {
  42. public void run() {
  43. try {
  44. darCartas();
  45. iniciarJogo();
  46.  
  47. } catch (Exception e) {
  48. e.printStackTrace();
  49. }
  50. }
  51. });
  52. }
  53.  
  54. /**
  55. * Create the frame.
  56. */
  57. public Jogo() {
  58. setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
  59. setBounds(100, 100, 450, 300);
  60. contentPane = new JPanel();
  61. contentPane.setBorder(new EmptyBorder(5, 5, 5, 5));
  62. setContentPane(contentPane);
  63. contentPane.setLayout(null);
  64.  
  65. JLabel lblNewLabel = new JLabel("Jogador 1");
  66. lblNewLabel.setBounds(193, 236, 65, 14);
  67. contentPane.add(lblNewLabel);
  68.  
  69. JLabel lblNewLabel_1 = new JLabel("Jogador 4");
  70. lblNewLabel_1.setBounds(10, 115, 65, 14);
  71. contentPane.add(lblNewLabel_1);
  72.  
  73. JLabel lblNewLabel_2 = new JLabel("Jogador 2");
  74. lblNewLabel_2.setBounds(378, 115, 46, 14);
  75. contentPane.add(lblNewLabel_2);
  76.  
  77. JLabel lblNewLabel_3 = new JLabel("Jogador 3");
  78. lblNewLabel_3.setBounds(193, 11, 65, 14);
  79. contentPane.add(lblNewLabel_3);
  80.  
  81.  
  82. carta1.setBounds(193, 179, 46, 14);
  83. contentPane.add(carta1);
  84.  
  85.  
  86. carta4.setBounds(111, 115, 46, 14);
  87. contentPane.add(carta4);
  88.  
  89.  
  90. carta2.setBounds(275, 115, 46, 14);
  91. contentPane.add(carta2);
  92.  
  93.  
  94. carta3.setBounds(193, 54, 46, 14);
  95. contentPane.add(carta3);
  96. }
  97.  
  98. private static String mostrarPlacar() {
  99. return "Time Par " + pontosTimeParTotal + " x " + pontosTimeImparTotal + " Time Impar";
  100. }
  101.  
  102. public static void iniciarJogo() {
  103.  
  104. verificaGanhadorUtilizandoACarta1();
  105. verificaGanhadorUtilizandoACarta2();
  106. if (pontosTimeParRodada == pontosTimeImparRodada) {
  107. verificaGanhadorUtilizandoACarta3();
  108. }
  109. verificaGanhadorDaRodada();
  110. limparRegistros();
  111. System.out.println(mostrarPlacar());
  112. }
  113.  
  114. private static void limparRegistros() {
  115. pontosTimeParRodada = 0;
  116. pontosTimeImparRodada = 0;
  117. jogadores.clear();
  118.  
  119. }
  120.  
  121. private static void verificaGanhadorDaRodada() {
  122. if (pontosTimeParRodada > pontosTimeImparRodada) {
  123. System.out.println("Time Par Venceu a Mão");
  124. pontosTimeParTotal++;
  125. } else if (pontosTimeParRodada < pontosTimeImparRodada) {
  126. System.out.println("Time Impar Venceu a Mão");
  127. pontosTimeImparTotal++;
  128. } else {
  129. System.out.println("Houve empate entre as 3 carta, rodada desconsiderada");
  130. }
  131.  
  132. }
  133.  
  134. private static void verificaGanhadorUtilizandoACarta3() {
  135. mostrarCartas3();
  136. List<Integer> pesos = new ArrayList<>();
  137. int empate = 0;
  138. String timeVencedor = "";
  139.  
  140. for (Jogador jog : jogadores) {
  141. rodada.add(new Rodada(defineTime(jog.time), definirPesos(jog.carta3)));
  142. pesos.add(definirPesos(jog.carta3));
  143. }
  144.  
  145. for (Rodada rod : rodada) {
  146.  
  147. if (rod.getPesoCarta() == Collections.max(pesos)) {
  148. timeVencedor = rod.getTime();
  149. empate++;
  150. }
  151. }
  152.  
  153. adicionarPontoRodada(verificaSeHouveEmpate(empate), timeVencedor);
  154. rodada.clear();
  155.  
  156. }
  157.  
  158. private static void verificaGanhadorUtilizandoACarta2() {
  159. mostrarCartas2();
  160. List<Integer> pesos = new ArrayList<>();
  161. int empate = 0;
  162. String timeVencedor = "";
  163.  
  164. for (Jogador jog : jogadores) {
  165. rodada.add(new Rodada(defineTime(jog.time), definirPesos(jog.carta2)));
  166. pesos.add(definirPesos(jog.carta2));
  167. }
  168.  
  169. for (Rodada rod : rodada) {
  170.  
  171. if (rod.getPesoCarta() == Collections.max(pesos)) {
  172. timeVencedor = rod.getTime();
  173. empate++;
  174. }
  175. }
  176.  
  177. adicionarPontoRodada(verificaSeHouveEmpate(empate), timeVencedor);
  178. rodada.clear();
  179. }
  180.  
  181. private static void verificaGanhadorUtilizandoACarta1() {
  182. mostrarCartas1();
  183. List<Integer> pesos = new ArrayList<>();
  184. int empate = 0;
  185. String timeVencedor = "";
  186. Integer nrodada = 1;
  187. cartasNaTela(nrodada);
  188. System.out.println(" sfafsfasf");
  189.  
  190. for (Jogador jog : jogadores) {
  191.  
  192. rodada.add(new Rodada(defineTime(jog.time), definirPesos(jog.carta1)));
  193. pesos.add(definirPesos(jog.carta1));
  194.  
  195. }
  196.  
  197. for (Rodada rod : rodada) {
  198.  
  199. if (rod.getPesoCarta() == Collections.max(pesos)) {
  200. timeVencedor = rod.getTime();
  201. empate++;
  202. }
  203. }
  204.  
  205. adicionarPontoRodada(verificaSeHouveEmpate(empate), timeVencedor);
  206. rodada.clear();
  207.  
  208. }
  209.  
  210. private static void cartasNaTela(Integer nrodada) {
  211. if (nrodada == 1) {
  212. for (Jogador jog : jogadores) {
  213. carta1.setText(jog.carta1.getCarta() + " " + jog.carta1.getNaipe());;
  214. }}else if (nrodada == 2){
  215. for (Jogador jog : jogadores) {
  216.  
  217. }}else {
  218. for (Jogador jog : jogadores) {
  219.  
  220. }
  221. }
  222. }
  223.  
  224.  
  225.  
  226. private static void adicionarPontoRodada(boolean verificaSeHouveEmpate, String timeVencedor) {
  227. if (verificaSeHouveEmpate == true) {
  228. System.out.println("Rodada Empatada");
  229. } else {
  230. adicionarPontoAoTimeRodada(timeVencedor);
  231. }
  232.  
  233. }
  234.  
  235. private static void adicionarPontoAoTimeRodada(String time) {
  236. if (time.equals("Time Par")) {
  237. pontosTimeParRodada++;
  238. System.out.println("Time Par venceu rodada de cartas");
  239. } else {
  240. pontosTimeImparRodada++;
  241. System.out.println("Time Impar venceu rodada de cartas");
  242. }
  243.  
  244. }
  245.  
  246. private static boolean verificaSeHouveEmpate(Integer empate) {
  247. if (empate > 1) {
  248. return true;
  249. } else {
  250. return false;
  251. }
  252.  
  253. }
  254.  
  255. private static String defineTime(Integer time) {
  256. if (time % 2 == 0) {
  257. return "Time Par";
  258. } else {
  259. return "Time Impar";
  260. }
  261. }
  262.  
  263. private static Integer definirPesos(Carta carta) {
  264.  
  265. int valorVira;
  266. valorVira = pesoDasCartas(vira.getCarta());
  267. int pesoDaCarta = 0;
  268.  
  269. pesoDaCarta = pesoDasCartas(carta.getCarta());
  270. if (pesoDaCarta == valorVira + 1 || (pesoDaCarta == 0 && valorVira == 9)) {
  271. pesoDaCarta = verificaNipe(carta.getNaipe());
  272. }
  273.  
  274. return pesoDaCarta;
  275.  
  276. }
  277.  
  278. private static int verificaNipe(String naipe) {
  279. switch (naipe) {
  280. case "Ouro":
  281. return 10;
  282. case "Espada":
  283. return 11;
  284. case "Copas":
  285. return 12;
  286. case "Paus":
  287. return 13;
  288. default:
  289. return 0;
  290. }
  291.  
  292. }
  293.  
  294. private static int pesoDasCartas(String carta) {
  295. int cont = 0;
  296. for (String peso : pesoDasCartas) {
  297. if (peso.equals(carta)) {
  298. return cont;
  299. }
  300. cont++;
  301. }
  302. return 0;
  303. }
  304.  
  305. /*
  306. * public static void inserirNomeJogadores() { for (int i = 1; i < 5; i++) {
  307. * System.out.println(i % 2 == 0 ? "Insira o jogador Nº" + i +
  308. * "! Pertencera ao time Par" : "Insira o jogador Nº" + i +
  309. * "! Pertencera ao time Impar"); String nome = sc.next();
  310. *
  311. * if (verificarNomesIguais(nome) == true) {
  312. * System.out.println("Não pode conter o mesmo nome, diferencie!!!"); i--; }
  313. * else { nomes.add(nome); System.out.println(nome + " cadastrado com sucesso");
  314. * }
  315. *
  316. * } }
  317. */
  318.  
  319. public static boolean verificarNomesIguais(String nome) {
  320. if (nomes.contains(nome)) {
  321. return true;
  322. } else {
  323. return false;
  324. }
  325. }
  326.  
  327. public static void darCartas() {
  328. baralho = new Baralho();
  329. truco.formarBaralhoDeTruco(baralho);
  330. baralho.embaralharCartas();
  331.  
  332. List<Carta> listAux = new ArrayList<>();
  333. int cont = 1;
  334.  
  335. for (String nome : tela.getNomes1()) {
  336. for (int i = 0; i < 3; i++) {
  337.  
  338. listAux.add(baralho.retirarCarta());
  339. }
  340.  
  341. jogadores.add(new Jogador(nome, listAux.get(0), listAux.get(1), listAux.get(2), cont));
  342. listAux.clear();
  343. cont++;
  344. }
  345.  
  346. vira = baralho.retirarCarta();
  347. System.out.println("Vira: " + vira.getCarta() + " " + vira.getNaipe());
  348. }
  349.  
  350. public static void mostrarCartas1() {
  351. List<Carta> listAux = new ArrayList<>();
  352.  
  353. for (Jogador jogador : jogadores) {
  354. System.out.println(
  355. jogador.getNome() + ": " + jogador.getCarta1().getCarta() + " " + jogador.getCarta1().getNaipe());
  356.  
  357. }
  358.  
  359. }
  360.  
  361. public static void mostrarCartas2() {
  362. List<Carta> listAux = new ArrayList<>();
  363.  
  364. for (Jogador jogador : jogadores) {
  365. System.out.println(
  366. jogador.getNome() + ": " + jogador.getCarta2().getCarta() + " " + jogador.getCarta2().getNaipe());
  367.  
  368. }
  369.  
  370. }
  371.  
  372. public static void mostrarCartas3() {
  373. List<Carta> listAux = new ArrayList<>();
  374.  
  375. for (Jogador jogador : jogadores) {
  376. System.out.println(
  377. jogador.getNome() + ": " + jogador.getCarta3().getCarta() + " " + jogador.getCarta3().getNaipe());
  378.  
  379. }
  380.  
  381. }
  382. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement