Proyek ini adalah implementasi permainan Tic-Tac-Toe interaktif yang dijalankan di dalam Jupyter Notebook menggunakan IPyWidgets. Permainan ini dilengkapi dengan agen cerdas yang menggunakan algoritma Breadth-First Search (BFS) dan memanfaatkan dataset historis untuk memandu keputusannya. Agen cerdas ini akan menjadi lawan pemain dan berusaha untuk menang atau minimal menghindari kekalahan.
- Antarmuka Interaktif: Menggunakan IPyWidgets untuk menciptakan antarmuka permainan yang interaktif langsung di dalam Jupyter Notebook.
- Agen Cerdas dengan BFS: Agen menggunakan algoritma BFS yang dipandu oleh dataset untuk memilih langkah terbaik.
- Dataset Historis: Menggunakan dataset
Tic tac initial results.csvyang berisi riwayat permainan Tic-Tac-Toe sebelumnya untuk memandu agen. - Feedback Real-time: Permainan memberikan pesan status secara real-time, termasuk giliran pemain, kemenangan, kekalahan, atau seri.
- Reset Permainan: Fitur untuk mereset permainan dan memulai kembali tanpa harus menjalankan ulang seluruh notebook.
- Python 3.x
- Jupyter Notebook atau Google Colab
- Library Python:
pandasnumpyipywidgets
Jika Anda belum menginstal Python dan Jupyter Notebook, Anda dapat mengunduh dan menginstal Anaconda Distribution yang sudah mencakup keduanya:
- Anaconda Distribution: https://www.anaconda.com/products/individual
Atau, Anda dapat menggunakan Google Colab yang tidak memerlukan instalasi dan dapat dijalankan langsung di browser.
Jika Anda menggunakan Jupyter Notebook lokal, buka terminal atau command prompt dan jalankan perintah berikut untuk menginstal library yang dibutuhkan:
pip install pandas numpy ipywidgetsAktifkan ekstensi widgetsnbextension:
jupyter nbextension enable --py widgetsnbextensionJika Anda menggunakan Google Colab, library ini sudah terinstal, tetapi Anda perlu mengaktifkan ipywidgets dengan menjalankan beberapa perintah tambahan (akan dijelaskan di bagian berikutnya).
Pastikan Anda memiliki file dataset Tic tac initial results.csv dan letakkan di direktori yang sama dengan notebook Anda. Dataset ini digunakan oleh agen cerdas untuk memandu keputusannya.
Anda dapat menjalankan permainan ini dengan mudah menggunakan Google Colab. Silakan klik link berikut untuk membuka notebook dan menjalankannya secara langsung:
Jalankan Tic-Tac-Toe dengan Agen Cerdas di Colab
-
Buka Link Colab
Klik link di atas untuk membuka notebook di Google Colab.
-
Mengunggah Dataset
- Di Colab, Anda perlu mengunggah file dataset
Tic tac initial results.csv. - Di panel kiri, klik ikon Folder untuk membuka file explorer.
- Klik tombol Upload (ikon dengan tanda panah ke atas), dan unggah file
Tic tac initial results.csv. - Pastikan file tersebut ada di direktori root (langsung di bawah
/content).
- Di Colab, Anda perlu mengunggah file dataset
-
Menjalankan Sel Kode
- Jalankan sel-sel kode secara berurutan dari atas ke bawah.
- Beberapa sel mungkin memerlukan izin untuk menginstal atau mengaktifkan ekstensi; ikuti instruksi yang diberikan.
-
Mengaktifkan IPyWidgets di Colab
-
Jalankan perintah berikut di sel terpisah untuk mengaktifkan
ipywidgetsdi Colab:!pip install ipywidgets from google.colab import output output.enable_custom_widget_manager()
-
-
Memulai Permainan
- Setelah semua sel dijalankan, Anda akan melihat pesan "Permainan dimulai. Giliran Anda." dan papan permainan.
- Klik pada sel kosong untuk melakukan gerakan Anda.
-
Bermain
- Nikmati permainan melawan agen cerdas!
- Gunakan tombol "Reset Permainan" jika Anda ingin memulai ulang.
-
Memulai Permainan
- Pesan "Permainan dimulai. Giliran Anda." akan ditampilkan.
- Papan permainan kosong akan ditampilkan dengan tombol interaktif.
-
Melakukan Gerakan
- Klik pada salah satu sel kosong untuk melakukan gerakan Anda.
- Anda adalah pemain 'X', dan agen cerdas adalah pemain 'O'.
-
Giliran Agen
- Setelah Anda melakukan gerakan, agen cerdas akan otomatis melakukan gerakannya.
- Pesan status akan diperbarui untuk memberi tahu Anda giliran siapa atau hasil permainan.
-
Mengakhiri Permainan
- Permainan akan berakhir jika salah satu pemain menang atau jika permainan berakhir seri.
- Pesan akan ditampilkan sesuai dengan hasil permainan:
- "Selamat! Anda menang!"
- "Maaf, Anda kalah. Agen menang."
- "Permainan berakhir seri!"
-
Mereset Permainan
- Untuk memulai permainan baru, klik tombol "Reset Permainan".
- Papan permainan dan pesan akan direset, dan Anda dapat bermain kembali.
- Memuat dataset menggunakan
pandasdan mengganti nilai'?'denganNaN. - Mengonversi kolom MOVE menjadi tipe numerik dan memproses jalur kemenangan dari data historis.
is_winner(board, player): Mengecek apakah pemain tertentu telah menang.is_draw(board): Mengecek apakah permainan berakhir seri.get_available_moves(board): Mendapatkan daftar gerakan yang tersedia.apply_move(board, move, player): Menerapkan gerakan pada papan.
bfs_agent_with_dataset(board, player, winning_paths): Agen cerdas menggunakan BFS dan dataset untuk menentukan langkah terbaik.
- State Permainan: Variabel global digunakan untuk melacak state permainan.
- Fungsi
render_board(): Menampilkan papan permainan interaktif. - Fungsi
player_move(cell_index): Menghandle gerakan pemain dan agen. - Fungsi
reset_game(b): Mereset permainan ke state awal. - Output Widgets: Menggunakan
widgets.Outputuntuk menampilkan pesan dan papan permainan secara interaktif tanpa menumpuk output.
-
Interaktivitas dalam Colab
-
Google Colab mendukung IPyWidgets, tetapi Anda perlu mengaktifkannya dengan menjalankan perintah:
!pip install ipywidgets from google.colab import output output.enable_custom_widget_manager()
-
-
Versi Library
- Pastikan library yang diinstal adalah versi terbaru untuk kompatibilitas terbaik.
-
Dataset
- Dataset
Tic tac initial results.csvharus memiliki format yang benar dan diunggah ke Colab setiap kali Anda menjalankan notebook.
- Dataset
-
Manajemen State
- State permainan dikelola melalui variabel global. Pastikan untuk tidak mengubahnya secara manual selama permainan berlangsung.
-
Desain Antarmuka
- Menyesuaikan tampilan papan permainan dengan CSS atau menambahkan elemen visual lainnya untuk pengalaman bermain yang lebih baik.
-
Strategi Agen
- Mengembangkan strategi agen lebih lanjut atau menggunakan algoritma lain untuk meningkatkan kemampuan agen.
-
Analisis Permainan
- Menambahkan fitur untuk merekam dan menganalisis riwayat permainan.
-
Ekstensi Permainan
- Mengubah ukuran papan atau aturan permainan untuk variasi yang lebih menantang.