Flowchart "How To Win Minesweeper"

Berikut ini merupakan Flowchart untuk memenangkan Game Minesweeper




Mungkin anda merasa janggal pada 6 loop yang berderet seperti tusukan bakso, disini saya akan menjelaskan masing-masing ke 6 loop tersebut urut dari awal hingga terakhir yang mendekati "You Won":

Pada dasarnya mengapa loop yang ada didalam flowchart ini berjumlah 6 karena saya menggunakan 6 fungsi  for pada pseudocodes saya.

  1. Loop pertama, merupakan perulangan dari for terakhir yaitu pengulangan dari kolom 1 hingga m pada pencarian Zona Aman Bom.
  2. Loop kedua, merupakan perulangan dari for kelima yaitu perulangan dari baris 1 hingga n pada pencarian Zona Aman Bom
  3. Loop ketiga, merupakan perulangan dari for keempat yaitu perulangan dari kolom 1 hingga m pada pencarian Zona Pasti Bom
  4. Loop keempat, merupakan perulangan dari for ketiga yaitu perulangan dari baris 1 hingga n pada pencarian Zona Pasti Bom
  5. Loop kelima, merupakan perulangan dari for kedua  yaitu perulangan dari kolom 1 hingga m pada pencarian Apakah ada atau tidak Zona Pasti Bom.
  6. Loop terakhir, merupakan loop yang terdekat dengan "You Won" adalah perulangan dari for pertama yang membahas mengenai perulangan dari baris 1 hingga n pada pencarian Apakah ada atau tidak Zona Pasti Bom.
Sehingga dapat dipastikan, setelah Loop terakhir selesai maka.................
  Anda Pasti Menang
Selamat Mencoba ....

See also:

Pseudocode Analysis "How To Win Minesweeper"


Bermain Minesweeper berbeda dengan Memenangkan Minesweeper. Untuk bermain Minesweeper hanya diperlukan Jari Tangan dan dapat dipastikan dalam 2-10 langkah pemain akan Kalah. Berbeda halnya dengan Memenangkan Minesweeper, Memenankan Minesweeper tidak hanya diperlukan Jari Tangan, namun diperlukan pula Logika dan Algoritma supaya dapat Memenangkan Permainan ini. 

Jadi,,,, Inginkah Anda Menang Minesweeper??

Maka dari itu admin memberikan Algoritma agar pembaca dapat memenangkan Minesweeper setelah membaca tuntas seluruh artikel ini.


Berikut merupakan Analisa Pseudocode untuk memenangkan Minesweeper. Agar pembaca tidak bingung sewaktu membaca yang mana yang analisa dan yang mana yang pseudocode, maka saya membedakan pseudocode asli dengan penjelasan rinci. Pseudocode asli dikemas dengan Bahasa Inggris dan penjelasan rinci menggunakan Bahasa Indonesia.


Ini adalah pseudocodes aslinya:

pseudocode_minesweeper(nilaibox, i, j, n, m :integer)

Totalrows:=n

Totalcolloumn:=m

//open a starter nilaibox(i,j), actually this is random, but I usually open the center box, I believe the center box make bigger opening than others, this is a tips too I think (^^)v
                open nilaibox([n/2],[n/2])

//here we go to find boms!!

 for j= 1 to n
   for j:= 1 to n
if there's an equal nilaibox as equal as clossed box
                then find bomb by find an equal box as equal as clossed box
                for i:= 1 to n
                                for j:= 1 to n
                                                if nilaibox(i,j)==clossed_box_arround_it
                                                                then right click on the close box (flagged)
                                                //open the other box which are not bombs (flagged)
                                                                for i:= 1 to n
                                                                                for j:= 1 to n
                                                                                                if nilaibox(i,j)==totalflagged
then open another clossed box arround it (by double click on nilaibox(i,j))
else use the Advanced Arithmetical Method on the plain clossed boxes
                then find bomb by find an equal box as equal as clossed box
                for i:= 1 to n
                                for j:= 1 to n
                                                if nilaibox(i,j)==clossed_box_arround_it
                                                                then right click on the close box (flagged)
                                                //open the other box which are not bombs (flagged)
                                                                for i:= 1 to n
                                                                                for j:= 1 to n
                                                                                                if nilaibox(i,j)==totalflagged
then open another clossed box arround it (by double click on nilaibox(i,j))

Jangan pusing dahulu, dapat kita lihat tulisan warna Biru yang atas sama dengan tulisan warna Biru yang bawah, berikut merupakan penjelasan satu-satu secara rincinya:

procedure how_to_win_minesweeper(nilaibox, i, j, n, m :integer)


