Skip to content

amalewskiy/minesweeper-python-tkinter

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

15 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Minesweeper

Opis Zadania

  • Główne okno (dalej jako menu) zawiera cztery przyciski:
    • Beginner - odświeża menu i tworzy pole dla gry o parametrach: długość - 9, szerokość - 9 (przycisków), min - 10,
    • Intermediate - robi to samo tylko o parametrach: długość - 16, szerokość - 16 (przycisków), min - 40,
    • Expert - robi to samo, tylko o parametrach: długość - 16, szerokość - 30 (przycisków), min - 99,
    • Сustom - robi to samo, tylko pobiera informacje z trzech pól tekstowych (height, width, mines) o podanych użytkownikowi parametrach (domyślnie długość - 16, szerokość - 30 (przycisków), min - 145).
  • Wprowadzenie mniejszego rozmiaru planszy niż 5x5, powoduje wyświetlenie komunikatu o blędzie. Nie można rozpocząć gry dopóki te parametry nie są poprawne. W przypaku podania za dużej liczby min, program tworzy nową grę i oblicza liczbe min za folmulą `len(height) * len(width) - 1`
          • error
  • Na początku gry na losowych polach umieszczane jest tyle min ile wskazano w polu tekstowym lub w zależności od poziomu trudności.
  • Na górze programu znajdują się następujące widgety:
    • Przycisk Menu (lub ESC) - który konczy grę i wraca do menu,
    • Przycisk NG (New Game) - który zaczyna nową gre,
    • Etykieta która pokazuje ile pozostało min do dezaktywacji.
  • Po kliknięciu lewym przyciskiem na pole:
    • Jeśli w tym polu znajduje się mina, wyświetlana na dole jest wiadomość o przegranej grze, a następnie pokazuje wszystkie miny które pozostały do dezaktywacji (czerwonym kolorem) i gra się kończy,
    • Jeśli w sąsiedztwie pola są miny, na przycisku wyświetlana jest ich liczba a pole dezaktywuje się,
    • Jeśli wartość pola (min w sąsiedztwie) wynosi zero, to rekurencyjnie bedą otwierane i dezaktywowane najblizsze pola, które mają w sąsiedztwie chociaż jedną minę.
            • leftBtn
  • Po kliknięciu prawym przyciskiem na pole, zmienia tło na zielone, co program rozumie to jako "jest tu mina", i etykieta obniża watość o jeden. W przypadku kliknięcia prawym przyciskiem na pole które już ma zielone tło, program zwróci poprzednie tło i etykieta zwiększa watość min do dezaktywacji o jeden
            • rightBtn
  • Gra kończy się po kliknięciu wszystkich pól bez min, lub oznaczeniu "tu jest mina", i program wywietla o tym na dole wiadomość.

Testy

  1. test_Input_String - ten test probuje rozpocząć gre w trybie "Custom" podając litery.
  2. test_Input_Invalid_Data - ten test probuje rozpocząć gre w trybie "Custom" podając niepoprawne wartośći.
  3. test_Empty_Input- ten test probuje rozpocząć gre w trybie "Custom" nie podając żadnych wartośći.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages