Saper (gra komputerowa)

Z Wikipedii, wolnej encyklopedii
Skocz do: nawigacja, szukaj
Saper na przykładzie kompilacji KMines w systemie Linux

Saper (tytuł oryginalny Minesweeper) – klasyczna jednoosobowa gra komputerowa napisana w 1981 roku przez Roberta Donnera, dostępna jako akcesorium w każdym systemie Microsoft Windows do wersji 7. Od wersji 8 i RT dostępne do ściągnięcia w sklepie Windows[1] (istnieją też wersje dla innych systemów operacyjnych). Gra polega na odkrywaniu na planszy poszczególnych pól w taki sposób, aby nie natrafić na minę. Na każdym z odkrytych pól napisana jest liczba min, które bezpośrednio stykają się z danym polem (od zera do ośmiu). Jeśli oznaczymy dane pole flagą, jest ono zabezpieczone przed odsłonięciem, dzięki czemu przez przypadek nie odsłonimy miny.

Typy rozgrywki[edytuj | edytuj kod]

Oryginalna windowsowa wersja gry zawiera 4 typy rozgrywki:

  • Początkujący – plansza 8×8 pól, 10 min, ryzyko trafienia na minę: 15,625%
  • Zaawansowany – plansza 16×16 pól, 40 min, ryzyko trafienia na minę: 15,625%
  • Ekspert – plansza 30×16 pól, 99 min, ryzyko trafienia na minę: 20,625%
  • Plansza użytkownika – gracz sam wybiera rozmiary planszy (od 8×8 do 30×24 pól) i liczbę min (od 10 do 667).

Możliwa maksymalna liczba min zależna jest od rozmiarów planszy. Dla planszy o rozmiarach A×B maksymalna liczba wynosi (A-1)×(B-1), czyli np. na planszy o rozmiarach 16×16 pól może być najwyżej 15×15=225 min.

W rzeczywistości szansa na trafienie miny jest nieznacznie większa, gdyż pierwsze odsłonięte pole na planszy nigdy nie będzie polem z miną. Począwszy od systemu Windows 2000 najmniejszy dopuszczalny rozmiar planszy wynosi 9x9 pól – i taki jest zastosowany na poziomie Początkujący. Szansa na trafienie miny wynosi w tym wypadku 12,346%. Zmianie uległy również nazwy poziomów: Zaawansowany na Średniozaawansowany, a Plansza użytkownika na Niestandardowy.

Strategia[edytuj | edytuj kod]

Zależy ona głównie od wielkości pola i liczby min. Im mniejsze pola, tym mniej czasu należy poświęcać pojedynczym polom. Ze wzrostem wielkości pola więcej czasu należy poświęcić na poszczególne przypadki, które są bardziej złożone. Ponieważ układ min jest losowy, powtórzenie układu praktycznie nie powinno się zdarzyć. Jednakże możliwa jest sytuacja, w której plansza jest niejednoznacznie zdefiniowana, tzn. nie można określić, w którym dokładnie miejscu znajduje się mina. Sytuacje takie zdarzają się m.in. w końcowych etapach rozgrywki (pozostają 2 pola do odsłonięcia i 1 mina do wstawienia). Niektóre z wersji gry nie dopuszczają do takiej sytuacji generując ponownie układ planszy.

Gracze stosują 2 odmienne style gry:

  • Flagging (FL): styl, w którym zaznacza się chorągiewkami miejsca min (umożliwiając double-click – dlatego gra z flagami jest szybsza na Zaawansowanym i Expercie, oraz na Początkującym gdy chcemy mieć dobre 3BV/s). 3BV planszy nie ma dużego wpływu na szybkość przejścia planszy.
  • Non-flagging (NF): styl, w którym nie zaznacza się min. 3BV planszy ma duży wpływ na szybkość przejścia planszy. Styl ten umożliwia osiągnięcie lepszych wyników na Zaawansowanym niż grając stylem flagging, jednak tylko wtedy gdy plansza ma niskie 3BV (30-35).

Klony i warianty gry[edytuj | edytuj kod]