Totalrows:=n
 Total rows disini diartikan sebagai jumlah baris dalam permainan minesweeper, dan selanjutnya disebut "n" agar mudah dalam langkah - langkah berikutnya. Dibawah ini merupakan spoiler dari totalrows:
Totalcolloumn:=m
 Sama halnya dengan Total rows, Totalcolloumn disini diartikan sebagai jumlah kolom dalam permainan minesweeper, dan selanjutnya disebut "m" agar mudah dalam langkah - langkah berikutnya. Dibawah ini merupakan spoiler dari totalcolloumn:
//open a starter nilaibox(i,j), actually this is random, but I usually open the center box, I believe the center box make bigger opening than others, this is a tips too I think (^^)v
                open nilaibox([n/2],[m/2])

Untuk memulai permainan ini, diperlukan suatu pembukaan yang luar biasa agar mudah untuk menemukan Zona Pasti Bom maupun Zona Aman Bom diawal permainan. Salah satu tips dari saya, saya telah mencoba berkali-kali untuk membuat suatu pembukaan yang luar biasa mulai dari pojok-pojokan namun ada kalanya membuka box dipojok-pojok tidak membuat suatu pembukaan yang luar biasa bahkan kadang muncul bom. Namun hal ini tidak terjadi lagi ketika saya mencoba untuk membuat suatu opening di tengah-tengah kolom dan baris box, alias nilaibox([n/2],[m/2]). Mengapa saya menggunakan [] karena kolom dan baris total pada minesweeper tidak selalu genap, maka ketika total baris dan kolom bersifat ganjil maka akan otomatis membulatkan atau round. Berikut spoilernya pembukaan ditengah:
//here we go to find boms!!

 for i= 1 to n
   for j:= 1 to n
if there's an equal nilaibox as equal as clossed box
                then find bomb by find an equal box as equal as clossed box
Setelah melakukan opening yang baik ditengah-tenga kolom dan baris maka selanjutnya yang harus dikerjakan adalah menemukan apakah ada nilaibox yang terbuka memiliki box yang masih tertutup sejumlah dengan nilai yang muncul pada nilaibox dengan kata lain yang lebih mudah Apakah Ada Zona Pasti Bom?. Berikut spoilernya supaya tidak bingung:
 Gambar diatas merupakan contoh apabila ada nilaibox (bernilai satu) yang masih memiliki (satu) box tertutup. Karena ada salah satu saja yang sesuai dengan pernyataan diatas maka kita bisa melanjutkan ke perintah selanjutnya yaitu menandai Zona Pasti Bom.
                for i:= 1 to n
                                for j:= 1 to m
                                                if nilaibox(i,j)==clossed_box_arround_it
                                                                then right click on the close box (flagged)

Disini merupakan proses Pencarian Zona Pasti Bom. Mengapa perlu dua for? karena Minesweeper merupakan permainan platform dua dimensi sehingga memerlukan perulangan pertama untuk Baris dan perulangan kedua untuk Kolom. Jikalau nilaibox(i,j) memiliki nilai yang sama dengan jumlah box yang masih tertutup disekitarnya seperti nilaibox(i-1,j-1), nilaibox(i,j-1), nilaibox(i+1,j-1), nilaibox(i-1,j), nilaibox(i+1,j), nilaibox(i-1,j+1), nilaibox(i,j+1) maupun nilaibox(i+1,j+1) maka lakukan klik kanan atau dengan kata lain menandai pada box yang masih tertutup tersebut. Berikut merupakan spoilernya:
Jikalau persyaratan terpenuhi seperti gambar diatas ini, maka lakukanlah penandaan atau klik kanan pada box yang masi tertutup tersebut. berikut spoilernya:


Setelah melakukan proses penandaan atau klik kanan pada Zona Pasti Bom, maka kita bisa melanjutkan untuk proses selanjutnya yaitu proses pencarian Zona Aman Bom. Dibawah ini adalah langkah-langkah yang digunakan untuk mencari Zona Aman Bom.
                                                //open the other box which are not bombs (flagged)
                                                                for i:= 1 to n
                                                                                for j:= 1 to m
                                                                                                if nilaibox(i,j)==totalflagged
                                                                                                                then open another clossed box arround it (by double click on nilaibox(i,j))
