Сите ние како помали се имаме играно со сложувалки, претежно од со слика на некој од хероите од цртаните филмови. Jigsaw Puzzle е едноставна имплементација на оваа игра на компјутер во која главната цел е да се состави претходно поделена слика на мали парчиња. Играта има 3 начини на играње лесно, средно и тешко. Исто така, за време на играњето постои опција за повремено покажување на помош – односно сликата која ја составуваме да ни се прикаже избледена во позадина. Постои и опција за рестартирање на играта.
Почетниот поглед на играта се состои од 5 копчиња, слика и кратко упатство за играње на играта. Со играње може да се почне на три начини:
- Со избирање на една од веќе дадените слики
- Со отворање на слика која сакаме да ја сложуваме
- Со drag and drop на некоја слика над формата
На копчето – Select puzzle – се отвора нова форма од која може да избереме слика за игра.
На копчето – Atach your picture – се отвара file Dialog прозорец со што може да избереме наша слика за играње.
На копчето означено со знаменце ( surrender ) – ја рестартираме играта.
Следно е копчето Mode, со клик на ова копче го менуваме начинот на игра во лесно, средно или тешко.
Hide Hint Image или Show Hint Image се користи за време на играње на играта и со ова својство се прикажува / брише замаглената слика од позадина.
Со клкинување врз – Select your game – се отвора нова форма во која има 10 слики.
Во оваа форма има објаснување како да се избере слика, односо со кликнување врз една од сликите се избира истата и се почнува со играње.
Играта може да се игра на лесно, средно и тешко ниво.
Во зависност од одбраното ниво на игра,сликата се дели на повеќе еднакви делчиња. Исто така од нивото на играта зависат уште два параметри тоа се snapDistance и snapDifference кои одредуваат на која одалеченост ќе се спојат две делчиња при нивно доближување.
Моја препорка е на easy да се игра, најлесно е :D .
Основната логика на играта е добро позната : состави ги сите делчиња за да победиш.
Делчињата немора да се наместат директно врз сликата која стои во позадина, односно да имаат фиксна позиција, туку може да се составуваат било каде на површината.
Откако ќе се состави сложувалката, се додека играчот не почне нова игра, сложената слика останува на површината со што може играчот може уште да си ја движи чувствувајќи се гордо што успеал да ја состави :P .
Играта е составена од вкупно 6 класи и 2 форми.
Game – ова е оснновната класа на играта во која што се чуваат сите делчиња и функциите кои ја прават основната логика на играта.
GameSettings – Статичка класа во која се чуваат основните својства врз кои се темели играта.Односно, ширина и висина на минималната слика која може да се внесе, ширина и висина на делчињата на играта, на колку растојание да се спојуваат парчињата и слично.
ImageProcessing – Класа во која се наоѓаат сите функции за обработка на сликите, како на пример намалување на слика, промена на транспарентност и слично.
Piece – Класа во која се чуваат информации за едно делче од играта, како на пример, позиција, сликата со која е представено истото и слично.
Cluster – Класа во која се чува листа на делчиња од играта. Потребна зашто кога ќе се спојат две делчиња или повеќе мора да бидат групирани некако.
Во формата Images се чуваат сликите од кои играчот може да избира со каква слика сака да составува сложувалка.
Откако ќе се внесе слика,( на било кој начин од горе наведените ), во зависност од нивото на играта ( лесно, средно, тешко ), се поставуваат параметрите ( големина на едно парче, растојание на кое се спојуваат делчињата) во класага GameSettings. Потоа се креира нова инстанца од класата Game и се креираат инстанци од класите Piece и Cluster.
Во настанот mouseMove, прво се проверува дали постои селектирано делче и ако постои, истото цело време се прецртува на новата позиција. Со едноставни математички пресметки се проверува дали истото може да се спои со некое друго делче и од која страна.
Малку потешко беше средувањето на проблемите од типот на прецртувањето на делчињата на пообемни слики кое во некои случаи работеше бавно. Со соодветен resize на сликите и користење на дополнителен бафер со битмапа, успеавме да ги решиме овие проблеми.
#enjoy playing





