Skip to content

semesvetnik/GamesOfThrones

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Описание приложения

  1. \netcoreapp1.1;
  2. LogNT;
  3. Модульные тесты.

Тестовое задание. Консольная игра "Heroes Of Might And Random"

Правила

В мире "Heroes Of Might And Random" существует 2 замка - замок "Оплот" и замок "Некрополис" В каждом замке есть свои юниты, у каждого типа юнита есть заранее заданное кол-во жизней и сила урона, который они могут наносить врагу. Сила урона юнита - не постоянное значение, выбирается случайным образом, но находится в границах заранее заданного диапазона. Описание юнитов каждой из замков: Замок "Оплот" Типы юнитов:

  1. Кентавр Жизни: 100 Урон: От 20 до 40

  2. Эльф Жизни: 200 Урон: От 20 до 30

  3. Пегас Жизни: 50 Урон: От 5 до 50

Замок "Некрополис" Типы юнитов:

  1. Скелет Жизни: 150 Урон: От 15 до 30

  2. Зомби Жизни: 50 Урон: От 20 до 30

  3. Вампир Жизни: 150 Урон: От 10 до 60

В игре участвуют два игрока - человек против компьютера, компьютер должен обладать искусственным интеллектом и ходить самостоятельно. Перед сражением, игроки выбирают себе замок и получают по армии юнитов. Армия юнитов состоит из отрядов юнитов определенного типа, кол-во юнитов в отряде выбирается случайным образом в диапазоне от 5 до 10. Право первого хода дается случайным образом, после этого игроки начинают по очереди делать ходы. Суть хода заключается в том, что игрок выбирает каким отрядом он будет ходить и на какой отряд врага будет нападать. При нападении на отряд врага, он получает урон, равный суммарному урону всех юнитов нападающего отряда, при этом урон случайно распределяется среди всех юнитов отряда врага, кол-во жизней у юнитов, при этом, уменьшается, а если жизни юнита заканчиваются - он погибает. Победителем игры считается тот, кто первым убил всех юнитов соперника.

Вопросы/ответы по ТЗ

  1. Что значит "искусственный интеллект" компьютера? Он должен достаточно хорошо играть против человека? Как определяется качество игры "искусственного интеллекта"?

Ответ: "Искусственный интеллект" – это речевой оборот, чтобы обозначить программу, которая умеет играть по заданным правилам. Качество игры мы не оцениваем, нужно только соблюдение правил и умение играть рандомно.

  1. Знает ли игрок о количестве, типах юнитов и количестве оставшихся жизней каждого юнита своего врага? 
    

Есть ли у него эта информация в любой момент времени, в том числе - перед выбором своего очередного хода? Другими словами, является ли игра игрой с полной информацией?

Ответ: Да, игрок знает все о своих/чужих юнитах в любой момент времени.

  1. Какое максимальное количество отрядов в армии? 
    

Ответ: В каждой армии по три отряда ( по 1 отряду каждого типа юнитов)

  1. В чем измеряется урон, наносимый противнику, в жизнях? 
    

Ответ: Да, в жизнях

  1. Что будет, если размер урона, нанесённого юниту, больше количество оставшихся у него жизней? 
    

"Излишний" урон перераспределяется на его "сослуживцев" или просто сгорает?
Ответ: Излишний урон сгорает, да.

  1. Получает ли урон игрок, который нападает на текущем шаге? 
    

В постановке указано лишь, что урон получает обороняющийся игрок. Ответ: Нападающий игрок не получает урон.

  1. Какое распределение урона среди юнитов в отряде? Равномерное/нормальное/биномиальное...?
    

Например,

  1. Отряд А игрока 1 состоит из трех кентавров с указанным уроном в скобках: А{k1(20), k2(30), k3(40)}. 
    

Здесь сумма = 90;

  1. Отряд B игрока 2 состоит из двух вампиров  с указанным уроном в скобках: B{v1(60), v2(20)}. Здесь сумма = 80.
    
  2. Отряд B нападает на А. Нужно распределить 80 очков случайным образом среди трех кентавров. 
    

Можно использовать равномерное распределение с диапазоном [0, 80] для первого кентавра, затем равномерное распределение остатка (например, в диапазоне [0, 55], если первому выпало 25 очков) на второго, а на третьего полностью отнести то, что осталось после второго. Можно использовать какую-то другую вероятностную модель распределения урона. От этого зависит построение стратегии, поэтому нужен точный ответ.

Ответ: В пределах одного хода урон у одинаковых юнитов в отряде совпадает. Т.е. если есть 3 кентавра, то каждый из них наносит урон 20, например, а не первый 20, второй 30, а третий 40. Если есть 2 вампира, то каждый наносит урон 60. Равномерное распределение урона, которое вы описали, подходит.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published