Sama dengan proses pencarian Zona Pasti Bom, Proses Pencarian Zona Aman Bom memerlukan dua for karena Minesweeper merupakan permainan platform dua dimensi sehingga memerlukan perulangan pertama untuk Baris dan perulangan kedua untuk Kolom. Jikalau nilaibox(i,j) memiliki nilai yang sama dengan jumlah box yang telah ditandai (telah diklik kanan) disekitarnya seperti nilaibox(i-1,j-1), nilaibox(i,j-1), nilaibox(i+1,j-1), nilaibox(i-1,j), nilaibox(i+1,j), nilaibox(i-1,j+1), nilaibox(i,j+1) maupun nilaibox(i+1,j+1) maka lakukan double klik pada nilaibox(i,j) tersebut untuk membuka Zona Aman Bom disekitarnya. Berikut merupakan spoilernya:

Pada gambar diatas dapat dilihat, nilaibox(6,2) bernilai 1, serta nilaibox(6,2) memiliki 1 box yang telah ditandai, maka pemain dapat mendouble klik nilaibox(6,2) karena disekitar nilaibox(6,2) sekarang sudah pasti Zona Aman Bom, kecuali box yang ditandai bendera. Berikut merupakan spoilernya:

Setelah menyelesaikan satu permasalahan, maka pemain akan melakukan pegulangan lagi untuk mencari Zona Pasti Bom, setelah menemukan Zona Pasti Bom maka pemain akan mencari Zona Aman Bom, begitu pula seterusnya. Berikut merupakan spoilernya:


else use the Advanced Aritmetical Method (AAM) on the plain clossed boxes
//exactly this Advanced Aritmetical Method (AAM) is used for Advance level not Beginner or Intermediet because the advance one is rather difficult than another


Nah sudah dijelaskan pada Teori Dasar Minesweeper, apabila pemain Tidak menemukan lagi Zona Aman Bom dan Zona Pasti Bom maka pemain harus melakukan Advanced Aritmetical Method (AAM). AAM ini tidak perlu dilakukan apabila bermain pada level Beginner dan Intermediet, namun AAM ini sangat diperlukan untuk memenangkan permainan di level Advance, karena sangat sering pemain akan dihadapkan pada kondisi tidak ada lagi Zona Aman maupun Zona Pasti Bom, semua yang ada hanyalah Zona Penebakan.
Setelah pemain menyelesaikan Zona Penebakan, maka pemain dapat melanjutkan kembali menandai Zona Pasti Bom dan membuka Zona Aman Bom dengan cara yang sama seperti proses Pseudocode warna biru yang sama diatas. Begitu pula seterusnya disinilah gunanya dua for yang pertama, mereka akan terus mengulang hingga Zona Aman Bom terbuka semua yang berarti "You Win".

See also:

Advanced Arithmetical Method (AAM)

Seperti yang telah dijelaskan pada Teori Dasar Minesweeper, Advance Arithmetics Method diperlukan untuk menyelesaikan Zona Penebakan ketika sudah tidak ada lagi Zona Pasti Bom maupun Zona Pasti bukan Bom. Seperti namanya, Advance Aritmetics Method menggunakan metode penyelesaian Zona Penebakan menggunakan suatu proses aritmatika. Untuk lebih pahamnya berikut merupakan contoh penerapan AAM.


Pada gambar di bawah diketahui bahwa nilaibox(1,2) berisi angka 1 dan dikelilingi huruf x dan y. Maka, dapat ditarik kesimpulan bahwa di antara box x dan y terdapat bom tapi tidak keduanya. Jika dinyatakan dalam pernyataan maka x + y = 1.

Selanjutnya perhatikan box (2,2) yang bernilai 2 dan dikelilingi oleh box x,y dan z, yang berarti terdapat dua bom di antara box x, y dan z. Maka persamaannya adalah x+y+z =2.

Dari persamaan x + y =1 dan x+y+z = 2 , maka dapat diselesaikan dengan persamaan berikut :



  • x+y = 1
  • x+y+z = 2
  • (x+y)+z = 2
  • 1+z=2

Maka z = 1 
Dengan didapatnya z = 1, berarti box z adalah box yang berisi bom.





Karena telah diketahui bahwa box z adalah Zona Pasti Bom kita dapat membukabox  disekitarnya yang sudah menjadi Zona Aman Bom.




See also:

Teori Dasar Minesweeper


Kali ini akan dibahas mengenai tiga  teori dasar Minesweeper yang akan membantu dalam memainkan Minesweeper terutama bagi orang awam yang belum pernah mengenal Minesweeper sama sekali. Berikut adalah ilustrasi singkat minesweeper.

  • 1.    Zona Aman Bom
                Pada kasus berikut anggap pemasangan bendera selalu terpasang pada posisi bom. Box x, y, z dan a sudah pasti bukan bom, karena di sekeliling box 1 yang dilingkari sudah terdapat 1 bom dan  karena kondisi sudah terpenuhi tersebut maka box x, y, z dan a pasti bukan bom.
