Skip to content

Tugas take home, seleksi dagozilla 2018, Bimo Adityarahman Wiraputra 13517004/16517346

Notifications You must be signed in to change notification settings

bimoadityar/seleksi_dagozilla_13517004_bimo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 

Repository files navigation

Take Home Test Seleksi Calon Kru Programming Dagozilla 2018

Mengandung hasil pengerjaan Take Home Test Seleksi Calon Kru Programming Dagozilla 2018 oleh Bimo Adityarahman Wiraputra, 13517004/16517346.
Folder source mengandung file minesweeper.cpp dan sudoku.py.

Problem 1 : Obstacle Avoidance

Menurut saya, pertama-tama robot memasukkan data posisi rintangan di lapangan berdasarkan gambar yang didapat, lalu robot menentukan rute dari posisi dia berada ke posisi yang diinginkan dengan beberapa parameter, seperti jarak terdekat dan cukup jauh dari rintangan yang ada. Sambil berjalan, robot terus memasukkan/mengupdate data posisi rintangan di lapangan dari gambar yang dia dapat. Jika ternyata rute yang dimiliki sudah menjadi tidak valid, seperti muncul rintangan di rute, maka robot akan menghitung ulang rute baru yang memenuhi. Hal ini dilakukan sampai robot mencapai posisi yang diinginkan.

Beberapa ide yang dapat memperbagus algoritma di atas adalah apabila robot dapat memprediksi posisi rintangan yang bergerak, atau menggunakan gabungan data dari robot-robot lain apabila ada.

Problem 2 : Algoritma program sudoku.py

Saat dijalankan sebagai program utama, dengan menuliskan di command line "sudoku.py problx solnx", progam sudoku akan membaca kondisi board mula-mula di file problx, menyelesaikannya dengan menjalankan fungsi solve_sudoku, dan mengoutputkan jawaban yang valid, apabila ditemukan, ke layar dan ke file solnx

Algoritma di dalam solve_sudoku bekerja dengan cara bruteforce, pertama mencari suatu kotak yang belum diisi, lalu mencoba mengisikannya dengan kemungkinan bilangan yang valid, yaitu bilangan yang belum pernah muncul sebelumnya di baris, kolom, atau blok yang sama dengan kotak kosong tersebut. Hasil board nya akan dimasukan kembali ke dalam fungsi solve_sudoku, dimana fungsi akan berhenti apabila ditemukan solusi board yang valid, atau mencoba kemungkinan bilangan lain yang dimasukkan ke kotak tersebut, sampai pada akhirnya solusi yang valid ditemukan atau semua kemungkinan pengisian board sudah dicoba dan tidak ditemukan solusi yang memenuhi.

Remark : saya rasa akan lebih baik apabila program pertama mengecek bahwa input board di probx valid terlebih dahulu.

Problem 3 : Alur program minesweeper.cpp

Pertama, program minesweeper menerima inputan nilai N dan B dari pemain, yaitu dimensi board dan banyak bom yang ada berturut-turut. Lalu program menginisialisasikan board dengan memilih secara acak B buah kotak untuk sebagai kotak yang mengandung bom (hal ini dilakukan dengan mempermutasikan array bilangan dari 0 sampai banyak kotak - 1, masing-masing menandakan satu kotak di board, lalu memilih B bilangan pertama di array dimana kotaknya akan diberikan bom. Kotak-kotak yang tidak mengandung bom akan menyimpan nilai yang menandakan banyak bom di sekitarnya.

Program akan terus mengoutput keadaan board dimana kotak yang belum dibuka/tereksplor bertanda '*', yang sudah dibuka dan mengandung bom bertanda 'x', dan sisanya bertanda angka yang menandakan banyak bom di sekitarnya. Pada awalnya semua kotak belum dibuka. Lalu pemain diminta untuk memilih untuk memilih kotak untuk dibuka. Kotak yang dipilih dan kotak yang bersebelahan dengan kotak bernilai 0 yang dibuka akan dibuka. Permainan akan terus berlanjut sampai pemain membuka semua kotak selain kotak yang mengandung bom dimana pemain menang, atau pemain membuka bom dimana pemain kalah.

Remark : Agak aneh bahwa program mengoutput kotak lokasi bom disimpan saat inisialisasi board.

About

Tugas take home, seleksi dagozilla 2018, Bimo Adityarahman Wiraputra 13517004/16517346

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published