Curso POO Java

แชร์
ฝัง
  • เผยแพร่เมื่อ 7 ก.พ. 2025
  • Nessa aula de POO, vamos aprender como trabalhar com relacionamento entre classes criando Agregação na linguagem Java.
    Gostou da aula? Então torne-se um Gafanhoto APOIADOR do CursoemVídeo acessando o site apoie.me/cursoemvideo
    Nós do CursoemVideo sempre recomendamos assistir a aula completa, mas se quiser aprender diretamente uma parte específica, clique nos marcadores de tempo a seguir:
    0:19 - Qual é o assunto da aula?
    Aula do Curso de Programação Orientada a Objetos POO criado pelo professor Gustavo Guanabara para o portal CursoemVideo.com.
    Curso em Vídeo
    Seja um apoiador: apoie.me/cursoe...
    Site: www.cursoemvide...
    TH-cam: / cursoemvideo
    Facebook: / cursosemvideo
    Twitter: / cursosemvideo
    Google+: plus.google.com...
    Patrocínio
    HOSTNET: www.hostnet.com.br
    EDUCANDUS: www.sistemaeduc...
    GAFANHOTOS: apoie.me/cursoe...
    Ask Rufus de Audionautix está licenciada sob uma licença Creative Commons Attribution (creativecommon...)
    Artista: audionautix.com/