Gambar Zona Aman Bom
  • 2.    Zona Pasti Bom 

Pada kasus selanjutnya box x, y dan z sudah pasti bom karena hanya box x, y dan z yang memenuhi kondisi tersebut.
Zona Pasti Bom 

  • 3.     Zona Penebakan
  Zona Penebakan
Pada kasus di atas , pemain diwajibkan memilih satu box antara x, y dan z yang bebas dari bom. Untuk mengatasi permasalahan pada zona penebakan pemain bisa langsung menebaknya mana yang berisikan bom dan mana yang bebas bom, namun game ini tidak di design untuk pemain yang memiliki tingkat kehokian yang besar seperti game Poker. Game ini dimainkan berdasarkan kepastian analisa angka pada box, jadi untuk mengatasi adanya Zona Penebakan ini, pemain bisa melewatinya dahulu zona ini dan menemukan zona yang pasti lainnya. Apabila sudah mencapai puncaknya alias sudah tidak ditemukan lagi zona pasti, maka anda bisa melakukan penebakan dengan  Advanced Arithmetical Method (AAM).



Bermain Minesweeper



Permainan ini diawali dengan sebuah minefield kosong. Pemain harus membuka box yang dapat berisi box kosong,angka ataupun bom. Jika anda mengklik bom, maka permainan berakhir. Hindari semua box yang berisi bom dan buka semua box yang kosong untuk memenangkan permainan.
Artificial Inteligence yang digunakan pada minesweeper adalah constraint satisfaction problem, CPS. Sebuah problem matematika yang mendeskripsikan kumpulan obyek yang harus memenuhi keadaan tertentu. Seperti pada teka teki silang , pembukaan box tidak harus sekuensial menurut soal ataupun kedekatan posisi box.


MICROSOFT mendeskripsikan minesweeper sebagai berikut :
  • You can uncover a square by clicking it. If you uncover a mine you lose the game.

  • If a number appears on a square, it indicates how many total are mines in the eight squares that surround the numbered one. You can use this number to help deduce wether a square is safe to uncover.


  • To mark a square you suspect contains a mine, right click it. This will add a flag to the square. If you’re not sure right click it again, which will add a question mark to the square. 


See also:

Minesweeper


Menurut Wikipedia Minesweeper adalah permainan komputer untuk satu pemain. Tujuan permainan ini adalah untuk membersihkan lahan permainan tanpa mengenai bom. Permainan ini telah ditulis kembali untuk hampir semua platform. Versi yang paling terkenal adalah versi Minesweeper untuk Windows, yang disertakan dalam Windows 3.1 keatas.
Menurut saya Minessweeper adalah sebuah permainan platform yang membutuhkan logika berfikir terhadap suatu kumpulan angka, sama halnya seperti permainan platform Sudoku. Kedua permainan ini membutuhkan logika berfikir terhadap suatu kumpulan angka. Bagi gamers yang senang adu otak menggunakan angka permainan ini sangat tepat sekali untuk dimainkan.
Minesweeper adalah permainan single player paling sukses yang pernah dibuat . Bahkan melebihi the sims , tetris dan World of Warcraf . Minesweeper diluncurkan pada tahun 1990 sebagai bagian dari windows entertainment pack sebelum di promosikan untuk menjadi fitur standar pada windows 3.1 dan seterusnya. Minesweeper adalah permainan asli Microsoft, dibuat oleh Curt Johnson dan Robert Donner. Asal usul minesweeper berasal dari permainan pada computer mainframe pada tahun 60an – 70an.
Minesweeper bertujuan untuk membuka box yang kosong dan menghindar dari box yang berisi bom pada minefield yang berbentuk persegi berukuran i x j yang selanjutnya dinamakan box(i,j) untuk masing-masing box yang berada pada Minesweeper (ukurannya ditentukan oleh tingkat kesulitan). Berikut adalah ukuran minefield berdasarkan tingkat kesulitannya :
  1. Beginner     : 10 bom , ukuran box 9 x 9
  2. Intermediate : 40 bom , ukuran box 16 x 16.
  3. Advanced     : 99 bom , ukuran box 16 x 30.
  4. Custom       : menentukan bom (range : 10 - 668), tinggi box (range : 9 – 24), menentukan lebar box (range : 9 – 30).
Pada level Beginner dan Intermediet cukup mudah untuk dimenangkan karena tidak membutuhkan Advanced Arithmetical Method (AAM). Namun level Advance sebaliknya, Advanced Arithmetical Method (AAM) acap kali digunakan untuk membuka box yang bukan bom serta menemukan box yang berisi bom.


See also: