Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Item {
- int price, weight, type;
- public Item(int price, int weight, int type){
- this.price = price;
- this.weight = weight;
- this.type = type;
- }
- }
- class Enemy{
- int hp, damage;
- int exp;
- public Enemy(int hp, int damage, int exp){
- this.hp = hp;
- this.damage = damage;
- this.exp = exp;
- }
- }
- abstract class Hero{
- protected String nickName;
- protected int s, a, i, exp, hp, mana; // сила ловкость интеллект
- опыт здоровье мана
- protected int x, y; // координаты героя на карте
- protected ArrayList<Item> items = new ArrayList<>(); // список поднятых предметов
- protected int damage; // урон
- public int getMana(){
- return mana;
- }
- public int getDamage(){
- return damage;
- }
- public int getHp(){
- return hp;
- }
- public void goToCursor(int xx, int yy){
- x = xx; y = yy;
- }
- public abstract void attack(Enemy enemy); // этот метод должнен быть определен в классах наследниках
- public abstract void defense(Enemy enemy);// этот метод должнен быть определен в классах наследниках
- public void openItem(Item item){
- // метод должен добавлять предмет в список с вероятностью 50 %
- // для осуществления вероятностных процессов можно использовать случайное число от 0 до 100.
- }
- }
- class Warrior{
- public Warrior(){
- //базовые значение
- }
- /*
- класс должен обладать всеми свойствами героя при создании воин должен
- обладать следующими характеристиками:
- здоровье - 500, мана - 10, сила - 100, ловкость - 50, интеллект - 1,
- опыт 0, урон - 150. При атаке герой наносит цели урон и получает урон в
- ответ от цели, действия повторяются пока кто то не победит. В случае
- победы герой получает опыт цели, каждые 500 единиц опыта герой получает
- новый уровень. Новый уровень дает +10 ко всем характеристикам, +200
- здоровья и +20 урона.Если воин имеет предмет 1 типа, к его урону
- добавляется 100.
- Уже мертвая цель - урона герою не наносит!!!
- */
- }
- class Archer{
- public Archer(){
- //базовые значение
- }
- /*
- класс должен обладать всеми свойствами героя при создании лучник должен обладать следующими характеристиками: здоровье - 200, мана - 50, сила - 20, ловкость - 150, интеллект - 30, опыт 0, урон - 200.
- атака по аналогии с воином, но в процессе атаки лучник имеет 30% шанс избежать урон
- лучник всегда открывает предмет - 100%
- Новый уровень дает +10 ко всем характеристикам, +50 здоровья и +50 урона и 30 ловкости.
- */
- }
- class Magician{
- public Magician(){
- //базовые значение
- }
- private ArrayList<Item> casts = new ArrayList<>();
- /*
- класс должен обладать всеми свойствами героя при создании маг должен обладать следующими характеристиками: здоровье - 100, мана - 5000, сила - 5, ловкость - 30, интеллект - 300, опыт 0, урон - 40.
- атака по аналогии с воином
- помимо обычной атаки, маг имеет возможность бить заклинанием в процессе атаки
- защита мага осуществляется магическим щитом, который полгащает весь урон, но вместо здоровья тратит ману. Новый уровень дает +10 ко всем характеристикам, +30 здоровья, 1000 маны и +10 урона.
- В случае возможности убить врага с руки - маг бьет с руки!!! в Первую очередь
- */
- public void makeCast(Enemy enemy){
- // если в списке есть заклятия можно его произнести потратив 100 маны и нанеся 1000 урона цели.
- // после произнесения предмет из списка пропадает
- }
- public void eduCast(Item item){
- /*
- если предмет или предметы из списка имеют тип 2, это заклинания
- и их нужно добавить в список
- заклинаний мага
- */
- }
- }
- public class TestClass {
- public static void main(String[] args) throws IOException {
- Hero myHero = new Warrior();
- // Hero myHero = new Archer();
- // Hero myHero = new Magician();
- ArrayList<Enemy> enemies = new ArrayList<>();
- enemies.add(new Enemy(30, 20, 1200)); // 1 - Крестьянин
- enemies.add(new Enemy(2018, 1, 350)); // 2 - Стая собак
- enemies.add(new Enemy(280, 50, 3050)); // 3 - Вор
- enemies.add(new Enemy(100500, 100500, 100500)); // 4 -
- Берсерк
- //найден клад
- for (int i = 0; i < 300; i++) {
- Item item = new Item(0, 0, i % 3); // i%3 - будет задавать
- предмету тип 0, 1, 2
- myHero.openItem(item); // герои получает предмет в руки
- }
- System.out.println("Всего собрано: " + myHero.items.size());
- // бой!
- int count = 1;
- for (Enemy enemy : enemies) {
- System.out.println(count++ + "-й бой:");
- System.out.println(" Герои { hp=" + myHero.hp + " mana=" +
- myHero.mana + " }");
- System.out.println(" Враг { hp=" + enemy.hp + " }");
- int counter = 1;
- while (myHero.hp > 0 & enemy.hp > 0) {
- System.out.println(counter++ + " раунд:");
- myHero.attack(enemy);
- myHero.defense(enemy);
- System.out.println(" Герои { hp=" + myHero.hp + "
- mana=" + myHero.mana + " }");
- System.out.println(" Враг { hp=" + enemy.hp + " }");
- }
- System.out.println(myHero.hp > 0 ? "Победа, герой получил
- опыт " + enemy.exp : "Поражение");
- System.out.printf("Герой { HP=%d, MANNA=%d, damage=%d,
- exp=%d }n", myHero.hp, myHero.mana, myHero.damage, myHero.exp);
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement