1"""
2[Title/Звание]
3The perfect minesweeper AI (A.K.A The Mindsweeper)
4
5[Description/Обрисовка]
6Класическите правила на играта Minesweeper, които всички познаваме:
7(дълго обяснение, изкарано от уикипедия) -
8В играта мините са разпръснати на дъска, която е разделена на клетки.
9Клетките имат три състояния: неотворени, отворени и маркирани. Неотворена клетка е празна и върху нея може да се кликне,
10докато в отворената клетка седи число. Играчът може да маркира клетка, за да посочи потенциално местоположение на мина.
11Играчът избира клетка, за да я отвори. Ако играч отвори клетка с мина, играта приключва.
12В противен случай отворената клетка показва или число, указващо броя на мините по диагонал и/или в съседство с нея.
13Играта е спечелена, ако всички клетки бъдат отворени, без да бъде отворена нито една мина.
14
15За да направим нещата по-модерни, достойни за почти приключилата 2024-та година, ще накодим не само обикновения Minesweeper,
16но и AI, който да играе вместо нас. Този AI ще бъде най-добрия миночистач на света. Той ще бъде толкова умен, че ще бъде познат
17като The Mindsweeper.
18
19NB: Никой не е безгрешен, дори най-добрия играч може да бъде поставен пред ситуация, в която има 50% вероятност да загуби
20(има ходове в играта, който са чисто на късмет). Така че има шанс дори великия ни AI The Mindsweeper да загуби,
21но гарантирано винаги ще предприема оптималните ходове.
22
23
24[Functionalities/Надарености]
25 - Потребителят ще може да избере размер на дъската за игра и колко мини да има поставени върху нея
26 - Потребителят ще дава команда Mindsweeper Move, когато иска AI-a да направи следващия най-оптимален ход
27
28
29[Milestones/Възлови точки]
30Оххх сложната част...
31 - Графичен интерфейс, първо на основното меню, после и на дъската
32 - Генериране на дъската с разпръснатите мини по нея
33 - Логика, седяща зад самата игра Minesweeper
34 - маркиране на мина от играча
35 - отваряне на клетка от играча (ако е 1ва клетка за играта трябва да поддържаме винаги на този ход да не може да се загуби)
36 - ако е мина - прекратяване на играта
37 - иначе - логика за изчисление на числото, което трябва да се изпише
38 - Mindsweeper AI, който да играе, взимайки най-добрите решения
39
40
41[Estimate in man-hours/Времеоценка в човекочасове]
42Да посмятаме:
43 - Графичен интерфейс, първо на основното меню, после и на дъската: 15 часа
44 - Логика на играта: 21 часа
45 - Mindsweeper AI: 23 часа
46 - Unit tests: 10 часа
47Общо: 69 човекочасове
48(със сигурност не е нагласено ;) )
49
50
51[Usage of technologies/Потребление на технологии]
521. Python
532. Pygame
54"""
----------------------------------------------------------------------
Ran 0 tests in 0.000s
NO TESTS RAN
Георги Кунчев
03.12.2024 10:17За да направиш Minesweeper не се изискват много неща. Очаквам да се получи доста лесно.
За бота използваш гръмкото име "AI", което реално може да е една рекурсивна функция, която да търси решение.
Ако ти е интересно, действай, но знай, че едва ли ще се бориш за максимален брой точки.
Не мога да дам идеи как да го надградиш, но ако ти имаш такива, чувствай се свободна да разшириш основната си идея и да добавиш още неща, за да покажеш повече знания.
|