Powstało wiele klonów gry pod różne systemy operacyjne (np. KMines napisana pod środowisko graficzne KDE systemu operacyjnego Linux). Oprócz standardowych trybów rozgrywki niektóre z nich oferują różne warianty rozgrywki takie jak:

  • inny wygląd planszy (inne wymiary planszy, sześciościenne pola, trójwymiarowa plansza) – np. Minesweeper 3D,
  • możliwość występowania większej liczby min na jednym polu,
  • brak możliwości wystąpienia niejednoznacznych sytuacji na planszy lub przeciwnie, możliwość trafienia na minę już w pierwszym kroku.

Dodatkowo część programów (np. Minesweeper Clone) oferuje rozbudowane statystyki odbytych gier.

Ocena stopnia skomplikowania planszy[edytuj | edytuj kod]

Stopień trudności planszy jest najczęściej oceniany na podstawie współczynnika 3BV (skrót od Bechtel's Board Benchmark Value – Miara skomplikowania planszy Bechtela)

3BV[edytuj | edytuj kod]

Plansza dla początkujących z 3BV równym 20

Stephen Bechtel prawdopodobnie jako pierwszy liczył kliknięcia lewym klawiszem myszki, jaka jest niezbędna do rozwiązania planszy w grze. W czerwcu 2002 roku opisał tę metodę w oficjalnej księdze gości gry Saper. Niedługo potem Benny Benjamin nadał tej metodzie nazwę 3BV. W przeciągu następnych dwóch miesięcy Yoni Roll i Benny Benjamin napisali narzędzie obliczające 3BV danej planszy na podstawie zrzutów ekranu z gry.

W 2003 roku Sorin Manea napisał program rejestrujący rozgrywkę Sapera, który wyświetlał 3BV jak również liczbę kliknięć myszką. Był to pierwszy program obliczający 3BV/s (3BV na sekundę) dla rozgrywki.

W 2004 roku Rodrigo Silveira Camargo opublikował grę "Minesweeper Clone", która zawierała wiele funkcji związanych z 3BV, takich jak: ustalanie konkretnej liczby lub przedziału 3BV, z której ma składać się plansza. Dodatkowo program prowadził statystyki ukończonych gier.

Metoda obliczania 3BV[edytuj | edytuj kod]

  • Każde kliknięcie, które odsłania wyspę (pole z 0 min dookoła) traktowane jest jako 1 3BV – białe kropki na rysunku.
  • Każde pole z liczbą, które nie jest krawędzią wyspy (białe linie na rysunku) traktowane jest jako 1 3BV – zielone kropki na rysunku.

Suma wszystkich 3BV określa współczynnik 3BV.

3BV/s[edytuj | edytuj kod]

Współczynnik 3BV/s oblicza się z następującego wzoru: 3BV/s = 3BV/(rzeczywisty czas przejścia planszy). Dla przykładu: Jeżeli plansza posiada współczynnik 3BV równy 32 i jest ukończona w 16 sekund, to współczynnik 3BV/s wynosi 32/16 = 2.

Współczynnik ten pokazuje szybkość gry gracza, jednakże jest mniej popularny od szybkości podanej w czasie odsłonięcia planszy.

Saper jako sport[edytuj | edytuj kod]

Od kilkunastu lat istnieje prowadzona przez Kanadyjczyka, Damien Moore'a, strona internetowa poświęcona Saperowi (link na dole strony). Strona zawiera Oficjalny Światowy Ranking Sapera, na który można się dostać po uzyskaniu sumy czasów przejścia wszystkich trzech podstawowych poziomów (Początkujący, Zaawansowany, Ekspert) poniżej 100 sekund. Strona oferuje także różne, ulepszone wersje Sapera (na przykład liczące czas z dokładnością do tysięcznej części sekundy, automatycznie nagrywające replay rozegranej gry, posiadające nieraz bardzo rozbudowane statystyki, itp.), rozbudowaną Wikipedię Sapera, forum, artykuły, linki, replaye różnych graczy, itp.

Turnieje[edytuj | edytuj kod]

Mało osób wie, że w Sapera odbywały się turnieje, w większości międzynarodowe. Łącznie było ich już 13 (4 w Budapeszcie (Węgry), 4 w Wiedniu (Austria), 3 w Moskwie (Rosja), 1 w Szanghaju (Chiny), 1 w Stirling (UK)). Oficjalna Strona Rankingowa Sapera prowadzi również Ranking Turniejowy.

Osiągalność wyników[edytuj | edytuj kod]

Oficjalny rekord świata na Ekspercie wynosi 32 (31,133) sekundy. Każdy wynik poniżej 40 uznawany jest za bardzo dobry, a poniżej 50 za dobry (nagrodą jest News napisany na oficjalnej stronie rankingowej Sapera). Natomiast na Zaawansowanym oficjalny rekord świata wynosi 8 (7,03) sekund. Za bardzo dobry uznaje się wynik poniżej 11 (nagrodą również jest News napisany na oficjalnej stronie rankingowej Sapera). Ciekawostką jest, że wszystkie oficjalne rekordy świata należą do Polaka, Kamila Murańskiego[2].

Ciekawostki[edytuj | edytuj kod]

  • W teorii obliczeń gra jest traktowana jako problem NP-zupełny. Bardziej szczegółowe informacje na ten temat można znaleźć na angielskojęzycznych stronach: Richarda Kaya oraz Iana Stewarta.
  • Dreamboard – najprostsza plansza na poziomie Zaawansowanym, występującą w klasycznych windowsowych wersjach (winmine3.1, winmine98, winminexp). Plansza ma 3BV równe 30 i tylko 3 openingi. Po kilkuletnich badaniach przeprowadzonych przez społeczność Sapera dowiedziono, że klasyczne windowsowe wersje Sapera posiadają dokładnie 24160 różnych plansz na poziomie Zaawansowanym. Obecnie Oficjalny Światowy Ranking Sapera posiada własną listę wersji Sapera, akceptowanych w Rankingu, a klasyczne windowsowe wersje zostały wycofane, zanim jednak to nastąpiło, plansza ta (Dreamboard), jako jedyna, została zakazana (rekordy pobijane na niej nie liczyły się). Więcej informacji o Dreamboardzie i planszach występujących w zwykłych wersjach można znaleźć na Stronie Rankingowej Sapera.

Możliwość oszukiwania[edytuj | edytuj kod]

W grze możliwe jest oszukiwanie na kilka sposobów:

  • Poziomy Początkujący i Zaawansowany posiadają na tyle mało różnych plansz, że można te łatwiejsze nauczyć się na pamięć, co znacznie przyśpiesza grę w przypadku trafienia na nie.
  • Po uruchomieniu gry można wpisać "xyzzy", a następnie przycisnąć kombinację <SHIFT> + <ENTER>. Spowoduje to, iż lewy górny piksel ekranu będzie się świecił na biało, gdy pod nieodkrytym polem nie ma miny albo na czarno, gdy mina się tam znajduje. Powyższy kod działa pod większością systemów Windows (pod systemami Windows 95, Windows 98 oraz Windows NT 4.0 piksel jest widoczny, jeżeli standardowy pulpit Explorera nie jest włączony)
  • Po odsłonięciu pierwszego pola można wcisnąć prawy i lewy klawisz myszki i jednocześnie wcisnąć klawisz <ESCAPE>. Spowoduje to zatrzymanie się licznika. Inna wersja tego kodu polega na wciśnięciu tylko lewego klawisza myszki na już odsłoniętym polu i jednoczesnym przyciśnięciu klawisza <ESCAPE>. Kod ten nie działa pod systemem Windows XP
  • W systemie Windows 2000 licznik zatrzymuje się po wciśnięciu klawisza <ESCAPE>.
  • Możliwa jest ręczna edycja pliku winmine.ini, w którym zapisane są rekordy. Nie działa to pod systemem Windows XP. W tym przypadku wyniki zapisane są w rejestrze w HKEY_CURRENT_USER\Software\Microsoft\Winmine.
  • Czas zatrzymuje się również w przypadku kliknięcia i przytrzymania klawisza na buźce Sapera (przycisku, który rozpoczyna nową grę). Dopóki nie zwolni się klawisza czas nie będzie upływał.
  • Czas nie będzie upływał, jeżeli gra jest zminimalizowana. Pod systemem Windows XP szybkie zminimalizowanie <Klawisz Windows + D>, a następnie natychmiastowe przywrócenie okienka i kliknięcie w niezbadane pole powoduje zatrzymanie upływu czasu.

Przypisy

Linki zewnętrzne[edytuj | edytuj kod]