1"""
2[Title/Звание]
3Battleships Game
4
5[Description/Обрисовка]
6Целта на играта е да потопиш всички кораби на опонента си.
7
8Играят двама играчи един срещу друг. Всеки играч притежава набор от кораби,
9които поставя на своята част от дъската. Противниковият играч не вижда
10местоположението на корабите на своя опонент. Чрез изтрели към дадена клетка
11от дъската всеки играч се опитва да уцели противниковите кораби, като отгатва тяхното местоположение.
12След всеки изтрел играчът получава отговор дали е уцелил част от кораб или е пропуснал.
13Играчите се редуват, като всеки прави по един изтрел. Успешен изтрел, уцелена част от кораб, дава
14възможност за втори последващ изтрел. Даден кораб бива потопен когато всички негови части са уцелени.
15Играчът губи, когато всички негови кораби са потопени.
16
17Тагове: Turn-based game, 2-player game, 2D top-down game, strategy game, single player, multiplayer game, pvp game, board game
18
19[Functionalities/Надарености]
20
21## Основен вариант на играта
22
23Основният вариант на играта е документиран тук: https://en.wikipedia.org/wiki/Battleship_(game)
24
25Правила:
261. Игралното поле на всеки играч представлява мрежа от 10x10 клетки, където играчът разплога корабите си върху своето поле.
27
282. Всеки играч има на полето си:
29 - 1 кораб, състоящ се от 5 клетки;
30 - 2 кораба, състоящи се от 4 клетки;
31 - 3 кораба, състоящи се от 3 клетки;
32 - 4 кораба, състоящи се от 2 клетки;
33
343. Корабите не могат да се допират един до друг. Трябва да има поне едно поле разстояние
35между всеки два кораба (дори и по диагонала). Играчите не могат да местят корабите си,
36след приключване на началната фаза на играта - поставянето на корабите.
37
384. Всеки играч има право на един опит, в който стреля по една-единствена клетка.
39Единствено след успешен изтрел се получава възможност за стреляне
40по друга клетка в същия ход.
41
425. Печели този, който първи потопи корабите на опонента си.
43
44## Модерен вариант с gimmicks (Идеи)
45
46Играта предоставя варианти, където могат да се очакват нарушения
47по множество от гореописаните правила.
48
49Например:
50- игралното поле може да е с различен размер, да има обекти,
51с които играчите да взаимодействат.
52- други видове кораби извън стандартните.
53- вариант за изтрели, които покриват повече от една клетка.
54
55## Ботове
56
57Играта може да се играе single player срещу ботове.
58Предлага се възможност на играча да избере противников бот,
59използващ различни стратегии. Различната сложност на опонента
60предоставя възможност както за начинаещи, така и за напреднали играчи
61да имат оспорвана битка. Най-трудният бот използва оптимална стратегия.
62
63## Multiplayer
64
65Играта може да се играе в мрежа с друг играч - Player versus player (PvP).
66Това дава възможност за тестване на уменията срещу друг реален играч,
67който има собствена уникална стратегия. Играта срещу приятели и познати
68също е възможна.
69
70[Milestones/Възлови точки]
71- Начален екран - избиране на вид игра single player/ multiplayer.
72- Екран за началната фаза - поставянето на корабите (Interface).
73- Entity-та - игрално поле, кораби.
74- Visuals - визуална репрезентация на обектите.
75- Проверки за позицията на корабите.
76- Алгоритми за поведението на бота.
77- Осъществяване на връзка с реален противник при multiplayer.
78- Сървър, който поддържа игрите (всяка игра е стая). / Player-to-player връзка.
79- Главна логика на играта - начало, край, ход, изтрел, успешен/ неуспешен изтрел.
80- Проверки за потребителски вход (user input).
81
82[Usage of technologies/Потребление на технологии]
83- Pygame
84- Вградени модули - random, collections, sys, os.
85- Математически модули - алгоритми за ботовете.
86- За multiplayer-a socket, threading.
87
88[Estimate in man-hours/Времеоценка в човекочасове]
89- Разучаване на Pygame - 4 човекочасове.
90- Изготвяне на начална фаза за поставяне на кораби с повечето подробности - 20 чч.
91- Имплементиране на visuals - 6 чч.
92- Изготвяне на основната логика по играта + ботове - 12 чч.
93- Осъществяване на връзката между 2ма играчи - 12 чч.
94- Тестове - 12 чч.
95
96Общо - 66 човекочасове.
97
98Човекочасовете са скалируеми и не са задължително репрезентация на 1 час труд.
99Също така подлежат на стандартно отклонение от изписаното средно.
100
101[Out of scope/Допълнителни точки]
102- Извън обхвад на проекта, но интересна идея:
103Вариант с движещи се кораби след началната фаза.
104- Потребителски профил с Numpy/ Pandas за потенциални статистики.
105- Скалиране на трафика при голям брой клиенти при използване на сървър.
106- Красив user interface (UI).
107
108[Notes/ Бележки]
109- Частта с Modern variant може да бъде изцяло преместена в "Out of scope".
110- Фокусът на приложението може да се измести
111към Modern Variants and gimmicks в gameplay-a вместо Multiplayer, което да доведе
112до изместване на частта с Multiplayer-а/ Server-а в "Out of scope".
113- Името на играта подлежи на промяна спрямо идентифициране на фокуса и основния point на играта.
114Например ако има динозавър в морето кoйто изяжда случаен кораб, подходящо заглавие би било
115Seazavour Battleships Defence и т.н.
116"""
----------------------------------------------------------------------
Ran 0 tests in 0.000s
OK
Виктор Бечев
05.01.2024 14:13Проектът звучи супер, а като човек, който накрая ще стане свидетел или участник в играта - най-забавно би било да добавиш и "модерните" правила или като цяло нещо разчупено. :grin:
Като цяло go wild, на нас UI с Pygame, достатъчно логика, че да напишеш някой друг тест, мултиплеър и някакви интересни механики различни от стандартното ни върши работа (стандартното е сравнително проста имплементация). Какво точно ще представлява играта - зависи от теб.
|
Георги Кунчев
04.01.2024 14:06В общи линии си мисля, че си ги подредил правилно. Най-удачно ми звучи първото. Най-просто - последното. Аз гласувам за номер 1, но ако номер 2 ти е на душата, стреляй с него.
Номер 3 трябва да надградиш и/или да използваш доста разнообразни източници на информация. Номер 4 не виждам как би разширил достатъчно.
|
Теодор Костадинов
04.01.2024 13:05Не мога да преценя колко големи/ сложни биха били тези проекти. Времето за проучване може да надминава количеството код накрая (без първия safe bet). Не знам и точно колко функционалностти да предоставят за усложнение. Не коректно ли е да помоля за ваше мнение?
|
t | 1 | Multiplayer Battleships -> Base game + (variants/ gimmick), optimal bot algorithm, Pygame. | t | 1 | """ |
2 | Car API - statistical data for prices, mileage. Finds ads around you. Bot that talks with owner?, FastAPI | 2 | [Title/Звание] | ||
3 | Bot that automates searching for apartments to rent. | 3 | Battleships Game | ||
4 | Bot that automates finding a job in LinkedIn. | 4 | |||
5 | [Description/Обрисовка] | ||||
6 | Целта на играта е да потопиш всички кораби на опонента си. | ||||
7 | |||||
8 | Играят двама играчи един срещу друг. Всеки играч притежава набор от кораби, | ||||
9 | които поставя на своята част от дъската. Противниковият играч не вижда | ||||
10 | местоположението на корабите на своя опонент. Чрез изтрели към дадена клетка | ||||
11 | от дъската всеки играч се опитва да уцели противниковите кораби, като отгатва тяхното местоположение. | ||||
12 | След всеки изтрел играчът получава отговор дали е уцелил част от кораб или е пропуснал. | ||||
13 | Играчите се редуват, като всеки прави по един изтрел. Успешен изтрел, уцелена част от кораб, дава | ||||
14 | възможност за втори последващ изтрел. Даден кораб бива потопен когато всички негови части са уцелени. | ||||
15 | Играчът губи, когато всички негови кораби са потопени. | ||||
16 | |||||
17 | Тагове: Turn-based game, 2-player game, 2D top-down game, strategy game, single player, multiplayer game, pvp game, board game | ||||
18 | |||||
19 | [Functionalities/Надарености] | ||||
20 | |||||
21 | ## Основен вариант на играта | ||||
22 | |||||
23 | Основният вариант на играта е документиран тук: https://en.wikipedia.org/wiki/Battleship_(game) | ||||
24 | |||||
25 | Правила: | ||||
26 | 1. Игралното поле на всеки играч представлява мрежа от 10x10 клетки, където играчът разплога корабите си върху своето поле. | ||||
27 | |||||
28 | 2. Всеки играч има на полето си: | ||||
29 | - 1 кораб, състоящ се от 5 клетки; | ||||
30 | - 2 кораба, състоящи се от 4 клетки; | ||||
31 | - 3 кораба, състоящи се от 3 клетки; | ||||
32 | - 4 кораба, състоящи се от 2 клетки; | ||||
33 | |||||
34 | 3. Корабите не могат да се допират един до друг. Трябва да има поне едно поле разстояние | ||||
35 | между всеки два кораба (дори и по диагонала). Играчите не могат да местят корабите си, | ||||
36 | след приключване на началната фаза на играта - поставянето на корабите. | ||||
37 | |||||
38 | 4. Всеки играч има право на един опит, в който стреля по една-единствена клетка. | ||||
39 | Единствено след успешен изтрел се получава възможност за стреляне | ||||
40 | по друга клетка в същия ход. | ||||
41 | |||||
42 | 5. Печели този, който първи потопи корабите на опонента си. | ||||
43 | |||||
44 | ## Модерен вариант с gimmicks (Идеи) | ||||
45 | |||||
46 | Играта предоставя варианти, където могат да се очакват нарушения | ||||
47 | по множество от гореописаните правила. | ||||
48 | |||||
49 | Например: | ||||
50 | - игралното поле може да е с различен размер, да има обекти, | ||||
51 | с които играчите да взаимодействат. | ||||
52 | - други видове кораби извън стандартните. | ||||
53 | - вариант за изтрели, които покриват повече от една клетка. | ||||
54 | |||||
55 | ## Ботове | ||||
56 | |||||
57 | Играта може да се играе single player срещу ботове. | ||||
58 | Предлага се възможност на играча да избере противников бот, | ||||
59 | използващ различни стратегии. Различната сложност на опонента | ||||
60 | предоставя възможност както за начинаещи, така и за напреднали играчи | ||||
61 | да имат оспорвана битка. Най-трудният бот използва оптимална стратегия. | ||||
62 | |||||
63 | ## Multiplayer | ||||
64 | |||||
65 | Играта може да се играе в мрежа с друг играч - Player versus player (PvP). | ||||
66 | Това дава възможност за тестване на уменията срещу друг реален играч, | ||||
67 | който има собствена уникална стратегия. Играта срещу приятели и познати | ||||
68 | също е възможна. | ||||
69 | |||||
70 | [Milestones/Възлови точки] | ||||
71 | - Начален екран - избиране на вид игра single player/ multiplayer. | ||||
72 | - Екран за началната фаза - поставянето на корабите (Interface). | ||||
73 | - Entity-та - игрално поле, кораби. | ||||
74 | - Visuals - визуална репрезентация на обектите. | ||||
75 | - Проверки за позицията на корабите. | ||||
76 | - Алгоритми за поведението на бота. | ||||
77 | - Осъществяване на връзка с реален противник при multiplayer. | ||||
78 | - Сървър, който поддържа игрите (всяка игра е стая). / Player-to-player връзка. | ||||
79 | - Главна логика на играта - начало, край, ход, изтрел, успешен/ неуспешен изтрел. | ||||
80 | - Проверки за потребителски вход (user input). | ||||
81 | |||||
82 | [Usage of technologies/Потребление на технологии] | ||||
83 | - Pygame | ||||
84 | - Вградени модули - random, collections, sys, os. | ||||
85 | - Математически модули - алгоритми за ботовете. | ||||
86 | - За multiplayer-a socket, threading. | ||||
87 | |||||
88 | [Estimate in man-hours/Времеоценка в човекочасове] | ||||
89 | - Разучаване на Pygame - 4 човекочасове. | ||||
90 | - Изготвяне на начална фаза за поставяне на кораби с повечето подробности - 20 чч. | ||||
91 | - Имплементиране на visuals - 6 чч. | ||||
92 | - Изготвяне на основната логика по играта + ботове - 12 чч. | ||||
93 | - Осъществяване на връзката между 2ма играчи - 12 чч. | ||||
94 | - Тестове - 12 чч. | ||||
95 | |||||
96 | Общо - 66 човекочасове. | ||||
97 | |||||
98 | Човекочасовете са скалируеми и не са задължително репрезентация на 1 час труд. | ||||
99 | Също така подлежат на стандартно отклонение от изписаното средно. | ||||
100 | |||||
101 | [Out of scope/Допълнителни точки] | ||||
102 | - Извън обхвад на проекта, но интересна идея: | ||||
103 | Вариант с движещи се кораби след началната фаза. | ||||
104 | - Потребителски профил с Numpy/ Pandas за потенциални статистики. | ||||
105 | - Скалиране на трафика при голям брой клиенти при използване на сървър. | ||||
106 | - Красив user interface (UI). | ||||
107 | |||||
108 | [Notes/ Бележки] | ||||
109 | - Частта с Modern variant може да бъде изцяло преместена в "Out of scope". | ||||
110 | - Фокусът на приложението може да се измести | ||||
111 | към Modern Variants and gimmicks в gameplay-a вместо Multiplayer, което да доведе | ||||
112 | до изместване на частта с Multiplayer-а/ Server-а в "Out of scope". | ||||
113 | - Името на играта подлежи на промяна спрямо идентифициране на фокуса и основния point на играта. | ||||
114 | Например ако има динозавър в морето кoйто изяжда случаен кораб, подходящо заглавие би било | ||||
115 | Seazavour Battleships Defence и т.н. | ||||
116 | """ |
Legends | ||||||||||
---|---|---|---|---|---|---|---|---|---|---|
|
|