Giter VIP home page Giter VIP logo

desafio-jogo-rpg-dio's Introduction

1º Desafio C#

Criando uma aplicativo RPG com pilares POO.

  1. Abstração
  2. Herança
  3. Encapsulamento
  4. Polimosfismo

Abaixo temos o Diagrama de Classe do aplicativo RPG.

RPG

Exemplos do Códigos usados

Abstração

Aqui criamos uma classe Character para abstrair as caracteristicas básico dos personagens.

Herança:

A classe Hero herdou todos as Atribuitos e Métodos da classe Character.

// -------------------
// Exemplo de Herança
// -------------------
internal class Hero : Character
{
    public Hero(string name, int health, int attack, int defense,
    ClassType classtype, Races races) : base(name, health, attack, 
    defense, classtype, races)
    {
    }

    void Luck()
    {
        //ToDo
    }
    void Range()
    {
        //ToDo
    }
}

Encapsulamento:

A mudança da vida do personagem só pode ser alterando dentro do classe onde esse atributo foi criado.

// --------------------------
// Exemplo de Encapsulamento
// --------------------------
public bool Defending(int attack)
{
    
    int ataque = attack + Dices.OneDice(20);
    int defesa = Defense + Dices.OneDice(20);
    int dano = ataque - defesa;
    bool returnDefending = false;
    if (dano > 0)
    {
        _health -= dano;
        if (_health < 0)
            _health = 0;
        returnDefending = true;
        
    }
    return returnDefending;
}

Polimosfismo:

Aqui mudamos a método ToString( ) da classe base Object.

    // ------------------------
    // Exemplo de Polimosfismo
    // ------------------------
    public override string ToString()
    {
        return ($"Name: {Name}\n
                  Health: {Health}\n
                  Attack: {Attack}\n
                  Defense: {Defense}\n
                  ClassType: {ClassType}\n
                  Races: {Races}");
    }

desafio-jogo-rpg-dio's People

Contributors

sidneibrianti avatar

Watchers

 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.