Giter VIP home page Giter VIP logo

jogo-poo's Introduction

O Jogo

O objetivo deste trabalho é implementar um jogo de cartas virtual simples, tipo RPG de cartas ou Supertrunfo, inspirado no World of Warcraft. O jogo deve ser jogado automaticamente a partir de sorteios aleatórios. Implemente com o nível de sofisticação que achar que tem capacidade, mas entenda que o objetivo aqui é explorar todos os conhecimentos de POO que discutimos até aqui.

Você deve escrever uma classe principal chamada Jogo onde tudo irá acontecer. A hierarquia de classes abaixo deve ser escrita para que os personagens possam ser codificados. A classe superior, Personagem, deve ser uma classe abstrata que contenha os métodos relacionados a jogabilidade, como por exemplo perder ou ganhar vida. Nas classes Orcs e Humanos temos as características de cada povo, e devem ser classes de Interface, contendo os poderes e assinaturas de métodos que devem ser implementados pelos personagens em si (classes filha).

A Classe jogo conterá dois vetores de 100 personagens de cada povo, um de Orcs e outro de Humanos, que vão se enfrentar em 100 rodadas par-a-par. O personagem de índice 30 dos Orcs enfrenta o personagem de índice 30 dos Humanos, por exemplo. Ganhando aquele povo que, ao final de 100 rodadas, tiver a maior quantidade de personagens com maior quantidade de vida (soma dos personagens que tem mais vida na comparação par-a-par, ou seja, número de vitórias). Você deve implementar a interface Comparable para permitir a comparação das vidas diretamente pelo Objeto.

Portanto, todos os personagens, Orcs ou Humanos, tem uma determinada quantidade de vida, que deve iniciar com o valor 100. Dependendo de cada luta entre dois personagens, esse valor pode ser incrementado (ganha vida) ou decrementado (perde vida). Essa mudança vai acontecer com a diferença entre os valores dos atributos que estiverem envolvidos na luta, como explicarei mais adiante.

Os Orcs têm atributos de força, habilidade e agilidade e os Humanos de inteligência, velocidade e equipamentos. Quando se enfrentando, Orcs sempre lutam com Humanos, e vice-versa, através de um de seus atributos que deve ser sorteado. Sempre em pares força vs. inteligência, habilidade vs. velocidade e agilidade vs. equipamentos. Cada um desses atributos tem um valor inicial diferente para cada tipo de Orc ou de Humano. As tabelas abaixo detalharão isso.

Força Habilidade Agilidade
Ogro 60 60 20
Mago 20 80 40
Demônio 80 20 60
Inteligência Velocidade Equipamentos
Arqueiro 60 60 20
Soldado 20 80 40
Robô 80 20 60

Quando um Arqueiro enfrentar um Mago através dos atributos força vs. inteligência, teremos 60 pontos de Inteligência do Arqueiro vs. 20 pontos de Força do Mago, o que resultará na vitória do Arqueiro com 40 pontos de diferença. Isso fará com que o Mago que lutou contra o Arqueiro perca 40 pontos de vida, e que esse último ganhe 40 pontos de vida.

Retomando o jogo, para iniciar é preciso criar um vetor de Orcs e um de Humanos com 100 personagens de diferentes tipos de cada povo. Para criar um novo personagem, você deve instanciar aleatoriamente uma das 3 Classes de um dos tipos. O primeiro Orc pode ser, por exemplo, um Ogro e o primeiro Humano um Robô. Serão vários tipos de Orcs e de Humanos. Você precisa criar um método que mostre os tipos dos personagens do vetor de cada povo. Também é preciso mostrar o resultado de cada luta individual, indicando o vencedor. No final, é preciso mostrar o povo vencedor e o total de vida resultante de cada povo

Utilizem a classe Random para gerar os números aleatórios (https://www.devmedia.com.br/numeros-aleatorios-em-java-a-classe-java-util-random/26355). Usar também toString() para as impressões.

jogo-poo's People

Contributors

diaszano avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.