Решение на Време е да помислите за проектите си! от Димитър Аврамов

Обратно към всички решения

Към профила на Димитър Аврамов

Резултати

  • 7 точки от тестове
  • 0 бонус точки
  • 7 точки общо
  • 0 успешни тест(а)
  • 0 неуспешни тест(а)

Код

'''
[Заглавие]
• Судоку
[Описание]
• Проектът представлява класическата игра судоку, като освен, че дава възможност да се играе судоку, системата предоставя и решение на съответния пъзел, което потребителят може да види, ако пожелае.
[Функционалности]
• Дава възможност потребителят да избере желано от него ниво на трудност(easy, medium, hard), след което зарежда судоку
• Дава възможност за решаване на судокуто автоматично и визуализация на алгоритъма, ако потребителят поиска
• Дава възможност потребителят да използва подсказки(ограничен брой)
• Сигнализира при грешен ход, като при повече от 5 грешки играта приключва
• Дава възможност потребителят да маркира хода си с „молив“ (тоест да не прави официален ход, а да ползва нещо като чернова, за да не се отчита грешка)
[Модули]
• Sudoku Generator – генерира случайно судоку с желаната сложност, използвайки dokusan library
• Solver – модул, решаващ съответното судоку при желание на потребителя, използвайки backtracking algorithm (този подход гарантира решение стига судокуто да е валидно и също така скоростта му не зависи от трудността на судокуто)
• Validator – помощен модул за Solver, валидира дали може да се постави дадена цифра, за да се пусне рекурсивната функция
• Observer – модул, следящ играта на потребителя, спира играта при изчерпан лимит от възможни грешни ходове, следи за броя на оставащите подсказки
• Grid – модул представляващ матрица 9х9, върху която се изпълняват всички ходове на потребителя
• Drawing Manager/Visualizer – модул, отговарящ за потребителския интерфейс (представя случващото се в играта на потребителя)
• Helper Functions – модул, съдържащ повтарящи се функции, целящ да направи кода по-четим и преизползваем (този модул ще бъде добавен само ако има реална нужда от него и само ако ще помогне в подобряване качеството на кода)
[Време за изпълнение]
• В зависимост от натовареността до края на семестъра между 50 – 60 часа.
[Използвани технологии]
• Pygame, NumPy, Dokusan
'''

История (1 версия и 1 коментар)

Димитър обнови решението на 18.12.2022 11:09 (преди над 1 година)

+'''
+[Заглавие]
+
+• Судоку
+
+[Описание]
+
+• Проектът представлява класическата игра судоку, като освен, че дава възможност да се играе судоку, системата предоставя и решение на съответния пъзел, което потребителят може да види, ако пожелае.
+
+[Функционалности]
+
+• Дава възможност потребителят да избере желано от него ниво на трудност(easy, medium, hard), след което зарежда судоку
+• Дава възможност за решаване на судокуто автоматично и визуализация на алгоритъма, ако потребителят поиска
+• Дава възможност потребителят да използва подсказки(ограничен брой)
+• Сигнализира при грешен ход, като при повече от 5 грешки играта приключва
+• Дава възможност потребителят да маркира хода си с „молив“ (тоест да не прави официален ход, а да ползва нещо като чернова, за да не се отчита грешка)
+
+[Модули]
+
+• Sudoku Generator – генерира случайно судоку с желаната сложност, използвайки dokusan library
+• Solver – модул, решаващ съответното судоку при желание на потребителя, използвайки backtracking algorithm (този подход гарантира решение стига судокуто да е валидно и също така скоростта му не зависи от трудността на судокуто)
+• Validator – помощен модул за Solver, валидира дали може да се постави дадена цифра, за да се пусне рекурсивната функция
+• Observer – модул, следящ играта на потребителя, спира играта при изчерпан лимит от възможни грешни ходове, следи за броя на оставащите подсказки
+• Grid – модул представляващ матрица 9х9, върху която се изпълняват всички ходове на потребителя
+• Drawing Manager/Visualizer – модул, отговарящ за потребителския интерфейс (представя случващото се в играта на потребителя)
+• Helper Functions – модул, съдържащ повтарящи се функции, целящ да направи кода по-четим и преизползваем (този модул ще бъде добавен само ако има реална нужда от него и само ако ще помогне в подобряване качеството на кода)
+
+[Време за изпълнение]
+
+• В зависимост от натовареността до края на семестъра между 50 – 60 часа.
+
+[Използвани технологии]
+• Pygame, NumPy, Dokusan
+'''

Идеята звучи добре. Виждам, че ползваш dokusan, което, без да влизам в детайли, изглежда, че ще свърши доста голяма част от черната работа.
Има риск да се окаже, че това, което ти сам пишеш, е прекалено лесно. backtracking алгоритъмът за момента те подпира, но си на границата да твърдя, че проектът ти е прекалено лесен за имплементация.
Опитай се да напишеш възможно най-много сам, без да се осланяш на готови библиотеки (не че по принцип бих те посъветвал да преоткриваш топлата вода, но за Судоку вече има стотици неща, които могат да се използват, а ти искаш да ни убедиш в личните си познания и умения).

Успех!