ความคิดเห็น • 243

  •  7 หลายเดือนก่อน

    Estude pelo nosso site e tire certificado de 40 horas. Curso completo em:
    www.cursoemvideo.com/curso/java-poo/

  • @marcossamuel4190
    @marcossamuel4190 6 ปีที่แล้ว +182

    Como em um RPG, determinei a vida de cada lutador com base na idade, força com base no peso e o critico com base na altura. E a cada soco, há a chance do acerto crítico, como dito, com base na altura, 30% de chance do adversário defender e 50% de chance de disparar um ataque normal.
    Depois fiz eles se lixarem até morrer e escrevi tudo como em pokemon. ficou assim:
    Obs: Tirei os métodos e variáveis de empate por que nesse caso um empate nunca iria ocorrer.
    Lutador Pretty Boy
    Origem França
    31 anos, é com 97 pontos de vida.
    1.75m de altura, é com 30 pontos de crítico.
    Pesando 68.9Kg, é com 9 pontos de força.
    Ganhou: 0
    Perdeu: 0
    Lutador PutsScript
    Origem Brasil
    29 anos, é com 103 pontos de vida.
    1.68m de altura, é com 29 pontos de crítico.
    Pesando 57.8Kg, é com 7 pontos de força.
    Ganhou: 0
    Perdeu: 0
    ~~~~~~ Pretty Boy X PutsScript ~~~~~~
    Pretty Boy acertou um golpe. (9)
    PutsScript esta com 94 de vida.
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 90 de vida.
    Pretty Boy acertou um golpe. (9)
    PutsScript esta com 85 de vida.
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 83 de vida.
    Pretty Boy acertou um golpe crítico. (18)
    PutsScript esta com 67 de vida.
    PutsScript acertou um golpe crítico. (14)
    Pretty Boy esta com 69 de vida.
    Pretty Boy acertou um golpe crítico. (18)
    PutsScript esta com 49 de vida.
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 62 de vida.
    Pretty Boy acertou um golpe. (9)
    PutsScript esta com 40 de vida.
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 55 de vida.
    PutsScript defendeu.
    Pretty Boy defendeu.
    Pretty Boy acertou um golpe. (9)
    PutsScript esta com 31 de vida.
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 48 de vida.
    Pretty Boy acertou um golpe. (9)
    PutsScript esta com 22 de vida.
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 41 de vida.
    Pretty Boy acertou um golpe. (9)
    PutsScript esta com 13 de vida.
    Pretty Boy defendeu.
    Pretty Boy acertou um golpe. (9)
    PutsScript esta com 4 de vida.
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 34 de vida.
    PutsScript defendeu.
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 27 de vida.
    Pretty Boy acertou um golpe. (9)
    PutsScript esta com -5 de vida.
    --------------------------------------------
    Pretty Boy venceu!
    Lutador PutsScript
    Origem Brasil
    29 anos, é com 103 pontos de vida.
    1.68m de altura, é com 29 pontos de crítico.
    Pesando 57.8Kg, é com 7 pontos de força.
    Ganhou: 0
    Perdeu: 1
    Lutador Pretty Boy
    Origem França
    31 anos, é com 97 pontos de vida.
    1.75m de altura, é com 30 pontos de crítico.
    Pesando 68.9Kg, é com 9 pontos de força.
    Ganhou: 1
    Perdeu: 0
    ~~~~~~ PutsScript X Pretty Boy ~~~~~~
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 90 de vida.
    Pretty Boy acertou um golpe. (9)
    PutsScript esta com 94 de vida.
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 83 de vida.
    Pretty Boy acertou um golpe crítico. (18)
    PutsScript esta com 76 de vida.
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 76 de vida.
    Pretty Boy acertou um golpe. (9)
    PutsScript esta com 67 de vida.
    Pretty Boy defendeu.
    PutsScript defendeu.
    PutsScript acertou um golpe crítico. (14)
    Pretty Boy esta com 62 de vida.
    PutsScript defendeu.
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 55 de vida.
    Pretty Boy acertou um golpe crítico. (18)
    PutsScript esta com 49 de vida.
    Pretty Boy defendeu.
    PutsScript defendeu.
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 48 de vida.
    Pretty Boy acertou um golpe crítico. (18)
    PutsScript esta com 31 de vida.
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 41 de vida.
    PutsScript defendeu.
    PutsScript acertou um golpe crítico. (14)
    Pretty Boy esta com 27 de vida.
    Pretty Boy acertou um golpe. (9)
    PutsScript esta com 22 de vida.
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 20 de vida.
    Pretty Boy acertou um golpe crítico. (18)
    PutsScript esta com 4 de vida.
    PutsScript acertou um golpe. (7)
    Pretty Boy esta com 13 de vida.
    Pretty Boy acertou um golpe. (9)
    PutsScript esta com -5 de vida.
    --------------------------------------------
    Pretty Boy venceu!
    Lutador SnapShadow
    Origem EUA
    35 anos, é com 86 pontos de vida.
    1.65m de altura, é com 28 pontos de crítico.
    Pesando 80.9Kg, é com 10 pontos de força.
    Ganhou: 0
    Perdeu: 0
    Lutador Dead Code
    Origem Austrália
    28 anos, é com 107 pontos de vida.
    1.93m de altura, é com 33 pontos de crítico.
    Pesando 81.6Kg, é com 10 pontos de força.
    Ganhou: 0
    Perdeu: 0
    ~~~~~~ SnapShadow X Dead Code ~~~~~~
    SnapShadow acertou um golpe crítico. (20)
    Dead Code esta com 87 de vida.
    Dead Code acertou um golpe crítico. (20)
    SnapShadow esta com 66 de vida.
    SnapShadow acertou um golpe crítico. (20)
    Dead Code esta com 67 de vida.
    Dead Code acertou um golpe crítico. (20)
    SnapShadow esta com 46 de vida.
    SnapShadow acertou um golpe. (10)
    Dead Code esta com 57 de vida.
    Dead Code acertou um golpe crítico. (20)
    SnapShadow esta com 26 de vida.
    SnapShadow acertou um golpe crítico. (20)
    Dead Code esta com 37 de vida.
    Dead Code acertou um golpe crítico. (20)
    SnapShadow esta com 6 de vida.
    SnapShadow acertou um golpe. (10)
    Dead Code esta com 27 de vida.
    SnapShadow defendeu.
    Dead Code defendeu.
    Dead Code acertou um golpe. (10)
    SnapShadow esta com -4 de vida.
    --------------------------------------------
    Dead Code venceu!
    Lutador Dead Code
    Origem Austrália
    28 anos, é com 107 pontos de vida.
    1.93m de altura, é com 33 pontos de crítico.
    Pesando 81.6Kg, é com 10 pontos de força.
    Ganhou: 1
    Perdeu: 0
    Lutador SnapShadow
    Origem EUA
    35 anos, é com 86 pontos de vida.
    1.65m de altura, é com 28 pontos de crítico.
    Pesando 80.9Kg, é com 10 pontos de força.
    Ganhou: 0
    Perdeu: 1
    ~~~~~~ Dead Code X SnapShadow ~~~~~~
    SnapShadow defendeu.
    SnapShadow acertou um golpe crítico. (20)
    Dead Code esta com 87 de vida.
    Dead Code acertou um golpe. (10)
    SnapShadow esta com 76 de vida.
    SnapShadow acertou um golpe. (10)
    Dead Code esta com 77 de vida.
    Dead Code acertou um golpe crítico. (20)
    SnapShadow esta com 56 de vida.
    SnapShadow acertou um golpe. (10)
    Dead Code esta com 67 de vida.
    Dead Code acertou um golpe. (10)
    SnapShadow esta com 46 de vida.
    SnapShadow acertou um golpe. (10)
    Dead Code esta com 57 de vida.
    Dead Code acertou um golpe crítico. (20)
    SnapShadow esta com 26 de vida.
    SnapShadow acertou um golpe. (10)
    Dead Code esta com 47 de vida.
    SnapShadow defendeu.
    SnapShadow acertou um golpe crítico. (20)
    Dead Code esta com 27 de vida.
    Dead Code acertou um golpe. (10)
    SnapShadow esta com 16 de vida.
    SnapShadow acertou um golpe crítico. (20)
    Dead Code esta com 7 de vida.
    Dead Code acertou um golpe crítico. (20)
    SnapShadow esta com -4 de vida.
    --------------------------------------------
    Dead Code venceu!
    Lutador UFOCobol
    Origem Brasil
    37 anos, é com 81 pontos de vida.
    1.7m de altura, é com 29 pontos de crítico.
    Pesando 119.3Kg, é com 15 pontos de força.
    Ganhou: 0
    Perdeu: 0
    Lutador Nerdaart
    Origem EUA
    30 anos, é com 100 pontos de vida.
    1.81m de altura, é com 31 pontos de crítico.
    Pesando 105.7Kg, é com 13 pontos de força.
    Ganhou: 0
    Perdeu: 0
    ~~~~~~ UFOCobol X Nerdaart ~~~~~~
    UFOCobol acertou um golpe. (15)
    Nerdaart esta com 85 de vida.
    Nerdaart acertou um golpe. (13)
    UFOCobol esta com 68 de vida.
    UFOCobol acertou um golpe. (15)
    Nerdaart esta com 70 de vida.
    Nerdaart acertou um golpe crítico. (26)
    UFOCobol esta com 42 de vida.
    UFOCobol acertou um golpe. (15)
    Nerdaart esta com 55 de vida.
    UFOCobol defendeu.
    UFOCobol acertou um golpe. (15)
    Nerdaart esta com 40 de vida.
    Nerdaart acertou um golpe crítico. (26)
    UFOCobol esta com 16 de vida.
    UFOCobol acertou um golpe crítico. (30)
    Nerdaart esta com 10 de vida.
    Nerdaart acertou um golpe. (13)
    UFOCobol esta com 3 de vida.
    Nerdaart defendeu.
    Nerdaart acertou um golpe. (13)
    UFOCobol esta com -10 de vida.
    --------------------------------------------
    Nerdaart venceu!
    Lutador Nerdaart
    Origem EUA
    30 anos, é com 100 pontos de vida.
    1.81m de altura, é com 31 pontos de crítico.
    Pesando 105.7Kg, é com 13 pontos de força.
    Ganhou: 1
    Perdeu: 0
    Lutador UFOCobol
    Origem Brasil
    37 anos, é com 81 pontos de vida.
    1.7m de altura, é com 29 pontos de crítico.
    Pesando 119.3Kg, é com 15 pontos de força.
    Ganhou: 0
    Perdeu: 1
    ~~~~~~ Nerdaart X UFOCobol ~~~~~~
    UFOCobol defendeu.
    Nerdaart defendeu.
    Nerdaart acertou um golpe. (13)
    UFOCobol esta com 68 de vida.
    UFOCobol acertou um golpe. (15)
    Nerdaart esta com 85 de vida.
    Nerdaart acertou um golpe. (13)
    UFOCobol esta com 55 de vida.
    UFOCobol acertou um golpe crítico. (30)
    Nerdaart esta com 55 de vida.
    UFOCobol defendeu.
    UFOCobol acertou um golpe. (15)
    Nerdaart esta com 40 de vida.
    UFOCobol defendeu.
    UFOCobol acertou um golpe. (15)
    Nerdaart esta com 25 de vida.
    Nerdaart acertou um golpe. (13)
    UFOCobol esta com 42 de vida.
    UFOCobol acertou um golpe crítico. (30)
    Nerdaart esta com -5 de vida.
    --------------------------------------------
    UFOCobol venceu!
    CONSTRUÍDO COM SUCESSO (tempo total: 0 segundos)

    • @henriquefranzin
      @henriquefranzin 4 ปีที่แล้ว +5

      Manda o código da luta aí !!

    • @miguelsantosdasilva4070
      @miguelsantosdasilva4070 4 ปีที่แล้ว +25

      ​@@henriquefranzin
      Fiz o meu baseado na interface dele, mas o sistema de contagem de vida e afins estao diferentes.
      public void lutar(){
      // Preechendo Atributos de Batalha

      // Desafiado
      int pvDesafiado = (this.getDesafiado().getIdade() * 5);
      int forcaDesafiado = (int)(this.getDesafiado().getPeso()/4);
      int defDesafiado = (int) (this.getDesafiado().getAltura()/0.1);

      //Desafiante
      int pvDesafiante = (this.getDesafiante().getIdade() * 5);
      int forcaDesafiante = (int)(this.getDesafiante().getPeso()/4);
      int defDesafiante = (int)(this.getDesafiante().getAltura()/0.1);
      // Outras variaveis.
      boolean turno = true;
      Random d6 = new Random();
      int golpe, proteger,dano,rolagem;

      if (this.isAprovada()) {
      this.getDesafiado().apresentar();
      this.getDesafiante().apresentar();
      System.out.println("
      ~========== "+getDesafiado().getNome() +
      " X "+getDesafiante().getNome()+" ==========~");
      System.out.println(getDesafiado().getNome()+" pv = "+pvDesafiado);
      System.out.println(getDesafiante().getNome()+" pv = "+pvDesafiante+"
      ");
      do{

      // Contando o turno de cada lutador.
      if(turno == true){
      // Rolagem de ataque.
      rolagem = d6.nextInt(7);
      switch(rolagem){
      case 6:
      golpe = (rolagem + forcaDesafiado) * 2;
      System.out.println("Um acerto Crítico ! ");
      break;

      default :
      golpe = rolagem + forcaDesafiado;
      break;
      }

      //Rolagem de defesa
      rolagem = d6.nextInt(7);
      switch(rolagem){
      case 6:
      proteger = (rolagem + defDesafiante) * 2;
      System.out.println(" Uma defesa Crítica ! ");
      break;

      default :
      proteger = rolagem + defDesafiante;
      break;
      }
      // Interface de acerto ou não.
      dano = golpe - proteger;
      if (dano > 0) {
      pvDesafiante -= dano;
      System.out.println(getDesafiado().getNome()+" acertou um golpe! ("+dano+")");
      System.out.println(getDesafiante().getNome()+" esta com "+pvDesafiante+" pontos de vida!
      ");
      } else {
      System.out.println(getDesafiado().getNome()+" lançou um golpe!");
      System.out.println(getDesafiante().getNome()+" esquivou !
      ");
      }

      turno = false;
      } else {
      // Turno de ataque do desafiante
      rolagem = d6.nextInt(7);
      switch(rolagem){
      case 6:
      golpe = (rolagem + forcaDesafiante) * 2;
      System.out.println("Um acerto Crítico ! ");
      break;

      default :
      golpe = rolagem + forcaDesafiante;
      break;
      }

      //Rolagem de defesa
      rolagem = d6.nextInt(7);
      switch(rolagem){
      case 6:
      proteger = (rolagem + defDesafiado) * 2;
      System.out.println(" Uma defesa Crítica ! ");
      break;

      default :
      proteger = rolagem + defDesafiado;
      break;
      }
      // Interface de acerto ou não.
      dano = golpe - proteger;
      if (dano > 0) {
      pvDesafiado -= dano;
      System.out.println(getDesafiante().getNome()+" acertou um golpe! ("+dano+")");
      System.out.println(getDesafiado().getNome()+" esta com "+pvDesafiado+" pontos de vida!
      ");
      } else {
      System.out.println(getDesafiante().getNome()+" lançou um golpe!");
      System.out.println(getDesafiado().getNome()+" esquivou !
      ");
      }

      turno = true;
      }
      }while(pvDesafiado > 0 && pvDesafiante > 0);

      //atualizando dados dos lutadores.
      if (pvDesafiado < 0 ) {
      System.out.println("Vitória de "+getDesafiante().getNome()+" !");
      this.getDesafiado().perderLuta();
      this.getDesafiante().ganharLuta();
      System.out.println("Atualizando status: ");
      this.getDesafiante().status();
      } else {
      System.out.println("Vitória de "+getDesafiado().getNome()+" !");
      this.getDesafiante().perderLuta();
      this.getDesafiado().ganharLuta();
      System.out.println("Atualizando status: ");
      this.getDesafiado().status();

      }

      } else {
      System.out.println("Luta não pode acontecer. ");
      }

      }
      Espero que de uma luz :)

    • @vitsouza
      @vitsouza 3 ปีที่แล้ว +12

      Um dia espero poder programar com toda essa complexidade! Parabéns!

    • @matheusguedes5742
      @matheusguedes5742 2 ปีที่แล้ว +3

      que ótima ideia, parabéns pela criatividade.

    • @Pain121212
      @Pain121212 2 ปีที่แล้ว +3

      @@miguelsantosdasilva4070. Genial a idéia meu caro!! Implementei no meu código aqui e o resultado foi espetacular!!

  • @israelbraga7310
    @israelbraga7310 4 ปีที่แล้ว +122

    Assitindo em 2020!!
    Mais alguém?? da um jóia ai!
    Ótimas aulas Professor! Parabéns e que Deus te abençõe muito!!

    • @LucasAlvarenga2024
      @LucasAlvarenga2024 4 ปีที่แล้ว +2

      Tmj durante o covid

    • @cristiangomeslara
      @cristiangomeslara 4 ปีที่แล้ว +3

      assistindo em 12/06. Namorando JAVA!!!!!

    • @WesleyZilva
      @WesleyZilva 4 ปีที่แล้ว

      to até publicando no git meu código... github.com/wesleyzilva/relacionamentoentreclasses vou construir um estudo de relacionamento de classes usando ClasseDosHomes e ClasseDasMulheres em um casamento kkkk

    • @Nick-jz2lc
      @Nick-jz2lc 4 ปีที่แล้ว +1

      É NOIS CACHORRO

    • @weideCJ
      @weideCJ 4 ปีที่แล้ว

      Eu também rsrs

  • @IAGOSUZARTSILVA
    @IAGOSUZARTSILVA ปีที่แล้ว +6

    Deixando minha marca de que vivenciei a época em que o MELHOR professor que ja existiu. Simplesmente o mais sensacional. Muito obrigado por tornar programação (e TI em geral) matérias tão divertidas e incriveis que ja vi. Fico feliz em vivenciar essa incrível experiência que é aprender com ele. Serei um eterno pequeno gafanhoto!

  • @hydbr3113
    @hydbr3113 2 ปีที่แล้ว +9

    assistindo aqui em 2022 essas aulas incriveis! Obrigada Guanabara!

  • @MaiconAlexandreS
    @MaiconAlexandreS 2 หลายเดือนก่อน

    Estou deixando aqui meus agradecimentos ao professor!! Pois no meu intervalo do trabalho resolvi praticar e usei como alvo criar um objeto MOUSE, onde possuía as funções click esquerdo, clique direito, diminuir sensibilidade e aumentar sensibilidade.
    Usei validações para quando os botões fossem pressionados(true) aumentaria ou diminuiria o valor da sensibilidade, que ficou como default 100.
    Os botões de click eu apenas fiz aparecer uma mensagem de "Clique esquerdo" e "clique direito" na tela.
    Por mais que tenho sido simples, eu fiquei muito feliz em conseguir fazer isso sozinho.
    Também criei uma interface para os métodos.
    É gratificante ver como estou evoluindo graças ao Guanabara ter uma didática excelente.❤❤🎉🎉🎉🎉

  • @Gugao31
    @Gugao31 7 ปีที่แล้ว +21

    Montei um exemplo bem simples e razo, basicamente é considerado a altura, peso e idade dos lutadores, com um leve toque de sorte.
    Bem, criei 3 variáveis chamadas "experiencia", "Forca", "Velocidade", todas começando com uma pontuação de 5, e no próprio método lutar eu fiz alguns ifs: se o lutador é maior que o outro, ele ganha 2 de força e perde 1 de velocidade (se ele for menor ele perde 2 de força e ganha 1 de velocidade e vice-versa), se o lutador é mais velho, ele ganha 3 de experiencia e perde 1 de velocidade e 1 de força(os pontos de experiencia do lutador menos experiente é mantido), e se o lutador é mais pesado que o outro, ele ganha 1 de força e perde 2 de velocidade. Depois que todos esses pontos são somados em duas variáveis: vantagemDesafiante e vantagemDesafiado.
    Mas eu não considerei apenas a vantagem para vencer ou não, pois em muitas lutas nem sempre quem tem vantagem ganha. Pois bem, fiz um random sorte de 0 a 3, sendo 0 nenhum dos jogadores possuindo sorte e sendo considerado apenas a vantagem, 1 o desafiado vence, e 2 o desafiante vence.
    No método principal é solicitado que escolha 2 lutadores, logo após isso é mostrado o resultado:
    ---------------------------------------------
    Na classe "Lutador" eu acrescentei os atributos:
    private int experiencia, velocidade, forca;(com getter e setter)
    ----------------------------------------------
    Aqui a classe "Luta":
    package ultraemojicombat;
    import java.util.Random;
    public class Luta {
    //atributos
    private Lutador desafiado, desafiante;
    private int rounds, vantagemDesafiante, vantagemDesafiado;
    private boolean aprovada = false;
    //metodos publicos
    public void marcarLuta(Lutador l1, Lutador l2){
    if(l1.getCategoria().equals(l2.getCategoria()) && l1 != l2){
    aprovada = true;
    desafiado = l1;
    desafiante = l2;
    }else{
    aprovada = false;
    desafiado = null;
    desafiante = null;
    }
    }
    public void lutar(){
    if(this.aprovada){
    System.out.println("### DESAFIADO ###");
    this.desafiado.apresentar();
    System.out.println("### DESAFIANTE ###");
    this.desafiante.apresentar();
    System.out.println("### RESULTADO ###");
    System.out.println("-------------------------------------------------------");
    //considerando vantagens
    //Altura: se o desafiante é maior, ele ganha 2 de força e perde 1 de velocidade, e vice-versa.
    if(this.desafiado.getAltura() > this.desafiante.getAltura()){
    this.desafiante.setVelocidade(this.desafiante.getVelocidade()+1);
    this.desafiante.setForca(this.desafiante.getForca()-2);
    this.desafiado.setForca(this.desafiado.getForca()+2);
    this.desafiado.setVelocidade(this.desafiado.getVelocidade()-1);
    }else if(this.desafiante.getAltura() > this.desafiado.getAltura()){
    this.desafiado.setVelocidade(this.desafiado.getVelocidade()+1);
    this.desafiado.setForca(this.desafiado.getForca()-2);
    this.desafiante.setVelocidade(this.desafiante.getVelocidade()-1);
    this.desafiante.setForca(this.desafiante.getForca()+2);
    }
    //Idade: Se o desafiante é mais Velho, ele ganha 3 de experiencia, mas perde 1 de velocidade e força
    if(this.desafiado.getIdade() > this.desafiante.getIdade()){
    this.desafiado.setExperiencia(this.desafiado.getExperiencia()+3);
    this.desafiado.setForca(this.desafiado.getForca()-1);
    this.desafiado.setVelocidade(this.desafiado.getVelocidade()-1);
    }else if(this.desafiante.getIdade() > this.desafiado.getIdade()){
    this.desafiante.setExperiencia(this.desafiado.getExperiencia()+3);
    this.desafiante.setForca(this.desafiante.getForca()-1);
    this.desafiante.setVelocidade(this.desafiante.getVelocidade()-1);
    }
    //Peso: Se o desafiante é mais pesado, ele ganha 1 de força e perde 2 velocidade
    if(this.desafiado.getPeso() > this.desafiante.getPeso()){
    this.desafiado.setForca(this.desafiado.getForca()+1);
    this.desafiado.setVelocidade(this.desafiado.getVelocidade()-2);
    this.desafiante.setForca(this.desafiante.getForca()-1);
    this.desafiante.setVelocidade(this.desafiante.getVelocidade()+2);
    }else if(this.desafiante.getPeso() > this.desafiado.getPeso()){
    this.desafiante.setForca(this.desafiante.getForca()+1);
    this.desafiante.setVelocidade(this.desafiante.getVelocidade()-2);
    this.desafiado.setForca(this.desafiado.getForca()-1);
    this.desafiado.setVelocidade(this.desafiado.getVelocidade()+2);
    }
    this.vantagemDesafiante = this.desafiante.getForca()+this.desafiante.getExperiencia()+this.desafiante.getVelocidade();
    this.vantagemDesafiado = this.desafiado.getForca()+this.desafiado.getExperiencia()+this.desafiado.getVelocidade();
    Random sorte = new Random();
    int vencedor = sorte.nextInt(3);//vai escolher valores aleatorios de 0 1 2
    switch(vencedor){
    case 0: // Nenhum dos jogadores está com sorte
    if(this.vantagemDesafiante > this.vantagemDesafiado){
    System.out.println("O desafiante " + this.desafiante.getNome() + " venceu!");
    this.desafiante.ganharLuta();
    this.desafiado.perderLuta();
    }else if(this.vantagemDesafiado > this.vantagemDesafiante){
    System.out.println("O desafiado " + this.desafiado.getNome() + " venceu!");
    this.desafiado.ganharLuta();
    this.desafiante.perderLuta();
    }else{
    System.out.println("Empatou!");
    this.desafiante.empatarLuta();
    this.desafiado.empatarLuta();
    }
    break;
    case 1: // Desafiado está com sorte
    System.out.println("Que sorte!!!!");
    System.out.println("O desafiado " + this.desafiado.getNome() + " Venceu!");
    this.desafiado.ganharLuta();
    this.desafiante.perderLuta();
    break;
    case 2: // Desafiante está com sorte
    System.out.println("Que sorte!!!!");
    System.out.println("O desafiante " + this.desafiante.getNome() + " Venceu!");
    this.desafiante.ganharLuta();
    this.desafiado.perderLuta();
    break;
    }
    System.out.println("-------------------------------------------------------");
    }else{
    System.out.println("A luta não pode acontecer");
    }
    }
    //metodos especiais
    public Lutador getDesafiado() {
    return desafiado;
    }
    public void setDesafiado(Lutador desafiado) {
    this.desafiado = desafiado;
    }
    public Lutador getDesafiante() {
    return desafiante;
    }
    public void setDesafiante(Lutador desafiante) {
    this.desafiante = desafiante;
    }
    public int getRounds() {
    return rounds;
    }
    public void setRounds(int rounds) {
    this.rounds = rounds;
    }
    public boolean isAprovada() {
    return aprovada;
    }
    public void setAprovada(boolean aprovada) {
    this.aprovada = aprovada;
    }
    }
    ------------------------------------------------------------
    e aqui o metodo principal:
    --------------------------------------------------------------
    package ultraemojicombat;
    import java.util.Scanner;
    public class UltraEmojiCombat {
    public static void main(String[] args) {
    int es1, es2;
    Scanner ler = new Scanner(System.in);
    Lutador l[] = new Lutador[6];
    l[0] = new Lutador("Pretty boy", "França", 31, 11, 2, 1, 1.75f, 68.9f);
    l[1] = new Lutador("Putscript", "Brasil", 29, 14, 2, 3, 1.68f, 57.8f);
    l[2] = new Lutador("Snapshadow", "EUA", 35, 12, 2, 1, 1.65f, 80.9f);
    l[3] = new Lutador("Dead Code", "Australia", 28, 13, 0, 2, 1.93f, 82.6f);
    l[4] = new Lutador("UFOCobol", "Brasil", 37, 5, 4, 3, 1.70f, 119.3f);
    l[5] = new Lutador("Nerdaart", "EUA", 30, 12, 2, 4, 1.81f, 105.7f);
    System.out.println("### LUTADORES ###");
    System.out.println("0 - Pretty boy
    1 - Putscript
    2 - Snapshadow
    3 - Dead Code
    4 - UFOCobol
    5 - Nerdaart");
    System.out.println("Escolha o desafiado: ");
    es1 = ler.nextInt();
    System.out.println("Escolha o desafiante: ");
    es2 = ler.nextInt();
    Luta UEC01 = new Luta();
    UEC01.marcarLuta(l[es1], l[es2]);
    UEC01.lutar();
    }
    }

  • @brunocamara1220
    @brunocamara1220 3 ปีที่แล้ว +6

    Assistindo em 2021!
    Mais alguém? deixa like ai!
    Aula Incrivel!!!

  • @OGaldinoOficial
    @OGaldinoOficial 8 ปีที่แล้ว +16

    Quando vejo seus vídeos penso que pessoas como você faz a diferença em tudo. Tenho a sorte de estudar em uma instituição que há professores com essa dedicação.
    Parabéns continue assim.
    Até porque precisamos apreender novas linguagens de programação!!!

  • @StefanoDarkWolf
    @StefanoDarkWolf 8 ปีที่แล้ว +17

    Incrível cara, a qualidade das aulas estão muito boas, estão diretas sem perder dinâmica, e fáceis de aprender, parabéns pelo trabalho, e obrigado por continuar compartilhando conhecimento desta comunidade que ainda tem poucos tutoriais tão bons como este!

  • @dahanschuster631
    @dahanschuster631 6 ปีที่แล้ว +14

    Fiz o código na aula anterior, pausando o vídeo enquanto ia mostrando o algoritmo. Quando mostrou as regras, tentei fazer do meu jeito, e saída ficou assim:
    O DESAFIADO:
    Lutador: Snapshadow
    Nacional de: EUA
    35 anos
    Medindo 1.65m de altura
    Pesando cerca de 792,8 Newtons
    Da categoria Peso Médio
    Venceu 12 lutas
    Perdeu 2
    Empatou 1
    O DESAFIANTE:
    Lutador: Dead Code
    Nacional de: Austrália
    28 anos
    Medindo 1.93m de altura
    Pesando cerca de 799,7 Newtons
    Da categoria Peso Médio
    Venceu 13 lutas
    Perdeu 0
    Empatou 2
    Snapshadow ganhou o 1º Round!
    Dead Code ganhou o 2º Round!
    Snapshadow ganhou o 3º Round!
    Snapshadow ganhou o 4º Round!
    ================
    Snapshadow, o desafiado, GANHOU!
    Snapshadow é um Peso Médio
    Ganhou 13 vezes
    Perdeu 2 vezes
    Empatou 1 vezes
    ----------------
    Dead Code é um Peso Médio
    Ganhou 13 vezes
    Perdeu 1 vezes
    Empatou 2 vezes
    Digam suas opiniões! :)

  • @vaneskakaren9440
    @vaneskakaren9440 2 ปีที่แล้ว +3

    Engraçado as voltas que a vida dá. Aprendi POO+Java aqui em 2015 no ensino medio e cá estou eu, pleno 7o semestre aqui novamente hahaha. Obg cursoemvideo por salvar minhas formações :P

  • @servodeCRISTOeternamente
    @servodeCRISTOeternamente 8 ปีที่แล้ว +24

    que aula incrível, Fique com Deus Professor Guanabara

  • @ManualMedieval
    @ManualMedieval 6 ปีที่แล้ว +22

    08:00 - Estou aprendendo POO sem a base do Java, e sem enfrentar demais problemas. Tive uma base muito boa em C na faculdade e o Java é assustadoramente parecido.

    • @lllAlxzlll
      @lllAlxzlll 3 ปีที่แล้ว

      também não tenho, mas por conta de ter estudado um pouco de c++ e python da para entender.

    • @xaolinmatadordeporco1660
      @xaolinmatadordeporco1660 2 ปีที่แล้ว

      simmm, aconteceu comigo também irmão, aprendi C na faculdade, porem apenas com o video em curso to realmente aprendendo JAVA de verdade, parece bem mais fácil do que em aula de faculdade!

  • @opaichegoufmljorgejunior263
    @opaichegoufmljorgejunior263 ปีที่แล้ว +2

    estou vendo uns comentários antigos (antigos = 1/2 anos atrás), e tenho vontade perguntar se estão trabalhando, então quem estiver vendo meu comentário, e estiver curioso ver se valeu apena estudar esse conteúdo para usar como parâmetro de "sucesso" na área, só perguntar

  • @thiagoandreqi
    @thiagoandreqi 8 ปีที่แล้ว +4

    Parabéns GG!
    Sempre apresento suas aulas para os meus alunos, isso ajuda muito, porque eles podem tirar dúvidas em casa com a melhor qualidade do mercado.

  • @peterdmitrukjunior6427
    @peterdmitrukjunior6427 8 หลายเดือนก่อน

    O que eu ewtou fazendo é salvando todos esses projetos basicos para depois que concluir o curso eu posso melhorar todos os peojetos e compartilhar meu github aberto para que todos possam testar e melhorar os projetos tmj professor MELHOR PROFESSOR DO MUNDO!!!

  • @CaioMizerkowski
    @CaioMizerkowski 8 ปีที่แล้ว +3

    Qualidade e didática incríveis, consegue fazer tudo parecer extremamente simples.

  • @NilsonAdos
    @NilsonAdos 8 ปีที่แล้ว +4

    Extremamente didático só não estudar quem realmente não quer. Parabéns Guanabara. Apesar do resultado das lutas serem aleatórias a principio, o mais importante foi ensinado - A relação entre Objetos - Valewwwww.

  • @account-vj2tx
    @account-vj2tx 7 ปีที่แล้ว

    Criei um atributo premio depois os seu getter e setter e um metodo pagarPremio e adicionei no ganhar a luta e atualizei com o this.premio dentro do status e depois da luta ele adiciona o premio para quem ganhou! O incrível e que adicionei tudo com a maior naturalidade e no primeiro teste depois que atualizei o status deu certo!! Obrigado pelo curso!

  • @fabianoazedias7843
    @fabianoazedias7843 3 ปีที่แล้ว

    assistindo em 2021 e entendendo POO, da hora demais esse ufc , melhor didática q existe, logo estarei no curso de python uhull

  • @TadeuEspindolaPalermo
    @TadeuEspindolaPalermo 8 ปีที่แล้ว +1

    Show de bola! Ansioso a espera do curso de Python! Parabéns! Guanabara você faz a diferença no mundo da programação, seu exímio trabalho faz crescer cada vez mais o mundo da TI!!!!!!!!!!!!!!!!

  • @account-vj2tx
    @account-vj2tx 7 ปีที่แล้ว

    ASSISTINDO EM 2018 E MUITO FELIZ E TRISTE POR NÃO TER ACHADO ESSE CURSO ANTES!!! PARABÉNS!!

  • @PauloArthur1998
    @PauloArthur1998 8 ปีที่แล้ว

    No meu programa defini os atributos de cada lutador e se é homem ou mulher. Ficou bem no estilo rpg e a vitória pode ser possível mesmo se um lutador for mais fraco que o outro se o valor dos atributos sorte e força de vontade dele forem altos (são gerados aleatoriamente).
    Muito obrigado pela aula, Guanabara! Até agora essa foi a melhor aula pratica do curso!

  • @paulomoura4459
    @paulomoura4459 7 ปีที่แล้ว

    Estou amando POO! Obrigado prof.Guanabara que está tendo essa paciência de ensinar de um modo bem divertido.

  • @CarolCastro1
    @CarolCastro1 7 ปีที่แล้ว

    Guanabara cada dia suas aulas me motivam mais a aprender Java!
    Parabéns por esse projeto.

  • @AndersonMarquesss
    @AndersonMarquesss 7 ปีที่แล้ว

    Estava travado na parte do switch, havia esquecido o break e olha que eu fiz o curso de java. acho que da minha parte faltou praticar mais o switch.
    Agora está tudo certo, o sistema de luta funcionou perfeitamente.

  • @brenoloa
    @brenoloa 5 หลายเดือนก่อน

    uma sugestão de aleatoriedade é criar + cases exemplo
    com 3 cases cada resultado tem 33% de chance de acontecer
    mas se por exemplo eu aumento pra 9 cases e coloco 3 resultados pra cada um
    a chance de acontecer mais aleatoriedade é maior, se você testar com um for os 3 cases quase sempre cada resultado vai ter em média 300+
    ja com o dobro de cases a aleatoriedade ja muda.
    quanto mais cases mais aleatoriedade

  • @LucasAlvarenga2024
    @LucasAlvarenga2024 4 ปีที่แล้ว +1

    Estou com dificuldades em um curso e como sempre vim buscar ajuda com mestre Guanabara

  • @educacaotecnologiaemusica-3750
    @educacaotecnologiaemusica-3750 8 ปีที่แล้ว

    Parabéns, professor Guanabara. Uma aula incrível. Clareza, ótima didática, objetividade e recursos visuais.

  •  8 ปีที่แล้ว +8

    Pra deixar o resultado da luta dependente de outros fatores, bolei duas variáveis "hand1" e "hand2", que seriam o handicap de cada lutador. Comparo o peso de ambos, a altura de ambos, o número de vitórias e de derrotas e atribuo a cada critério um determinado fator (1 para peso e altura, 2 para derrotas e 3 para vitórias, por exemplo). Somo isso pra cada lutador e aí sim gero um número aleatório para cada um, com fator 5, por exemplo. Somo tudo nas variáveis e comparo ambas. Se o valor de "hand1" for maior, ganhou o lutador 1. Se o valor de "hand 2" é maior, ganhou o lutador 2. Se forem iguais, deu empate.

    • @alexandreoliveira7356
      @alexandreoliveira7356 8 ปีที่แล้ว

      Gostei da sua ideia, man.
      Achei bem interessante essa questão de dar "pesos" diferentes para cada vantagem que o lutador tem.

  • @ferfigvirgilio
    @ferfigvirgilio 4 ปีที่แล้ว +1

    Otimo curso!! Parabens professor! ta ficando dificil para quem eh iniciante como eu, mas estou tendo uma boa base pratica coisa que na minha faculdade nao tem

  • @CaiodeMatosVital
    @CaiodeMatosVital 3 ปีที่แล้ว +2

    Estudando aqui em 2021! Excelente!

  • @maximilianocechettoreinert7218
    @maximilianocechettoreinert7218 ปีที่แล้ว +2

    Assitindo em Agosto/2023!!
    Mais alguém?? da um jóia ai! kkkkk

  • @gusmi23
    @gusmi23 7 ปีที่แล้ว +6

    Montei um onde o código gera uma qtd de energia(6) para cada lutador, e existem 2 tipos de golpe: o soco (que tira 1 ponto de energia) e a finalização (que tira toda energia). Os golpes são gerados de forma aleatória (o soco acontece de 3/4 e a finalização de 1/4), o o lutador que difere o golpe tbm é escolhido de forma aleatória.
    Qndo o lutador perde toda energia, ele perde a luta.
    É demonstrado toda vez que um lutador soca ou finaliza a luta, e no final, é mostrado o nome do lutador e sua energia restante.
    package poo.ultimateemojincombat;
    import java.util.Random;
    public class Luta {
    private Lutador desafiante, desafiado;
    private int rounds, vencedor, golpe, fighter, energia0, energia1;
    private boolean aprovada;
    Random n = new Random();
    public void marcarLuta(Lutador l1, Lutador l2) {
    if (l1.getCategoria().equals(l2.getCategoria()) && !l1.equals(l2)) {
    this.aprovada = true;
    this.desafiante = l1;
    this.desafiado = l2;
    System.out.println("DESAFIANTE: " + this.desafiante.getNome());
    System.out.println("DESAFIADO: " + this.desafiado.getNome());
    System.out.println("");
    } else {
    this.aprovada = false;
    this.desafiante = null;
    this.desafiado = null;
    }
    }
    public void lutar2() {
    if (this.getAprovada()) {
    System.out.println("=== DESAFIADO ===");
    this.getDesafiado().apresentar();
    System.out.println("=== DESAFIANTE ===");
    this.getDesafiante().apresentar();
    this.energia0 = 6;
    this.energia1 = 6;
    System.out.println("Começou a luta!!");
    System.out.println("------------------------------");
    System.out.print("Energia do " + this.getDesafiado().getNome()+ ": ");
    for (int c=0; c0)) {
    this.fighter = n.nextInt(2);
    switch (this.fighter) {
    case 0:
    this.golpe = n.nextInt(4);
    if ((this.golpe==0) || (this.golpe==1) || (this.golpe==2)) {
    this.energia1-=1;
    System.out.println(this.desafiante.getNome() + " socou o " + this.desafiado.getNome());
    } else {
    this.energia1 = 0;
    System.out.println(this.desafiante.getNome() + " FINALIZOU o " + this.desafiado.getNome());
    break;
    }
    break;
    default:
    this.golpe = n.nextInt(2);
    if ((this.golpe==0) || (this.golpe==1) || (this.golpe==2) ) {
    this.energia0-=1;
    System.out.println(this.desafiado.getNome() + " socou o " + this.desafiante.getNome());
    } else {
    this.energia0 = 0;
    System.out.println(this.desafiado.getNome() + " FINALIZOU o " + this.desafiante.getNome());
    break;
    }
    break;
    }
    }
    if (this.energia0==0) {
    System.out.println("-----------------------------");
    System.out.println("VENCEDOR: " + this.desafiado.getNome());
    System.out.print("Energia do " + this.desafiado.getNome() + ": ");
    for (int c=0; c

  • @robertapereirasabino302
    @robertapereirasabino302 3 ปีที่แล้ว

    Isso foi sensacional, to emocionada por ter feito isso, de vdd obrigada

  • @alexveloso4456
    @alexveloso4456 4 ปีที่แล้ว

    esse exercício ateh me deu nostalgia de um joguinho de ps1 mto daora q eu jogava, o knockout kings 2000... ateh fiquei inspirado rs

  • @nandocavalcanti1264
    @nandocavalcanti1264 4 ปีที่แล้ว

    Não é fácil não, mas com um esforçozinho a gente chega lá.
    Peguei essa classe Random e coloquei 2 valores dentro dela.
    O valor 1 quer dizer que o desafiado deu um soco, e o valor 2 quer dizer que o desafiante deu um soco. A quantidade de socos eu coloquei dentro de um for com a quantidade de golpes que eu quis escolher. Depois, quem deu mais socos acabou vencendo.
    E fiz tbm o método rounds, que eu escolho na classe principal a quantidade de rounds, e mostrei na tela o lutador que mais venceu rounds. Ficou bacana

  • @lucianomiguel4628
    @lucianomiguel4628 8 ปีที่แล้ว

    Boa noite a todos, aula sensacional!!!!
    Criei uma função dentro dessa classe, que chama venceuLuta(int v), ele gera números aleatórios para cada round , onde mostra vitória, derrota ou empate POR round!
    Meu código ficou assim: dentro do método lutar() antes do swich case:
    int vencedor =0;
    vencedor = venceuLuta(vencedor); // chamando método
    private int venceuLuta(int v){
    Random aleatorio = new Random();
    int empat = 0, // se empatar ambos recebem 1
    desafiadG = 0, desafiantG = 0, //desafiadG -> desafiador ganhou , desafianteG = desafiante ganhou (1 round)
    desafiadP = 0, desafiantP = 0; // idem o de cima , somando 1 quando se perde (1 round)
    System.out.println("==== RESULTADO DA LUTA 5 ROUNDS====");
    for (int i = 0; i < 5; i++) { // vai rodar 5 vezes
    this.setRounds(this.getRounds() + 1); // chamando o método assessor, e incrementando o round
    v = aleatorio.nextInt(3);//0

  • @viniciuspereira8587
    @viniciuspereira8587 4 ปีที่แล้ว +1

    O sistema de combate que eu fiz e meio diferente, os dois lutadores iniciam a luta com cem de vida e ela diminue a cada golpe, 30 para chute e 20 para soco, e quem ficar com 0 primeiro perde. (os golpes são sorteados tambem mas o fator experiencia de luta e idade modifica o dano dos socos e chutes).

    • @diegoinacio7964
      @diegoinacio7964 4 ปีที่แล้ว

      Boa mano, bota o teu código ae deve ter ficado show

  • @IgrwOw
    @IgrwOw 8 ปีที่แล้ว

    Otimas aulas, otimo canal. sem duvidas o melhor canal do youtube ! ! !

  • @Wlsnlmtls
    @Wlsnlmtls 8 ปีที่แล้ว +1

    Depois de terminar esse curso, você poderia demostrar fazendo algo na pratica, algo semelhante com a didática do curso de HTML 5 que você fez o site, seria legal

  • @brunocapucci4663
    @brunocapucci4663 5 ปีที่แล้ว

    Tentei fazer um outro exemplo parecido com o da aula. Fiz um "Super Trunfo". No programa vc escolhe qual atributo quer comparar e depois escreve o vencedor. Omiti os métodos especiais para não ficar muito grande.
    public class Carros {
    private String marca;
    private String modelo;
    private int cavalos;
    private int zerocem;
    private int km;
    private int torque;
    public Carros(String marca, String modelo, int cavalos, int zerocem, int km, int torque) {
    this.marca = marca;
    this.modelo = modelo;
    this.cavalos = cavalos;
    this.zerocem = zerocem;
    this.km = km;
    this.torque = torque;
    }

    public void apresentar(){
    System.out.println("");
    System.out.println("Marca: "+this.getMarca());
    System.out.println("Modelo: "+this.getModelo());
    System.out.println("Cavalos: "+this.getCavalos());
    System.out.println("Torque: "+this.getTorque());
    System.out.println("de 0 a 100km: "+this.getZerocem()+"s");
    System.out.println("Velocidade máxima: "+this.getKm()+"Km/h");
    System.out.println("");
    }

    public class SuperTrunfo {
    private Carros carta1;
    private Carros carta2;
    Scanner teclado = new Scanner(System.in);
    public void jogar(Carros c1, Carros c2){
    System.out.println("");
    System.out.println("====SUPER TRUNFO======");
    System.out.println("[1] Cavalos");
    System.out.println("[2] Torque");
    System.out.println("[3] De 0 a 100 Km/h");
    System.out.println("[4] Velocidade máxima");
    System.out.print("Qual atributo você escolhe?");
    int escolha = teclado.nextInt();
    switch(escolha){
    case 1:
    if(c1.getCavalos()>c2.getCavalos()){
    System.out.println(c1.getModelo()+" é o vencedor");
    }else if (c2.getCavalos()>c1.getCavalos()){
    System.out.println(c2.getModelo()+" é o vencedor");
    } else {
    System.out.println("Empate");
    }
    break;
    case 2:
    if(c1.getTorque()>c2.getTorque()){
    System.out.println(c1.getModelo()+" é o vencedor");
    }else if (c2.getTorque()>c1.getTorque()){
    System.out.println(c2.getModelo()+" é o vencedor");
    }else {
    System.out.println("Empate");
    }
    break;
    case 3:
    if(c1.getZerocem()c1.getKm()){
    System.out.println(c2.getModelo()+" é o vencedor");
    }else {
    System.out.println("Empate");
    }
    break;
    }
    public class Race {
    /**
    * @param args the command line arguments
    */
    public static void main(String[] args) {
    // TODO code application logic here
    Carros car[] = new Carros[4];
    car[0] = new Carros("Nissan", "Skyline", 500, 3, 350, 600);
    car[1] = new Carros("Mitsubishi", "EVO", 600, 4, 350, 800);
    car[2] = new Carros("Subaru", "Impreza", 400, 3, 300, 500);
    car[3] = new Carros("Ford", "Mustang", 900, 2, 300, 1000);
    SuperTrunfo jogo1 = new SuperTrunfo();
    car[0].apresentar();
    car[3].apresentar();
    jogo1.jogar(car[0], car[3]);
    }

  • @ChandlerBing11
    @ChandlerBing11 5 ปีที่แล้ว

    Mais uma vez, muito obrigado, Guanabara, pela aula!!! Monstrooooooo =)

  • @deciolustosa2022
    @deciolustosa2022 2 ปีที่แล้ว

    2022 e esse cara ainda nos ajuda

  • @1984ripster1984
    @1984ripster1984 2 ปีที่แล้ว

    Ótima aula!! Explica bem demais!

  • @estevaomendes2305
    @estevaomendes2305 4 ปีที่แล้ว

    Fiz de maneira similar ao que é feito em jogos de RPG. Os lutadores recebem atributos iniciais de ataque, defesa e velocidade, baseados nas suas características físicas. Iniciando a luta eu fiz um teste de velocidade com um número aleatório variando de 0 à 100 mais a velocidade base. Se ela exceder a do adversário parte-se pro teste de ataque/defesa. Usando o mesmo método, se ATK > DEF o dano recebido é (ATK - DEF), caso contrário o golpe é absorvido. Isso segue ou até chegar ao limite de rounds, a saúde de um dos lutadores ou ambos chegarem a zero. Os lutadores recuperam um pouco da saúde em cada round mas o nível dessa recuperação diminui na medida em que os rounds passam pra simular o cansaço. Se a diferença ATK - DEF for maior que 50% é dano crítico.

    • @joaopedromarques1549
      @joaopedromarques1549 2 ปีที่แล้ว

      Bom dia parceiro
      Td bom? Vc se incomoda de me mandar esse projeto? (caso ainda tenha)

  • @maycon6226
    @maycon6226 8 ปีที่แล้ว

    Guanabara, será que poderia ensinar como criar uma tela em swing utilizando os métodos que usamos nessa aula e um banco de dados para gravar as informações das lutas e dos lutadores? Obs. sei que isso levaria muito mais tempo do que o tempo de uma aula normal, mais seria legal podermos criar um "Sisteminha" para mostrar para nossos amigos e aprender ainda mais! E pra concluir gostaria de agradecer ao seu esforço e ao seu tempo dedicados a dar estas aulas, me ajudaram e muito a desconfundir minha cabeça, pois estou no ultimo semestre de ADS e ainda não tinha pegado e entendido corretamente a linguagem Java, eu era um dos que diziam "AHHH JAVA É DIFICIL!" e após assistir essas suas aulas eu vejo que depende da didática que o professor usa para dar aula faz toda diferença no aprendizado dos alunos. Obrigado Professor Guanabara.

  • @othonsousa141
    @othonsousa141 6 ปีที่แล้ว +1

    Égua da aula maravilhosa !!!!

  • @bentinhoow
    @bentinhoow 3 ปีที่แล้ว

    Monstro demais

  • @acmer313
    @acmer313 4 ปีที่แล้ว +4

    Muito obrigado professor! melhor do youtube disparado!
    meu resultado ficou assim:
    ------UEC 001!------
    UFOCobol VS Nerdaart
    Lutador: Nerdaart
    Origem: EUA
    Idade: 30 Anos
    Peso: 105.7kg - Altura: 1.81m
    Vitorias: 12 - Derrotas: 2 - Empates: 4
    Lutador: UFOCobol
    Origem: Brasil
    Idade: 37 Anos
    Peso: 119.3kg - Altura: 1.7m
    Vitorias: 5 - Derrotas: 4 - Empates: 3
    ----COMEÇA A LUTA!!----
    Nerdaart da um chute em UFOCobol que evita o chute!
    UFOCobol da um soco em Nerdaart que evita o soco!
    UFOCobol tenta derrubar Nerdaart que rapidamente evita a queda!
    UFOCobol tenta derrubar Nerdaart que vai ao chão! perdendo 50 de vida!
    Nerdaart da um soco em UFOCobol que leva o soco! perdendo 15 de vida!
    UFOCobol tenta derrubar Nerdaart que rapidamente evita a queda!
    UFOCobol da um soco em Nerdaart que leva o soco! perdendo 15 de vida!
    Nerdaart da um soco em UFOCobol que evita o soco!
    Nerdaart tenta derrubar UFOCobol que rapidamente evita a queda!
    UFOCobol da um chute em Nerdaart que leva o chute! perdendo 30 de vida!
    UFOCobol tenta derrubar Nerdaart que vai ao chão! perdendo 50 de vida!
    Mais uma vitoria de UFOCobol!!
    ------------------------------------------------
    Metodo lutar()
    ------------------------------------------------
    public void lutar() throws InterruptedException{
    if (this.getAprovada()){
    System.out.println("------UEC 001!------");
    System.out.println(this.desafiando.getNome() + " VS " + this.desafiante.getNome());
    System.out.println("");
    this.desafiante.apresentar();
    this.desafiando.apresentar();
    this.setDesafiandoSaude(100);
    this.setDesafianteSaude(100);
    System.out.println("----COMEÇA A LUTA!!----");
    System.out.println("");
    while (this.getDesafiandoSaude() > 0 && this.getDesafianteSaude() > 0){
    Thread.sleep(1000);
    int atacante = (int)(0 + (Math.random() * 2));
    //0 = desafiando, 1 = desafiante
    int defesa = (int)(0 + (Math.random() * 2));
    //0 = defesa, 1 = porrada
    int golpe = (int)(0 + (Math.random() * 3));
    //0 = soco, 1 = chute, 2 = chao
    if (atacante == 0){
    System.out.print(this.desafiando.getNome() + " ");
    switch (golpe) {
    case 0:
    System.out.print("da um soco em " + this.desafiante.getNome() + " ");
    if (defesa == 0){
    System.out.println("que evita o soco!");
    } else {
    this.setDesafianteSaude(this.getDesafianteSaude() - 15);
    System.out.println("que leva o soco! perdendo 15 de vida!");
    } break;
    case 1:
    System.out.print("da um chute em " + this.desafiante.getNome() + " ");
    if (defesa == 0){
    System.out.println("que evita o chute!");
    } else {
    this.setDesafianteSaude(this.getDesafianteSaude() - 30);
    System.out.println("que leva o chute! perdendo 30 de vida!");
    } break;
    case 2:
    System.out.print("tenta derrubar " + this.desafiante.getNome() + " ");
    if (defesa == 0){
    System.out.println("que rapidamente evita a queda!");
    } else {
    this.setDesafianteSaude(this.getDesafianteSaude() - 50);
    System.out.println("que vai ao chão! perdendo 50 de vida!");
    } break;
    default:
    break;
    }
    } else if (atacante == 1){
    System.out.print(this.desafiante.getNome() + " ");
    switch (golpe) {
    case 0:
    System.out.print("da um soco em " + this.desafiando.getNome() + " ");
    if (defesa == 0){
    System.out.println("que evita o soco!");
    } else {
    this.setDesafiandoSaude(this.getDesafiandoSaude() - 15);
    System.out.println("que leva o soco! perdendo 15 de vida!");
    } break;
    case 1:
    System.out.print("da um chute em " + this.desafiando.getNome() + " ");
    if (defesa == 0){
    System.out.println("que evita o chute!");
    } else {
    this.setDesafiandoSaude(this.getDesafiandoSaude() - 30);
    System.out.println("que leva o chute! perdendo 30 de vida!");
    } break;
    case 2:
    System.out.print("tenta derrubar " + this.desafiando.getNome() + " ");
    if (defesa == 0){
    System.out.println("que rapidamente evita a queda!");
    } else {
    this.setDesafiandoSaude(this.getDesafiandoSaude() - 50);
    System.out.println("que vai ao chão! perdendo 50 de vida!");
    } break;
    default:
    break;
    }
    }
    }
    System.out.println("");
    int vencedor = (this.getDesafiandoSaude() > this.getDesafianteSaude())?1:2;
    switch (vencedor) {
    case 0: {
    System.out.println("Empate!");
    this.desafiando.empatarLuta();
    this.desafiante.empatarLuta();
    break;
    }
    case 1: {
    System.out.println("Mais uma vitoria de " + this.desafiando.getNome() + "!!");
    this.desafiando.ganharLuta();
    this.desafiante.perderLuta();
    break;
    }
    case 2: {
    System.out.println("Mais uma vitoria de " + this.desafiante.getNome() + "!!");
    this.desafiante.ganharLuta();
    this.desafiando.perderLuta();
    break;
    }
    }
    } else {
    System.out.println("Luta não aprovada");
    }
    }

  • @alexandreoliveira7356
    @alexandreoliveira7356 8 ปีที่แล้ว +4

    Adorei a ideia que o Fábio Namiuti deu... eu havia pensando um pouco diferente, atribuindo pontos a cada "vantagem" que o lutador tem.
    Segue:
    //INÍCIO CÁLCULO VITORIOSO
    int resultadoLuta = (int) (Math.random()*10);
    if (this.desafiado.getIdade() < this.desafiante.getIdade()) {
    resultadoLuta = resultadoLuta - 1;
    } else {
    resultadoLuta = resultadoLuta + 1;
    }
    if (this.desafiado.getAltura() > this.desafiante.getAltura()) {
    resultadoLuta = resultadoLuta - 1;
    } else {
    resultadoLuta = resultadoLuta + 1;
    }
    if (this.desafiado.getPeso() > this.desafiante.getPeso()) {
    resultadoLuta = resultadoLuta - 1;
    } else {
    resultadoLuta = resultadoLuta + 1;
    }
    if (this.desafiado.getVitorias() > this.desafiante.getVitorias()) {
    resultadoLuta = resultadoLuta - 1;
    } else {
    resultadoLuta = resultadoLuta + 1;
    }
    //TÉRMINO DO CÁLCULO DO VITORIOSO
    if (resultadoLuta < 3) {
    System.out.println("A LUTA EMPATOU!");
    this.desafiado.empatarLuta();
    this.desafiante.empatarLuta();
    } else if (resultadoLuta > 3 && resultadoLuta < 6) {
    System.out.println("A vítória foi do: " + this.desafiado.getNome());
    this.desafiado.ganharLuta();
    this.desafiante.perderLuta();
    } else if (resultadoLuta > 6) {
    System.out.println("A vitória foi do: " + this.desafiante.getNome());
    this.desafiado.perderLuta();
    this.desafiante.ganharLuta();

  • @lelalima3639
    @lelalima3639 ปีที่แล้ว

    Shoooow de aula, em agosto 2023❤

  • @pedroaraujo4845
    @pedroaraujo4845 4 ปีที่แล้ว +1

    Como sempre, as aulas do Guanabara são incríveis. A didática é maravilhosa, e vai seguindo um ritmo bem mais adequado para um assunto que exige tanta atenção e prática. Todavia, na aula retrasada, o conceito de classe abstrata ficou muito vago (talvez por ainda não ser hora de apresentar uma classe abstrata, precisaremos ver mais na prática). Além disso, nessa aula, a classe Random foi utilizada, porém pouco explicada. Se tem uma coisa que me incomoda e que acho que dificulta no aprendizado de algo, é jogar uma informação do tipo "só faz assim, você não precisa entender a fundo como funciona". Nesse video, ele não citou que a classe Random foi mostrada no curso básico de Java. Alguém sabe me informar se ele a apresentou lá, ou não?

  • @jonathasguimaraes9507
    @jonathasguimaraes9507 8 ปีที่แล้ว +3

    te amo, te adoro, te quero!

  • @cristiandarosa6903
    @cristiandarosa6903 ปีที่แล้ว

    obrigado professor!!!

  • @Nareloke
    @Nareloke 5 ปีที่แล้ว

    Eu acho que seria legal colocar o lutar() como private, ao invés de public. E colocar a mensagem de "A luta não pode acontecer" dentro do método marcarLuta(), porque você verifica se a luta pode ocorrer ao tentar marcá-la, não ao lutar. E então, é só chamar o lutar() dentro do if do marcarLuta().

  • @user-iz7zv5mk5m
    @user-iz7zv5mk5m 7 ปีที่แล้ว +2

    Pra praticar eu refiz tudo de uma forma um pouco diferente, quem ganha é o time com maior numero de gols, se os gols dos 2 times forem iguais, a partida segue para os penaltis, pra não empatar nos penaltis coloquei um do-while.
    O metodo torneio, em 4 etapas (oitavas, quartas, semi, final) marca as partidas pega os vencedores e armazena em um vetor para as proximas etapas do mata-mata, o ultimo vencedor é o campeão, no total são 15 partidas.
    //CLASSE TIME
    package championsleague;
    public class Time {
    //ATRIBUTOS
    private String nome;
    private String regiao;
    private int vitorias;
    private int derrotas;
    private int saldoGols;
    //CONSTRUTOR
    public Time(String nome, String regiao) {
    this.nome = nome;
    this.regiao = regiao;
    this.vitorias = 0;
    this.derrotas = 0;
    }
    //MÉTODOS ESPECIAIS
    public String getNome() {
    return nome;
    }
    public void setNome(String nome) {
    this.nome = nome;
    }
    public String getRegiao() {
    return regiao;
    }
    public void setRegiao(String regiao) {
    this.regiao = regiao;
    }
    public int getVitorias() {
    return vitorias;
    }
    public void setVitorias(int vitorias) {
    this.vitorias = vitorias;
    }
    public int getDerrotas() {
    return derrotas;
    }
    public void setDerrotas(int derrotas) {
    this.derrotas = derrotas;
    }
    public int getSaldoGols() {
    return saldoGols;
    }
    public void setSaldoGols(int saldoGols) {
    this.saldoGols = saldoGols;
    }

    //MÉTODOS
    public void apresentacao(){
    System.out.println("NOME: " + this.getNome());
    System.out.println("PAÍS: " + this.getRegiao());
    System.out.println("SG : " + this.getSaldoGols()); //TOTAL DE GOLS MARCADOS
    System.out.println("");
    }
    public void status(){
    System.out.println("VITÓRIAS " + this.getVitorias());
    System.out.println("DERROTAS " + this.getDerrotas());
    System.out.println("");
    }
    public void ganharPartida(){
    this.vitorias = ++vitorias;
    }
    public void perderPartida(){
    this.derrotas = ++derrotas;
    }
    }
    // CLASSE TESTE
    package championsleague;
    public class ChampionsLeague {
    public static void main(String[] args) {
    Time ts[] = new Time[16];
    ts[0] = new Time("PSG", "França");
    ts[1] = new Time("Barcelona", "Espanha");
    ts[2] = new Time("Real Madrid", "Espanha");
    ts[3] = new Time("Napoli", "Itália");
    ts[4] = new Time("Leverkusen", "Alemanha");
    ts[5] = new Time("Atlético Madrid", "Espanha");
    ts[6] = new Time("Porto", "Portugal");
    ts[7] = new Time("Juventus", "Itália");
    ts[8] = new Time("Benfica", "Portugal");
    ts[9] = new Time("Borussia Dortmund", "Alemanha");
    ts[10] = new Time("Bayer de Munique", "Alemanha");
    ts[11] = new Time("Arsenal", "Inglaterra");
    ts[12] = new Time("Manchester City", "Inglaterra");
    ts[13] = new Time("Mônaco", "França");
    ts[14] = new Time("Leicester City", "Inglaterra");
    ts[15] = new Time("Sevilla", "Espanha");
    Partida c = new Partida();
    c.torneio(ts[0], ts[1], ts[2], ts[3], ts[4], ts[5], ts[6], ts[7], ts[8], ts[9]
    , ts[10], ts[11], ts[12], ts[13], ts[14], ts[15]);

    }
    }

    • @user-iz7zv5mk5m
      @user-iz7zv5mk5m 7 ปีที่แล้ว +1

      //CLASSE PARTIDA
      package championsleague;
      import java.util.Random;
      public class Partida {
      //ATRIBUTOS
      private int gp1; //gp1 e gp2, variaveis q guardam gols marcados em penaltis
      private int gp2;
      private int gol1; //gol1 e gol 2, variaveis q guardam gols marcados na partida
      private int gol2;
      private Time desafiante; //var q guarda o time 1
      private Time desafiado; //var q guarda time 2
      private Time vitorioso; //var q pega o vencedor da partida, pra usar no metodo torneio
      private Time v[] = new Time[15]; //vetor q armazena todos os times q venceram
      private Time p[] = new Time[16]; //vetor q armazena os parametros do metodo torneio
      //MÉTODOS ESPECIAIS
      public Time getDesafiante() {
      return desafiante;
      }
      public void setDesafiante(Time desafiante) {
      this.desafiante = desafiante;
      }
      public Time getDesafiado() {
      return desafiado;
      }
      public void setDesafiado(Time desafiado) {
      this.desafiado = desafiado;
      }
      public int getGol1() {
      return gol1;
      }
      public void setGol1(int gol1) {
      this.gol1 = gol1;
      }
      public int getGol2() {
      return gol2;
      }
      public void setGol2(int gol2) {
      this.gol2 = gol2;
      }
      public int getGp1() {
      return gp1;
      }
      public void setGp1(int gp1) {
      this.gp1 = gp1;
      }
      public int getGp2() {
      return gp2;
      }
      public void setGp2(int gp2) {
      this.gp2 = gp2;
      }
      //MÉTODOS
      public void marcarPartida(Time time1, Time time2) {
      desafiante = time1;
      desafiado = time2;
      }
      public void jogar() {
      System.out.println(desafiante.getNome() + " vs " + desafiado.getNome());
      System.out.println("");
      desafiante.apresentacao();
      desafiado.apresentacao();
      Random aleatorio = new Random();
      gol1 = aleatorio.nextInt(5);
      gol2 = aleatorio.nextInt(5);
      //CASO TIME 1 VENCEDOR
      if (gol1 > gol2) {
      vitorioso = desafiado;
      System.out.println("");
      System.out.println(desafiado.getNome() + " " + getGol1() + " x " + getGol2() + " " + desafiante.getNome());
      System.out.println(desafiado.getNome() + " VENCEU A PARTIDA!");
      System.out.println("");
      desafiado.ganharPartida();
      desafiante.perderPartida();
      desafiado.setSaldoGols(desafiante.getSaldoGols() + gol1);
      desafiante.setSaldoGols(desafiado.getSaldoGols() + gol2);
      }
      //CASO TIME 2 VENCEDOR
      if (gol2 > gol1) {
      vitorioso = desafiante;
      System.out.println("");
      System.out.println(desafiante.getNome() + " " + getGol2() + " x " + getGol1() + " " + desafiado.getNome());
      System.out.println("");
      System.out.println(desafiante.getNome() + " VENCEU A PARTIDA!");
      System.out.println("");
      desafiante.ganharPartida();
      desafiado.perderPartida();
      desafiado.setSaldoGols(desafiante.getSaldoGols() + gol1);
      desafiante.setSaldoGols(desafiado.getSaldoGols() + gol2);
      }
      //SE A PARTIDA EMPATAR...
      if (gol1 == gol2) {
      System.out.println("");
      System.out.println(desafiado.getNome() + " " + getGol1() + " x " + getGol2() + " " + desafiante.getNome());
      System.out.println("");
      while (gp1 == gp2) {
      gp1 = aleatorio.nextInt(3) + 2;
      gp2 = aleatorio.nextInt(3) + 2;
      }
      if (gp1 > gp2) {
      vitorioso = desafiado;
      System.out.println(" PENALTIS ");
      System.out.println("-------------------------------------");
      System.out.println(desafiado.getNome() + " " + getGp1() + " x " + getGp2() + " " + desafiante.getNome());
      System.out.println(desafiado.getNome() + " VENCEU A PARTIDA NOS PENALTIS!");
      System.out.println("");
      desafiado.ganharPartida();
      desafiante.perderPartida();
      }
      if (gp2 > gp1) {
      vitorioso = desafiante;
      System.out.println(" PENALTIS ");
      System.out.println("-------------------------------------");
      System.out.println(desafiante.getNome() + " " + getGp2() + " x " + getGp1() + " " + desafiado.getNome());
      System.out.println(desafiante.getNome() + " VENCEU A PARTIDA NOS PENALTIS!");
      System.out.println("");
      desafiante.ganharPartida();
      desafiado.perderPartida();
      }
      }
      }

    • @paulinhopvrs
      @paulinhopvrs 7 ปีที่แล้ว

      Deu erro no seu codigo.

  • @gilsonsouza1550
    @gilsonsouza1550 6 ปีที่แล้ว

    Aula show demais!!!!

  • @Lucihful
    @Lucihful ปีที่แล้ว

    Muito boa aula, crie meus próprios personagens usando lutadores do Street Fighter 2 kkkk

  • @andresaramalho803
    @andresaramalho803 7 ปีที่แล้ว +3

    Galera as vitórias/empates/derrotas não acumulam. Por exemplo, eu entre o L1 e L0, o L1 ganha e atualiza o status. Se eu faço a luta novamente o resultado da anterior não aparece no status.

    • @andrenogueira4038
      @andrenogueira4038 7 ปีที่แล้ว

      Para isso é necessária a utilização de ficheiros. :) talvez seja ensinado num passo mais à frente

    • @denizarddimitricamargo2640
      @denizarddimitricamargo2640 6 ปีที่แล้ว +1

      Eu também queria saber como arrumar isso.

  • @victor79649
    @victor79649 8 ปีที่แล้ว

    Ótimas aulas....Parabéns .....

  • @sdiegogm
    @sdiegogm 5 ปีที่แล้ว +1

    Muito bom!

  • @oscarpontes3
    @oscarpontes3 5 ปีที่แล้ว

    Aula muito boa!

  • @_vandermplay_
    @_vandermplay_ ปีที่แล้ว

    essa ja achei mais dificel ehhee ter que ver monte de vez

  • @anacarolinaoliveira1734
    @anacarolinaoliveira1734 4 ปีที่แล้ว

    Ao fazer este : System.out.println(this.getEmpates() + (this.getEmpates()>1?" empates.":" empate.")); faz o código colocar o empate no plural ou no singular. Vai depender do resultado.

  • @hecadream9717
    @hecadream9717 3 ปีที่แล้ว

    Ficou dando erro aqui, depois descobri que era a luta que não tava marcando, depois vi que eram os lutadores que eu tava botando não tinham a mesma categoria.
    Pelo menos não foi erro de código, um script monstro desse

  • @AlexsanderFury
    @AlexsanderFury 4 ปีที่แล้ว

    A unica coisa q fiz diferente foi usar um randomizador NOS ROUNDS, ou seja, se a luta tem 3 rounds, ele roda 3x
    de 0 a 2, dai salva numa variavel e depois compara usando if's qual variavel é maior. to tentando fazer as aulas ANTEs de ver a pratica. o unico ruim é que não consegui usar o switch, se nao eu ia forçar mt a barra kkk

  • @luizfreitas6614
    @luizfreitas6614 4 ปีที่แล้ว

    int somatoriaDesafiante=aleatorio.nextInt(11) + desafiante.getVitorias()- desafiante.getDerrotas();
    int somatoriaDesafiado=aleatorio.nextInt(11) + desafiado.getVitorias()- desafiado.getDerrotas();
    Usei essas linhas de codigo pra definir o ganhador, o que tiver maior pontuação(somatoria) vence.Ai susbstitui os cases por ifs

  • @minattoamanda
    @minattoamanda 8 ปีที่แล้ว

    Obrigada, Mestreee!!!

  • @luismeneses6719
    @luismeneses6719 ปีที่แล้ว

    Minha ideia foi pontuar os lutadores por suas vítorias e empates, cada vitoria vale 3 pontos e cada empata 1, junto a isso, o lutador mais pesado e o mais alto ganharia pontos no combate, 3 pontos também. Com a pontuação de cada jogador, é gerado um número aleatório entre 0 até o valor das pontuações somados, esse valor aleatorio pode ter 3 possibilidades, ser menos que a pontuacao do Desafiado, ser igual ou ser superior. Caso ele seja menor, eu retorno que o Desafiado foi o vencedor, caso seja igual empate e caso seja maior, a vitoria é do desafiante:
    private int calcularVencedor() {
    int pontuacoes[] = this.calcularPontuacaoGeral();
    int pontuacaoDesafiado = pontuacoes[0];
    int pontuacaoDesafiante = pontuacoes[1];
    Random geradorResultado = new Random();
    int resultado = geradorResultado.nextInt(pontuacaoDesafiante+pontuacaoDesafiado+1);
    if(resultado < pontuacaoDesafiado) {
    return 1;
    } else if(resultado == pontuacaoDesafiado) {
    return 0;
    }
    else {
    return -1;
    }
    }

    private int[] calcularPontuacaoGeral() {
    int pontuacaoDesafiado = this.calcularPontuacaoLutador(this.getDesafiado());
    int pontuacaoDesafiante = this.calcularPontuacaoLutador(this.getDesafiante());
    int pontuacaoGeral[] = new int[2];
    switch(this.getDesafiado().isMaior(this.getDesafiante())) {
    case 1:
    pontuacaoDesafiado += 3;
    break;
    case -1:
    pontuacaoDesafiante += 3;
    }
    switch(this.getDesafiado().isMaisPesado(this.getDesafiante())) {
    case 1:
    pontuacaoDesafiado += 3;
    break;
    case 2:
    pontuacaoDesafiante += 3;
    }
    pontuacaoGeral[0] = pontuacaoDesafiado;
    pontuacaoGeral[1] = pontuacaoDesafiante;
    return pontuacaoGeral;
    }

    private int calcularPontuacaoLutador(Lutador l) {
    return l.getVitorias() * 3 + l.getEmpates();
    }

  • @Dejalbas
    @Dejalbas 8 ปีที่แล้ว +1

    Guanabara, este já estou desenvolvendo e postando a algumas aulas, agora com as aulas 8, melhorou bastante,
    com certeza ele vai evoluir aula à aula.
    ==========================================================================================
    package campeonatoquadrangular;
    public class CampeonatoQuadrangular {
    public static void main(String[] args) {
    Equipe e[] = new Equipe[4];
    e[0] = new Equipe("Corinthians ","Itaqueirão ","São Paulo ","SP ",0 ,0 ,0 ,0);
    e[1] = new Equipe("São Paulo ","Morumbi ","São Paulo ","SP ",0 ,0 ,0 ,0);
    e[2] = new Equipe("Flamengo ","Maracanã ","São Paulo ","SP ",0 ,0 ,0 ,0);
    e[3] = new Equipe("Fluminense ","Laranjeiras ","São Paulo ","SP ",0 ,0 ,0 ,0);
    //---------------------------------------------------------
    Jogo J1 = new Jogo();
    Jogo J2 = new Jogo();
    Jogo J3 = new Jogo();
    Jogo J4 = new Jogo();
    Jogo J5 = new Jogo();
    Jogo J6 = new Jogo();
    J1.marcarJogo(e[0], e[1]);
    J2.marcarJogo(e[2], e[3]);
    J3.marcarJogo(e[0], e[2]);
    J4.marcarJogo(e[1], e[3]);
    J5.marcarJogo(e[3], e[0]);
    J6.marcarJogo(e[2], e[1]);
    J1.jogar();
    J2.jogar();
    J3.jogar();
    J4.jogar();
    J5.jogar();
    J6.jogar();
    e[0].status();
    e[1].status();
    e[2].status();
    e[3].status();
    }
    }
    ========================================================================================
    package campeonatoquadrangular;
    /**
    *
    * @author Dejalbas
    */
    //ATRIBUTOS
    public class Equipe {
    private String nome;
    private String estadio;
    private String cidade;
    private String estado;
    private int vitorias;
    private int empates;
    private int derrotas;
    private int golsPro, golsContra, saldoGols, pontos, jogos, calculo;
    //METODOS PUBLICOS
    public void apresentar_equipe(){
    System.out.print(" " + this.getNome());
    }
    public void status(){
    System.out.println("Equipe "+ " J "+ "P "+ "V "+ "E "+ "D "+ "GP "+ "GC "+ "SG "+ "Calculo");
    System.out.println(this.getNome()+" "+this.getJogos()+" "+this.getPontos()+" "+this.getVitorias()+" "+this.getEmpates()+" "+this.getDerrotas()+" "+this.getGolsPro()+" "+this.getGolsContra()+" "+this.getCalculo());
    }
    public void ganhar(){
    this.setJogos(this.getJogos()+ 1);
    this.setPontos(this.getPontos() + 3);
    this.setVitorias(this.getVitorias() + 1);
    this.setEmpates(this.getEmpates()+ 0);
    this.setDerrotas(this.getDerrotas()+ 0);
    this.setGolsPro(this.getGolsPro() + 1);
    this.setGolsContra(this.getGolsContra() + 0);
    this.setSaldoGols(this.getGolsPro() - this.getGolsContra());
    this.setCalculo(this.getCalculo()+ this.getPontos()^6 + this.getVitorias() ^ 4 + this.getSaldoGols() ^ 2 + this.getGolsPro());
    //pensando // pensando // pensando
    //
    }
    public void perder(){
    this.setJogos(this.getJogos() + 1);
    this.setPontos(this.getPontos() + 0);
    this.setVitorias(this.getVitorias() + 0);
    this.setEmpates(this.getEmpates() + 0);
    this.setDerrotas(this.getDerrotas() + 1);
    this.setGolsPro(this.getGolsPro() + 0 );
    this.setGolsContra(this.getGolsContra() + 1);
    this.setSaldoGols(this.getGolsPro() - this.getGolsContra());
    this.setCalculo(this.getCalculo()+ this.getPontos()^6 + this.getVitorias() ^ 4 + this.getSaldoGols() ^ 2 + this.getGolsPro());
    }
    public void empatar(){
    this.setJogos(this.getJogos() + 1);
    this.setPontos(this.getPontos() + 1);
    this.setVitorias(this.getVitorias() + 0);
    this.setEmpates(this.getEmpates() + 1);
    this.setDerrotas(this.getDerrotas() + 0);
    this.setGolsPro(this.getGolsPro() + 1);
    this.setGolsContra(this.getGolsContra() + 1);
    this.setSaldoGols(this.getGolsPro() - this.getGolsContra());
    this.setCalculo(this.getCalculo()+ this.getPontos()^6 + this.getVitorias() ^ 4 + this.getSaldoGols() ^ 2 + this.getGolsPro());
    }
    //METODOS ESPECIAIS
    public Equipe(String nome, String estadio, String cidade, String estado, int vitorias, int empates, int derrotas, int golsPro) {
    this.nome = nome;
    this.estadio = estadio;
    this.cidade = cidade;
    this.estado = estado;
    this.vitorias = 0;
    this.empates = 0;
    this.derrotas = 0;
    this.golsPro = golsPro;
    this.calculo = calculo;
    }
    //METODOS GETERS E SETERS
    public String getNome() {
    return nome;
    }
    public void setNome(String nome) {
    this.nome = nome;
    }
    public String getEstadio() {
    return estadio;
    }
    public void setEstadio(String estadio) {
    this.estadio = estadio;
    }
    public String getCidade() {
    return cidade;
    }
    public void setCidade(String cidade) {
    this.cidade = cidade;
    }
    public String getEstado() {
    return estado;
    }
    public void setEstado(String estado) {
    this.estado = estado;
    }
    public int getVitorias() {
    return vitorias;
    }
    public void setVitorias(int vitorias) {
    this.vitorias = vitorias;
    }
    public int getEmpates() {
    return empates;
    }
    public void setEmpates(int empates) {
    this.empates = empates;
    }
    public int getDerrotas() {
    return derrotas;
    }
    public void setDerrotas(int derrotas) {
    this.derrotas = derrotas;
    }
    public int getGolsPro() {
    return golsPro;
    }
    public void setGolsPro(int golsPro) {
    this.golsPro = golsPro;
    }
    public int getGolsContra() {
    return golsContra;
    }
    public void setGolsContra(int golsContra) {
    this.golsContra = golsContra;
    }
    public int getSaldoGols() {
    return saldoGols;
    }
    public void setSaldoGols(int saldoGols) {
    this.saldoGols = saldoGols;
    }
    public int getPontos() {
    return pontos;
    }
    public void setPontos(int pontos) {
    this.pontos = pontos;
    }
    public int getJogos() {
    return jogos;
    }
    public void setJogos(int jogos) {
    this.jogos = jogos;
    }
    public int getCalculo(){
    return calculo;
    }
    public void setCalculo(int calculo){
    this.calculo = calculo;
    }
    }
    ==========================================================================================
    package campeonatoquadrangular;
    import java.util.Random;
    /**
    *
    * @author Dejalbas
    */
    public class Jogo {
    //ATRIBUTOS
    private Equipe casa;
    private Equipe fora;
    //METODOS PUBLICOS
    public void marcarJogo(Equipe E1, Equipe E2){
    if(E1 != E2){
    this.casa = E1;
    this.fora = E2;
    }else{
    this.casa = null;
    this.fora = null;
    }
    }
    public void jogar(){
    System.out.println("************************************");
    System.out.println("Estádio " + this.casa.getEstadio());
    //System.out.println("Cidade " + this.casa.getCidade());
    //System.out.println("Estado " + this.casa.getEstado());
    System.out.println(" ");
    this.casa.apresentar_equipe();
    System.out.print(" X ");
    this.fora.apresentar_equipe();
    System.out.println(" ");
    Random gols = new Random();
    int vencedor = gols.nextInt(3);// 0, 1, 2
    switch(vencedor){
    case 0:
    System.out.println("Empatou");
    this.casa.empatar();
    this.fora.empatar();
    break;
    case 1:
    System.out.println(this.casa.getNome()+ " Venceu");
    this.casa.ganhar();
    this.fora.perder();
    break;
    case 2:
    System.out.println(this.fora.getNome()+ " Venceu");
    this.casa.perder();
    this.fora.ganhar();
    }
    System.out.println("---------------------------------------");
    }
    //METODOS ESPECIAIS
    public Equipe getCasa() {
    return casa;
    }
    public void setCasa(Equipe casa) {
    this.casa = casa;
    }
    public Equipe getFora() {
    return fora;
    }
    public void setFora(Equipe fora) {
    this.fora = fora;
    }

    }

  • @lucaslvl10
    @lucaslvl10 ปีที่แล้ว

    assistindo em 2023 e ainda descobrindo coisa nova

  • @pedrolucaslisboa4431
    @pedrolucaslisboa4431 7 ปีที่แล้ว +1

    Olá, tenho uma pergunta interessante.
    No video ele marca a luta entre dois lutares que estão salvos em um vetor.
    Como eu faço para marcar a luta se os lutadores estivessem em um HashMap?

  • @RodrigoAdriano
    @RodrigoAdriano 2 ปีที่แล้ว

    To assistindo isso em 2023 e estou adorando kk

  • @MATHEUSAUGUSTO-rf7su
    @MATHEUSAUGUSTO-rf7su 2 หลายเดือนก่อน +2

    18:28 Envelheceu mal demais, estamos em 2024 e tem gente que infelizmente defende marmanjo no boxe feminino ganhando medalha de ouro

  • @Rafael__Cordeiro
    @Rafael__Cordeiro 5 ปีที่แล้ว

    no meu código, eu criei uma função que imprime um adjetivo aleatório na apresentação do lutador
    private String adjetivoAleatorio() {
    Random random = new Random();
    int caso = random.nextInt(15);
    String adjetivo[];
    adjetivo = new String[16];
    adjetivo[0] = "Grandioso";
    adjetivo[1] = "Inoxidável";
    adjetivo[2] = "Vigoroso";
    adjetivo[3] = "Invencível";
    adjetivo[4] = "Indestrutível";
    adjetivo[5] = "Indomável";
    adjetivo[6] = "Matador de Onça";
    adjetivo[7] = "Pika das Galáxias";
    adjetivo[8] = "Esselentíssimo";
    adjetivo[9] = "Poderoso";
    adjetivo[10] = "Inbatível";
    adjetivo[11] = "Lendário";
    adjetivo[12] = "Mito";
    adjetivo[13] = "Gladiador";
    adjetivo[14] = "Guerreiro";
    adjetivo[15] = "Espancador de Comunista";
    return adjetivo[caso];
    }
    public void apresentar() {
    System.out.println("Diretamente de " + this.getNacionalidade());
    System.out.println("Com " + this.getIdade() + " anos e " + this.getAltura() + "m de altura");
    System.out.println("Pesando " + this.getPeso() + ", Incluído na categoria \"Peso " + this.getCategoria() + "\"");
    System.out.println("Com " + this.getVitorias() + " Vitórias, " + this.getDerrotas() + " Derrotas e " + this.getEmpates() + " Empates!");
    System.out.println("O " + this.adjetivoAleatorio() + " \"" + this.getNome() + "\"

    ");
    }

  • @AndreyNithack
    @AndreyNithack 5 ปีที่แล้ว +2

    Montei um esquema onde os dois lutadores começam com 10 pontos e a luta entra em um laço for Rounds, durante os rounds é utilizado a classe random() para determinar entre Defesa/Ataque/contraAtaque =
    public class luta {
    //========atributos=============
    private lutadores desafiado;
    private lutadores desafiante;
    private int rounds;
    private boolean aprovada = false;
    //=============marcar luta================
    public void marcarLuta(lutadores l1, lutadores l2) {
    if (l1.getCategoria() == l2.getCategoria() && l1 != l2) {
    this.desafiado = l1;
    this.desafiante = l2;
    this.aprovada = true;
    this.rounds = 10;
    }
    else {
    System.out.println("A luta não pode ser marcado");
    }
    }
    //=============efetuar luta===============
    public void efetuarLuta () {
    Integer pontosDesafiado = 10;
    Integer pontosDesafiante = 10;
    int atDesafiado;
    int atDesafiante;
    // entra em laço até terminar os Hounds
    if (aprovada) {
    for (int r = 0; r que desafiante se sim = vitoria desafiado.
    if (pontosDesafiado > pontosDesafiante) {
    System.out.println(desafiado.getNome() + " Ganhou a luta!");
    desafiante.setDerrotas();
    desafiado.setVitorias();
    }
    }else {
    System.out.println("A Luta não é valida");
    }
    }
    dentro da classe lutador add o seguinte metodo.
    public int getHit() {
    Random hitx = new Random();
    this.hit = hitx.nextInt(2);
    return this.hit;
    Fiz desta forma para futuramente se eu quiser alterar a forma de calculo do getHit eu tenha mais liberdade.

  • @thiagoandreqi
    @thiagoandreqi 8 ปีที่แล้ว +2

    Sim, mas cadê as aulas de... brincando.
    Agradeço por cada minuto seu gasto nessas aulas.

  • @luizpaulogomesdasilva7427
    @luizpaulogomesdasilva7427 8 ปีที่แล้ว

    show de bola

  • @joaomarcelo9027
    @joaomarcelo9027 5 ปีที่แล้ว

    execente video

  •  8 ปีที่แล้ว +1

    Gustavo, nesta hipótese que você sugeriu, em relação à criação de uma variável de gênero, onde não fosse possível definir uma luta entre sexos distintos... Seria conveniente o uso da relação de herança, onde Mulher extends Lutador e Homem extends Lutador?

    • @xLuizCX
      @xLuizCX 8 ปีที่แล้ว +1

      Se você utilizar métodos diferentes para cada gênero, ou sobrescrever os existentes, a resposta é sim. Mas se for apenas distinção de sexo, utilize um atributo a mais apenas.

    •  8 ปีที่แล้ว

      Faz sentido, obrigado!

  • @diegoinacio7964
    @diegoinacio7964 4 ปีที่แล้ว

    Fiz o método lutar diferente, criei um laço de repetição com duas variáveis dentro: 'socoDesafiante' e 'socoDesafiado' eles recebem inteiros que equivalem ao número de socos que deram no adversário, esse número é dado a eles por um laço de repetição usando o random e no final; o vencedor é o que tiver mais números nas respectivas variáveis.
    public void lutar() {
    if(this.aprovado) {
    System.out.println("### DESAFIADO ###");
    this.desafiado.apresentar();
    System.out.println("### DESAFIANTE ###");
    this.desafiante.apresentar();

    Random aleatorio = new Random();

    int socoDesafiado = 0, socoDesafiante = 0;
    for(int i=0; isocoDesafiante) {
    System.out.println("DESAFIADO GANHOU! VITÓRIA DO "+this.desafiado.getNome());
    this.desafiado.ganhaLuta();
    this.desafiante.perderLuta();
    System.out.println("SOCOS DADOS PELO DESAFIADO: "+socoDesafiado+" // SOCOS DADOS PELO DESAFIANTE: "+socoDesafiante);
    }else if(socoDesafiado

  • @lucasguimaraespacheco9630
    @lucasguimaraespacheco9630 2 ปีที่แล้ว

    show!

  • @thiagoalvesfoz
    @thiagoalvesfoz 5 ปีที่แล้ว

    Eu dei uma limpada no método marcarLuta();
    public void marcarLuta(Lutador player1, Lutador player2) {
    this.aprovada = player1.getCategoria().equals(player2.getCategoria()) && player1 != player2;
    if(this.aprovada) {
    this.desafiado = player1;
    this.desafiante = player2;
    }
    }

  • @welingsonsantos9572
    @welingsonsantos9572 6 ปีที่แล้ว

    Eai, eu fiz usando Pokemons em vez de lutadores. E o Pokemon que tivesse um atk maior que a defesa do oponente vencia.
    O tipo também influenciava, ex: pokemon de tipo fogo perdia 100 (cem) de atk caso batalhasse com um pokemon do tipo água.
    O código:
    package aula07_1;
    public class Aula07_1 {
    public static void main(String[] args) {
    Pokemon[] iniciais = new Pokemon[5];
    Batalhar inicio = new Batalhar();
    iniciais[0] = new Pokemon(1, "Sqirtle", (int) (100 * Math.random() * 10), (int) (100 * Math.random() * 10));
    iniciais[1] = new Pokemon(2, "Bulbassauro", (int) (100 * Math.random() * 10), (int) (100 * Math.random() * 10));
    iniciais[2] = new Pokemon(3, "Charmander", (int) (100 * Math.random() * 10), (int) (100 * Math.random() * 10));
    iniciais[3] = new Pokemon(4, "Pikachu", (int) (100 * Math.random() * 10), (int) (100 * Math.random() * 10));
    iniciais[0].detalhes();
    System.out.println("===========================================");
    iniciais[1].detalhes();
    System.out.println("===========================================");
    iniciais[2].detalhes();
    System.out.println("===========================================");
    iniciais[3].detalhes();
    System.out.println("===========================================");
    inicio.marcarBatalha(iniciais[0], iniciais[3]);
    inicio.batalhar();
    }
    ####################################################################################
    package aula07_1;
    public class Pokemon {
    private int tipo;
    private String defTipo;
    private String nome;
    private int atk;
    private int def;
    public Pokemon(int tipo, String nome, int atk, int def) {
    this.setTipo(tipo);
    this.nome = nome;
    this.atk = atk;
    this.def = def;
    }
    public void detalhes() {
    System.out.println("O nome do Pókemon é " + this.getNome() + " do tipo " + this.getDefTipo());
    System.out.println("Ele tem " + this.getAtk() + " de ataque e " + this.getDef() + " de defesa");
    }
    public String getDefTipo() {
    return defTipo;
    }
    public void setDefTipo() {
    if (this.getTipo() == 1) {
    this.defTipo = "Agua";
    } else if (this.getTipo() == 2) {
    this.defTipo = "Planta";
    } else if (this.getTipo() == 3) {
    this.defTipo = "Fogo";
    } else if (this.getTipo() == 4) {
    this.defTipo = "Eletrico";
    }
    }
    public int getTipo() {
    return tipo;
    }
    public void setTipo(int tipo) {
    this.tipo = tipo;
    this.setDefTipo();
    }
    public String getNome() {
    return nome;
    }
    public void setNome(String nome) {
    this.nome = nome;
    }
    public double getAtk() {
    return atk;
    }
    public double getDef() {
    return def;
    }
    public void setAtk(int atk) {
    this.atk = atk;
    }
    public void setDef(int def) {
    this.def = def;
    }
    }
    ###########################################################################
    package aula07_1;
    public class Batalhar {
    private Pokemon desafiante;
    private Pokemon desafiado;
    private boolean aprovada;
    public void marcarBatalha(Pokemon p1, Pokemon p2) {
    if (p1.getNome() != p2.getNome()) {
    this.setAprovada(true);
    this.setDesafiante(p1);
    this.setDesafiado(p2);
    } else {
    this.setAprovada(false);
    this.setDesafiante(null);
    this.setDesafiado(null);
    }
    }
    public void batalhar() {
    if (this.getAprovada() == true) {
    System.out.println("========DESAFIANTE========");
    this.getDesafiante().detalhes();
    System.out.println("========DESAFIADO========");
    this.getDesafiado().detalhes();
    System.out.println("=============================================");
    System.out.println("Resultado da batalha: ");
    if (this.getDesafiante().getTipo() == 1
    && this.getDesafiado().getTipo() == 2
    || this.getDesafiado().getTipo() == 4) {
    this.getDesafiante().setAtk((int) (this.getDesafiante().getAtk() - 100));
    this.getDesafiante().detalhes();
    if (this.getDesafiante().getAtk() > this.getDesafiado().getDef()) {
    System.out.println("O Pokemon desafiante " + this.getDesafiante().getNome() + " venceu a batalha");
    } else {
    System.out.println("O Pokemon desafiado " + this.getDesafiado().getNome() + " venceu a batalha");
    }
    } else if (this.getDesafiante().getTipo() == 2
    && this.getDesafiado().getTipo() == 3) {
    this.getDesafiante().setAtk((int) (this.getDesafiante().getAtk() - 100));
    this.getDesafiante().detalhes();
    if (this.getDesafiante().getAtk() > this.getDesafiado().getDef()) {
    System.out.println("O Pokemon Desafiante " + this.getDesafiante().getNome() + " venceu a batalha");
    } else {
    System.out.println("O Pokemon Desafiado " + this.getDesafiado().getNome() + " venceu a batalha");
    }
    } else if (this.getDesafiante().getTipo() == 3
    && this.getDesafiado().getTipo() == 1) {
    this.getDesafiante().setAtk((int) (this.getDesafiante().getAtk() - 100));
    this.getDesafiante().detalhes();
    if (this.getDesafiante().getAtk() > this.getDesafiado().getDef()) {
    System.out.println("O Pokemon desafiante " + this.getDesafiante().getNome() + " venceu a batalha");
    } else {
    System.out.println("O Pokemon desafiado " + this.getDesafiado().getNome() + " venceu a batalha");
    }
    } else if (this.getDesafiante().getTipo() == 4
    && this.getDesafiado().getTipo() == 2) {
    this.getDesafiante().setAtk((int) (this.getDesafiante().getAtk() - 100));
    this.getDesafiante().detalhes();
    if (this.getDesafiante().getAtk() > this.getDesafiado().getDef()) {
    System.out.println("O Pokemon desafiante " + this.getDesafiante().getNome() + " venceu a batalha");
    } else {
    System.out.println("O Pokemon desafiado " + this.getDesafiado().getNome() + " venceu a batalha");
    }
    }
    } else {
    System.out.println("Essa batalha não pode acontecer!");
    }
    }
    public Pokemon getDesafiante() {
    return desafiante;
    }
    public void setDesafiante(Pokemon desafiante) {
    this.desafiante = desafiante;
    }
    public Pokemon getDesafiado() {
    return desafiado;
    }
    public void setDesafiado(Pokemon desafiado) {
    this.desafiado = desafiado;
    }
    public boolean getAprovada() {
    return aprovada;
    }
    public void setAprovada(boolean aprovada) {
    this.aprovada = aprovada;
    }
    }
    }

  • @rayanmarcus
    @rayanmarcus 8 ปีที่แล้ว +1

    #valeuuuguanabaraa

  • @alessandradamarissuzysilva8037
    @alessandradamarissuzysilva8037 2 ปีที่แล้ว +1

    Aqui tá dando uma exception

  • @jocielekirizawa413
    @jocielekirizawa413 2 ปีที่แล้ว

    assistindo em 2022!

  • @thalysonrodrigues4200
    @thalysonrodrigues4200 8 ปีที่แล้ว +9

    Fala Prof Guanabara, segue o meu com algumas implementações:
    package classes;
    /**
    *
    * @author thalyson
    */
    public class Home {
    public static void main(String[] args) {
    Lutador[] l = new Lutador[02];
    l[0] = new Lutador("Alexandre", "Brasileira", 1.80f, 81.7f, 30, 12, 1, 5);
    l[1] = new Lutador("Thalyson", "Francesa", 1.80f, 82.7f, 19, 12, 1, 5);
    l[0].lutadorApto();
    l[1].lutadorApto();
    Luta novaLuta = new Luta();
    novaLuta.marcarLuta(l[0], l[1]);
    novaLuta.desistir();
    }
    }
    public interface InterfaceLutador {
    public abstract void apresentacao();
    public abstract void status();
    public abstract void ganharLuta();
    public abstract void perderLuta();
    public abstract void empataLuta();
    public abstract void lutadorApto();
    }
    public interface InterfaceLuta {
    public abstract void marcarLuta(Lutador desafiante, Lutador desafiado);
    public abstract void lutar();
    public abstract void desistir();
    }
    public class Lutador implements InterfaceLutador {
    private String nome;
    private String nacionalidade;
    private String categoria;
    private float altura;
    private float peso;
    private float imc;
    private int idade;
    private int numVitoria;
    private int numDerrota;
    private int numEmpates;
    private boolean aptoLutar;
    public Lutador(String nome, String nacionalidade, float altura, float peso,
    int idade, int numVitoria, int numDerrota, int numEmpates) {
    this.setAptoLutar(false);
    this.setNome(nome);
    this.setNacionalidade(nacionalidade);
    this.setAltura(altura);
    this.setPeso(peso);
    this.setIdade(idade);
    this.setNumVitoria(numVitoria);
    this.setNumDerrota(numDerrota);
    this.setNumEmpates(numEmpates);
    this.setImc();
    }
    public String getNome() {
    return nome;
    }
    public void setNome(String nome) {
    this.nome = nome;
    }
    public String getNacionalidade() {
    return nacionalidade;
    }
    public void setNacionalidade(String nacionalidade) {
    this.nacionalidade = nacionalidade;
    }
    public String getCategoria() {
    return categoria;
    }
    public void setCategoria(String categoria) {
    this.categoria = categoria;
    }
    public float getAltura() {
    return altura;
    }
    public void setAltura(float altura) {
    this.altura = altura;
    }
    public float getPeso() {
    return peso;
    }
    public void setPeso(float peso) {
    this.peso = peso;
    if (this.getPeso() < 55 || this.getPeso() > 120) {
    } else if (this.getPeso() = 20.7 && this.getImc()

    • @DeirtoSouza
      @DeirtoSouza 8 ปีที่แล้ว

      vlw cara consegui entender a falha do meu, que era basicamente o 3 do Random(), eu tava colocando em Randon(), sendo que era pra colocar no nextInt(), vlw mesmo.

    • @thalysonrodrigues4200
      @thalysonrodrigues4200 8 ปีที่แล้ว

      que isso =)

    • @edilson_momentos
      @edilson_momentos 8 ปีที่แล้ว +2

      Que classe bacana :D

    • @vladimirarauzo9864
      @vladimirarauzo9864 8 ปีที่แล้ว

      Legal

    • @andresaramalho803
      @andresaramalho803 7 ปีที่แล้ว

      quando vc repete duas lutas iguais as duas acumulam no status dado pelo vetor? ou somente a última luta acumula?

  • @cleytonalbu
    @cleytonalbu 3 ปีที่แล้ว +5

    Na parte que printa o nome do vencedor, printava o endereço de memoria ao invez do nome do lutador, ai eu usei um toString pra pegar o nome. Alguém me diz ai se é uma solução correta ou se existe metodo melhor

  • @PhelipeTiger
    @PhelipeTiger 7 ปีที่แล้ว

    Segue minhas alterações, coloquei uns if para atribuir pontos aos atributos e um random no final para simular os rounds, assim sempre calculando os pontos de atributos mais os pontos de rounds para determinar um vencedor.
    public class Luta {
    public Lutador desafiado;
    public Lutador desafiante;
    private int round;
    private int one, two;
    private boolean aprovada;
    public void marcarLuta (Lutador l1, Lutador l2) {
    if (l1.getCategoria().equals(l2.getCategoria()) && l1 !=l2){
    this.aprovada = true;
    this.desafiado = l1;
    this.desafiante = l2;
    }else {
    this.aprovada = false;
    this.desafiado = null;
    this.desafiante = null;
    }
    }
    public void lutar() {
    if (this.aprovada) {
    System.out.println("###DESAFIADO##");
    this.desafiado.apresentar();
    System.out.println("##DESAFIANTE###");
    this.desafiante.apresentar();
    if (desafiante.getPeso() > desafiado.getPeso()) {
    one = one + 35;
    }else {
    two = one + 35;
    }
    if (desafiante.getAltura() > desafiado.getAltura()) {
    one = one + 22;
    }else {
    two = two + 22;
    }
    if (desafiante.getIdade() < desafiado.getIdade()) {
    one = one + 13;
    }else {
    two = two +13;
    }
    if (desafiante.getVitorias() > desafiado.getVitorias()) {
    one = one + 27;
    }else {
    two = two + 27;
    }
    Random aleatorio = new Random ();
    one = one + aleatorio.nextInt(40);
    two = two + aleatorio.nextInt(40);
    System.out.println(" ROUND 1 " + desafiante.getNome() + " esta com " + one + " pontos e " + desafiado.getNome() + " esta com " + two + " pontos");
    one = one + aleatorio.nextInt(40);
    two = two + aleatorio.nextInt(40);
    System.out.println(" ROUND 2 " + desafiante.getNome() + " esta com " + one + " pontos e " + desafiado.getNome() + " esta com " + two + " pontos");
    one = one + aleatorio.nextInt(40);
    two = two + aleatorio.nextInt(40);
    System.out.println(" ROUND 3 " + desafiante.getNome() + " esta com " + one + " pontos e " + desafiado.getNome() + " esta com " + two + " pontos");
    one = one + aleatorio.nextInt(40);
    two = two + aleatorio.nextInt(40);
    if (one > two) {
    System.out.println("O VENCEDOR É " + this.desafiante.getNome() + " por " + one + " pontos " + " a " + two + " pontos do " + this.desafiado.getNome());
    }else {
    System.out.println("O VENCEDOR É " + this.desafiado.getNome() + " por " + two + " pontos " + " a " + one + " pontos do " + this.desafiante.getNome());
    }
    } else {
    System.out.println("A LUTA NAO PODE ACONTECERT!");
    }
    }
    public Lutador getDesafiado() {
    return desafiado;
    }
    public void setDesafiado(Lutador desafiado) {
    this.desafiado = desafiado;
    }
    public Lutador getDesafiante() {
    return desafiante;
    }
    public void setDesafiante(Lutador desafiante) {
    this.desafiante = desafiante;
    }
    public int getRound() {
    return round;
    }
    public void setRound(int round) {
    this.round = round;
    }
    public boolean isAprovada() {
    return aprovada;
    }
    public void setAprovada(boolean aprovada) {
    this.aprovada = aprovada;
    }
    }

  • @isacpd
    @isacpd 6 ปีที่แล้ว

    Quem deu dislike nessa aula é maluco.

  • @JonMartins
    @JonMartins 7 ปีที่แล้ว

    Pqp bixo! Vcs são muito fodas!!!

  • @BielanCamiloNeres
    @BielanCamiloNeres 5 ปีที่แล้ว

    para as boas práticas de programação OO, é necessário fazer uma interface pra cada classe?

  • @alberto055100
    @alberto055100 4 ปีที่แล้ว +1

    Olá professor, montei o programinha e percebi que quando repito a luta, os resultados dos lutadores voltam aos valores que estavam lá na criação dos objetos L[ ]. ele até acrescenta as vitórias, derrotas e empates quando do resultado da luta. mas quando faço outra luta,ou seja, clico no botão executar, volta aos números( valores) anteriores.

    • @grupowltopos8978
      @grupowltopos8978 4 ปีที่แล้ว +1

      Verifique se os metodos {setVitorias, setDerrotas e setEmpates} da classe {Luta} foram configurado corretamente retornando os respectivos valores {get} e acrescentando mais um a cada chamada do metodo.

    • @alberto055100
      @alberto055100 4 ปีที่แล้ว

      @@grupowltopos8978 obrigado pela atenção! . então, verifiquei os métodos e estão todos configurados corretamente. É como eu disse acima, acrescenta os valores, porém quando clico na setinha verde lá em cima para executar novamente, o programa pega os valores do construtor e soma 1, entendeu ?

    • @guilhermes.7597
      @guilhermes.7597 3 ปีที่แล้ว +1

      @@alberto055100 Certamente você já encontrou a resposta, mas pra sanar as dúvidas futuras vou responder aqui.
      Isso acontece porque os objetos que estão sendo criados não são salvos em local nenhum, na verdade até são (na memória), porém após o fim da execução do programa todos eles são descartados, e ao iniciar o código novamente você tem novamente os valores que foram inseridos por você quando estava programando, sem contabilizar as execuções anteriores.
      E aí que entra uma amigo chamado Banco de Dados, sem ele nossos dados não persistem, ou seja, sempre serão descartados e resetados sempre que finalizar ou rodar nosso código. Mas isso é assunto pra depois, nesse ponto só precisamos entender os conceitos e conseguir aplicá-los, a partir daí vamos escalando para o uso de mais ferramentas.

  • @yuripedrorj
    @yuripedrorj 4 ปีที่แล้ว

    Na estrutura condicional da classe Luta, teria como usar um Setter ao invés da referência this, para acessar o conteúdo da classe Lutador ??? O que eu quero é atribuir uma Vitória, Derrota ou Empate com o método de acesso.

    • @diegoinacio7964
      @diegoinacio7964 4 ปีที่แล้ว

      Ainda ta precisando de ajuda Pedro? Se sim, coloca o trecho que você ta com dúvida aqui a baixo e eu vou tentar te responder.

  • @JoseLuiz-ge6pk
    @JoseLuiz-ge6pk 8 ปีที่แล้ว

    Grande mestre gafanhoto Guanabara!
    O curso é top, e estou agora REVISANDO JAVA no seu CURSO DE JAVA e tem um problema com relação a geração do arquivo .JAR que ás vezes eu quero somente abrir a tela pra eu ver como funciona e tb mostrar a tela pra alguém e não consigo pq ao criar um projeto, eu crio vários jframes no mesmo projeto e o netbeans junta tudo em apenas 1 arquivo.jar e com isso não consigo abrir as outras telas do projeto ou abre apenas 1 tela. Tem um jeito de resolver esse problema do NETBEANS? ou o jeito é criar 1 projeto e somente 1 arquivo pra cada frame? Desde já agradeço pela sapiência e pelo método de ensino que ajuda milhares de gafanhotos por esse brasil.

  • @amaliacristinap.cortabitar1262
    @amaliacristinap.cortabitar1262 8 ปีที่แล้ว

    Boa Noite!!!
    Essa agregação, seria como o pilar HERANÇA?

  • @jairfreitas1664
    @jairfreitas1664 3 ปีที่แล้ว +1

    Assistindo em 2021, mais alguém?

    • @JuanSilva-im8ve
      @JuanSilva-im8ve 3 ปีที่แล้ว

      Eu, comecei a duas semanas hehe

    • @jairfreitas1664
      @jairfreitas1664 2 ปีที่แล้ว +1

      @@JuanSilva-im8ve Refazendo em 2022...rsrsr

    • @JuanSilva-im8ve
      @JuanSilva-im8ve 2 ปีที่แล้ว

      @@jairfreitas1664 tmj mano kk