[Проект] Mafia/Werewolf Party Game

  1. Идея

    Имплементация на играта Mafia (Party Game), също така известна като Werewolf, която ще се играе от терминала.

    Gameplay

    За нормалното протичане на играта се нуждаем от поне 6 души.

    Съществуват поне 4 роли в играта:

    1. Невинен
    2. Мафия
    3. Лекар (x1)
    4. Шериф (x1)

    Всяка вечер в ГоТаун членовете на мафията се събират в местната кръчма "Toronto" и решават да сложат край на живота на един жител.

    След тайния разговор на мафията, местният лекар се събужда и изпраща мъфин на случаен жител.

    Ако избраният от мафията е получил мъфинче, той не умира.

    Ако все пай някой е умрял, сутринта жителите на ГоТаун се събират в 02 ФМИ, където трябва да изберат кого да обвинят за убийството, за да може шерифът да го вкара в затвора.

    Играта приключва, когато всички мафиоти са в затвора или всички останали жители са избити.

    Реализация

    Ще има централен сървър, който ще разпределя порциите. Всеки играч ще се свързва с централния сървър и на случаен принцип ще получи роля, но преди това трябва да си въведе името.

    Един цикъл на играта може да се опише по следния начин:

    1. Събеседване на членовете на мафията в чата и гласуване за избиране на жертва. (kill <име>)
    2. Спасяване на случаен играч от страната на лекаря. (save <име>)
    3. Общо събеседване на всички играчи в чата за намиране на убиеца и гласуване за изпращане на убиеца зад решетките. (blame <име>)

    Естествено, ГоТаун е демократична град-държава, където действа пропорционалната система за гласуване.

    Централният сървър ще поддържа един активен чат за всички членове, който ще бъде забранен за някои играчи, в зависимост от етапа в играта. Например, ако сме в 1ви етап, сървърът ще отключи чата само за членовете на мафията, 2ри - лекар, 3ти - всички.

  2. @Ivan Borshukov Да, ще има.

    Сървърът ще установява TCP връзка с клиентите и те ще могат да създават стаи посредством командата create room < room_name > или да се присъединяват към вече съществуващи стаи използвайки join < room_name >.

    Играта ще може да бъде стартирана от създателя на стаята използвайки командата start game, когато се съберат поне 6 души.

    Всяка игра ще се пуска от сървъра в отделна го-рутина, което ще позволи на сървъра да слуша за нови клиенти, да създава нови стаи и да пуска нови игри, докато се изпълняват другите игри.

Трябва да сте влезли в системата, за да може да отговаряте на теми.