Pemberitahuan: Ini king-of-the-bukit tantangan telah selesai. Ini berarti bahwa tanda centang hijau, yang telah diberikan kepada C5H8NNaO4 untuk entri mereka, Pengamat tidak akan dipindahkan ke jawaban baru apa pun.
Anda mungkin masih mengirimkan entri baru, tetapi mungkin ada penundaan dalam turnamen baru berjalan karena saya tidak aktif memeriksa entri baru lagi.
pengantar
Dalam tantangan ini, Anda bermain gim arcade berjudul The Ultimate Samurai Showdown Edisi Khusus Ultimate Version 2.0 X Alpha Omega Turbo (atau hanya Ultimate Samurai Showdown ). Lawanmu? Tidak lain adalah anggota lain dari Programming Puzzles & Code Golf!
Seperti yang mungkin Anda harapkan dari game arcade PPCG, Anda tidak bermain Ultimate Samurai Showdown secara langsung, tetapi menulis program yang akan memainkan game untuk Anda. Program ini akan berjuang melawan program yang diajukan oleh pengguna lain dalam duel satu lawan satu. Program yang paling terampil akan dinobatkan sebagai Samurai Tertinggi PPCG, dan diberikan tanda centang hijau legenda.
Deskripsi Game
Bagian ini menjelaskan mekanisme di balik game.
Kondisi Kemenangan
Sebuah pertandingan terdiri dari dua samurai yang menghadapi off melawan satu sama lain. Setiap samurai memulai setiap pertandingan dengan 20 poin hit dan 1 kehormatan . Seorang samurai menang jika lawannya mati dan dia masih hidup. Ada dua metode yang digunakan seorang samurai untuk mati:
- Jika poin hit samurai diturunkan ke 0, dia akan mati.
- Jika seorang samurai membawa kehormatan mereka sendiri di bawah 0, ia akan dihajar oleh para dewa karena bertindak tidak terhormat dalam duel.
Dipukul oleh para dewa memiliki prioritas lebih tinggi daripada memiliki poin hit dikurangi menjadi 0, jadi dalam situasi di mana satu samurai berada pada 0 poin kesehatan dan yang lainnya pada kehormatan -1, samurai dengan 0 poin kesehatan akan menang. Dalam situasi di mana kedua samurai berada di kehormatan -1, mereka berdua dikejutkan oleh para dewa dan permainan itu seri.
Pertandingan terdiri dari hingga 500 putaran . Jika semua 500 putaran berlalu dan pertandingan belum diputuskan (tidak ada samurai yang mati), para dewa menjadi bosan dan menjatuhkan kedua samurai itu, sehingga menghasilkan undian.
Tindakan
Pada setiap belokan, samurai harus melakukan persis salah satu tindakan berikut:
W
Samurai harus menunggu dan tidak melakukan tindakan apa pun. Ini membuatnya terlihat keren tetapi tidak membantunya mengalahkan lawannya. Ini juga merupakan tindakan default.
B
Samurai akan tunduk pada lawannya dengan cara yang terhormat. Ini menyenangkan para dewa dan karenanya sang samurai akan mendapatkan 1 Kehormatan. Kehormatan sangat penting untuk kesuksesan samurai Anda karena Kehormatan pada dasarnya adalah "sumber daya" untuk permainan ini - semua bergerak terpisah B
dan W
dapat mengurangi Kehormatan. Juga, jika seorang samurai memperoleh 7 Honor atau lebih, ia diberikan penggunaan Pedang para Dewa . Implikasi dari hal ini dijelaskan di bawah ini.
Namun, membungkuk pada lawan membuat Anda terbuka jika lawan Anda memutuskan untuk menyerang Anda dengan pedangnya, jadi berhati-hatilah saat Anda memilih untuk membungkuk.
G
Samurai harus memasuki posisi defensif dan menjaga terhadap serangan pedang. Langkah ini akan berhasil memblokir semua serangan pedang, bahkan yang dilakukan dengan Pedang para Dewa .
Namun, para dewa tidak menyukai samurai yang terlalu defensif, jadi langkah ini akan memakan 1 Kehormatan jika tindakan samurai di belokan yang sebelumnya juga dijaga. Tidak mengkonsumsi Honor sebaliknya.
I
Samurai akan berusaha menyerang lawannya dengan menarik pedangnya dengan cepat dari sarungnya. Jika samurai memiliki 7 Honor atau lebih, ia akan menggunakan Pedang para Dewa sebagai ganti pedang biasa. Langkah ini menghabiskan 1 Honor.
Penarikan cepat adalah pemogokan cepat yang akan mengalahkan serangan overhead yang lebih lambat, namun, itu akan kalah melawan parries. Jika serangan berhasil terhubung, itu akan melakukan 1 kerusakan, atau 2 kerusakan dengan Pedang para Dewa .
P
Samurai harus berusaha menangkis setiap serangan yang masuk, kemudian meluncurkan serangannya sendiri. Jika samurai memiliki 7 Honor atau lebih, ia akan menggunakan Pedang para Dewa sebagai ganti pedang biasa. Langkah ini menghabiskan 1 Honor.
Parry adalah manuver yang baik melawan serangan cepat, tetapi akan dikalahkan oleh serangan overhead yang lebih lambat. Jika serangan berhasil terhubung, itu akan melakukan 1 kerusakan, atau 2 kerusakan dengan Pedang para Dewa .
O
Samurai akan berusaha untuk menyerang lawannya dengan serangan overhead yang lebih lambat. Jika samurai memiliki 7 Honor atau lebih, dia akan menggunakan Pedang Dewa bukan pedang biasa. Langkah ini memakan 1 kehormatan.
Pemogokan overhead bisa mengalahkan partai, tetapi akan kalah dari serangan cepat. Jika serangan berhasil terhubung, itu akan melakukan 1 kerusakan, atau 2 kerusakan dengan Pedang para Dewa .
Pedang para Dewa
Seorang samurai dengan Kehormatan yaitu 7 atau lebih memperoleh kemampuan untuk menggunakan Pedang para Dewa . Jika Yang Mulia berkurang di bawah 7, kemampuan untuk menggunakan Pedang Para Dewa akan dicabut darinya. The Sword of the Gods memberikan 2 damage, bukan 1.
The Sword of the Gods tidak memungkinkan pemogokan untuk mengalahkan serangan pedang yang biasanya tidak akan mengalahkan. Sebagai contoh, Pedang para Dewa menangkis masih akan kalah dari serangan overhead biasa, dan Pedang Dewa cepat tidak akan mengalahkan undian biasa. Memang, yang disebut Pedang Dewa sebenarnya tidak terlalu kuat - mungkin itu adalah lelucon kosmik yang dimainkan oleh para dewa ...
Tabel Interaksi
Cuplikan Stack di bawah ini berisi tabel yang secara eksplisit mencantumkan semua hasil yang mungkin dari kombinasi tindakan yang berbeda yang dapat dilakukan oleh dua samurai. Untuk melihatnya, klik "Tampilkan Cuplikan Kode", lalu klik "Jalankan Cuplikan Kode".
Komunikasi Program
Untuk memfasilitasi jalannya turnamen, sebuah program pengendali ditulis untuk memainkan peran "para dewa" - program itu menyimpan catatan kehormatan dan kesehatan serta menghajar para samurai. Bagian ini menjelaskan bagaimana program Anda akan berkomunikasi dengan program pengontrol.
Deskripsi Input
Program pengontrol akan memanggil program Anda dari baris perintah seperti ini:
<command> <history> <enemy_history> <your_health> <enemy_health> <your_honour> <enemy_honour>
dimana:
<command>
adalah perintah yang diperlukan untuk menjalankan program Anda. Misalnya, jika program Anda ada dalam filesuper_sentai.pl
, perintahnya mungkinperl super_sentai.pl
.<history>
adalah riwayat gerakan yang Anda buat. Misalnya,WWBP
berarti Anda menunggu dua kali, membungkuk sekali, dan menangkis satu kali.<enemy_history>
adalah sejarah gerakan yang dilakukan musuh Anda. Misalnya,BBBI
musuh Anda akan membungkuk tiga kali dan melakukan satu penarikan cepat.<your_health>
adalah kesehatan Anda saat ini.<enemy_health>
adalah kesehatan musuh saat ini.<your_honour>
adalah kehormatan Anda saat ini.<enemy_honour>
adalah kehormatan musuh saat ini.
Untuk belokan pertama, history
dan enemy_history
akan kosong, jadi program Anda hanya akan dipanggil dengan empat argumen terakhir seperti ini:
<command> <your_health> <enemy_health> <your_honour> <enemy_honour>
Bersiaplah untuk ini!
Pembaca yang cerdik mungkin memperhatikan bahwa empat argumen yang memberikan kehormatan dan kesehatan kedua samurai itu, sampai batas tertentu, berlebihan; karena ini adalah permainan informasi yang sempurna, kehormatan dan kesehatan samurai dapat ditentukan hanya dengan menggunakan sejarah.
Nilai-nilai ini disediakan untuk tujuan kenyamanan sehingga Anda tidak harus menguraikan argumen sejarah. Ini seharusnya terbukti bermanfaat untuk menerapkan strategi sederhana, seperti tidak menyerang ketika Yang Mulia 0.
Deskripsi Output
Untuk memilih tindakan, program anda harus output salah W
, B
, G
, I
, P
, atau O
untuk output standar, tergantung pada apa tindakan yang Anda ingin membuat. Jika program Anda tidak menghasilkan apa pun dalam 1000 ms, itu akan dihentikan dan program Anda akan diperlakukan seolah-olah itu dikeluarkan W
.
Jika program Anda menghasilkan lebih dari satu huruf, hanya huruf pertama yang akan dipertimbangkan - jadi keluaran Parry
akan sama dengan keluaran P
.
Jika output dari huruf pertama program Anda bukan salah satu dari opsi yang tercantum di atas, maka defaultnya adalah W
.
Format pengiriman
Kirim program sebagai jawaban untuk posting ini. Anda dapat mengirimkan beberapa program. Jika Anda mengirimkan beberapa program sederhana, saya sarankan mengirimkannya sebagai satu jawaban; jika Anda mengirimkan beberapa program kompleks, saya sarankan mengirimkannya sebagai jawaban terpisah. Setelah saya berhasil menambahkan program Anda ke turnamen, saya akan membuat komit ke repositori git dengan entri Anda (ditautkan di bawah).
Jika saya menemui masalah yang mencegah program Anda ditambahkan ke turnamen, saya akan meninggalkan komentar pada entri Anda yang menunjukkan masalah.
Harap sertakan yang berikut dalam kiriman Anda:
- Nama yang bisa dibaca manusia dari program Anda, untuk digunakan di papan skor. Spasi diperbolehkan di sini; koma dan karakter Unicode tidak.
- Bahasa program Anda ditulis. Harap menghindari menulis dalam bahasa yang aneh dan sulit diakses seperti TinyMUSH.
- Sinopsis singkat program Anda. Ini bisa berupa deskripsi tentang cara kerja program, atau hanya beberapa teks rasa tentang program Anda (jika Anda ingin semua bersifat rahasia), atau mungkin keduanya.
- Perintah yang diperlukan untuk menjalankan program Anda. Misalnya, jika Anda menulis kiriman Anda di Java disebut
example.java
, Anda akan memberikan instruksi kompilasijavac example.java
kemudian menjalankan instruksijava example
. - Kode sumber untuk program ini.
Untuk membantu dalam pengiriman, saya menyediakan template pengiriman yang dapat ditemukan di sini . Template membuat pengiriman terlihat lebih bagus. Saya sangat menyarankan untuk menggunakannya.
Saya juga memberikan dua entri contoh. Meskipun entri contoh akan berpartisipasi dalam round robin, tujuan utama mereka adalah untuk memperjelas format pengajuan dan input / output untuk turnamen, daripada menjadi pesaing serius untuk gelar Ultimate Samurai.
Struktur Turnamen
Bagian ini menjelaskan bagaimana turnamen antar peserta akan dijalankan.
Program Kontrol
Program kontrol ditulis dalam Python 2 dan dapat ditemukan di repositori Ultimate Samurai Showdown Github . Jika Anda ingin menjalankannya sendiri, petunjuk tentang cara menjalankannya termasuk dalam file README.md di tautan. Namun, hanya turnamen yang dijalankan di komputer saya yang resmi untuk menghindari perbedaan perangkat keras yang memengaruhi hasil turnamen.
Program kontrol akan dijalankan pada komputer laptop yang menjalankan Arch Linux. Ini memiliki prosesor Intel Core i7 dan 8GB RAM. Saya akan berusaha untuk membuat semua entri berjalan di komputer saya, tetapi saya akan sangat menghargainya jika Anda menghindari bahasa yang tidak dapat diakses secara bebas (karena tanpa biaya moneter).
Sistem penilaian
Sistem penilaian adalah round robin. Setiap program akan memainkan delapan pertandingan melawan setiap program lainnya. Kemenangan memberikan program 1 poin, kerugian tanpa poin, dan imbang 0,5 poin. Program dengan skor tertinggi memenangkan permainan. Jika ada undian, saya akan berduel dua program teratas satu sama lain untuk menentukan pemenang.
Jumlah kali setiap program akan memainkan satu sama lain program dapat dikurangi dari 8 jika ada jumlah pendatang yang sangat besar. Saya akan menambahkan catatan di sini jika ini terjadi.
Saya akan menjalankan round robin berkali-kali karena kiriman baru diposting, tetapi hanya round robin terbaru yang akan dihitung.
Diskualifikasi
Dimungkinkan untuk program Anda didiskualifikasi dari turnamen. Diskualifikasi dapat terjadi jika:
- Program Anda tidak mengkompilasi atau menjalankan;
- Program Anda adalah duplikat strategis dari program lain (yaitu, ia mengimplementasikan strategi yang sama persis dengan program lain);
- Program Anda mencoba menyabotase program lain dengan memodifikasi kode pengontrol, kode program lain, dll;
- Program Anda mencoba untuk mengeksploitasi bug dalam kode pengontrol. Alih-alih mengeksploitasi bug Anda malah harus membuka masalah di repositori git, buat komentar di sini, atau ping saya di chat.
Hasil Masa Lalu
Hasil terperinci dari semua turnamen tersedia di halaman wiki .
Turnamen terbaru selesai pada 2015-07-17 07:20. Berikut ini ringkasan hasilnya:
The Observer: 209.0
Coward: 203.0
Monk: 173.0
Elephant Warrior: 157.0
Iniqy: 157.0
Agent 38: 144.0
Ninja: 138.0
Meiyo Senshi: 138.0
Kakashi: 136.0
Yoshimitsu: 131.0
Hermurai: 121.0
Warrior Princess: 120.0
Gargoyle: 119.5
The Honourable: 119.0
Hebi: 118.5
Predictor: 116.0
Whack-a-mole: 107.0
The Fool: 106.0
The Prophet: 105.0
Copy-san: 97.0
YAGMCSE: 80.0
The Waiter: 66.0
Swordsman: 43.0
Spork Holder: 32.5
Blessed Samurai: 27.5
Attacker: 27.0
The Terminator: 17.0
Master Yi: 16.0
sumber
Jawaban:
Biarawan (Jawa)
Bhikkhu menghargai kehormatan dan memuji berkat para Dewa. Karena terlatih dalam kesabaran, ia dengan tenang mengirimkan doa-doanya ke surga sampai ia merasa disukai Tuhan.
Menikmati hidupnya, ia mencoba melindunginya. Ketika dia kehilangan kesehatan karena tingkat tertentu, dia membela dirinya sebaik mungkin.
Berharap untuk mendapatkan dukungan dari para Dewa, ia secara acak mengirim ejakulasi [1] ke surga, jika ia bertarung sebaik yang ia bisa.
Jika lawannya lelah karena pertempuran, dia menghabisinya dengan menggunakan sisa kehormatannya untuk memberinya kematian yang cepat dan tidak menyakitkan.
Kompilasi / Jalankan
Ninja (Jawa)
Ninja itu cepat dan serangannya lebih cepat. Dia menyerang segera setelah sambutan resmi yang bersahabat, lebih lanjut membingungkan musuhnya dengan membungkuk sebelum dan sesudah setiap serangan.
Setelah diberkati, ninja terus melakukan perilaku ini, menunggu lawannya melakukan gerakan pertamanya. Dengan menggunakan kesempatan ini, dia melepaskan serangkaian ledakan, diberkati oleh Dewi Ninja hingga dia terlalu lelah karena pertempuran. Dengan menggunakan kehormatannya yang tersisa, dia bersembunyi di bawah dedaunan di bawah, menjaga dirinya dari serangan berikutnya. Dia melompat keluar dan menyerang musuhnya dari belakang, disembunyikan secepat lagi.
Jika dia menerima luka fatal, dia pergi sekuat tenaga untuk mengambil nyawa lawannya - tentu saja, menjaga miminum kehormatan.
Kakashi, The Copycat Ninja (Jawa)
Kakashi menyalin gerakan lawannya dengan secara acak memilih antara dua gerakan terakhir yang dilakukan lawan. Jika lawan menunggu, dia membungkuk - Dia menjaga kehormatannya juga.
Saya berharap Kakashi dapat diberkati dengan sharingan .. Saya berpikir tentang membaca cast.txt. Simulasikan setiap putaran sejarahnya melawan setiap lawan di sana. Cobalah untuk mencari tahu lawan mana yang dia lawan dengan membandingkan sejarah musuh yang disimulasikan dengan sejarah musuh yang sebenarnya. Kemudian gunakan informasi itu untuk memprediksi langkah selanjutnya yang akan dilakukan lawan dan memilih countermove terbaik dari daftar yang telah ditentukan. Tapi saya merasa ini bisa memakan waktu karena saya memiliki Internet super lambat saat ini dan tidak ada keterampilan Java
The Observer, (node.js)
Pengamat membungkuk sebelum mencoba memprediksi langkah lawan berikutnya dari 5 langkah terakhirnya, memilih mitra terbaik untuk langkah yang diprediksi.
Sunting: Terima kasih kepada @apsillers untuk berbagi boilerplate node.js !.
Sunting: Saya memiliki kesalahan besar pada pengamat, saya sebenarnya tidak tahu apa yang saya pikirkan kemarin malam. Sepertinya dia hanya melihat dua gerakan musuh yang lalu. Secara mengejutkan dia melakukannya dengan sangat baik.
Ingatannya sekarang dipertanyakan untuk bagian terpanjang dari sejarah musuh yang telah dia lihat. Ini berisi larik dengan semua gerakan yang mengikuti riwayat gerakan. Satu dipilih secara acak. Jadi, jika satu gerakan diikuti lebih sering, itu juga lebih mungkin untuk diambil. Jenis rantai markov seperti.
Pengamat, sekarang penjaga juga.
[1]: TIL: ejakulasi memiliki makna religius
sumber
Meiyo Senshi (Jawa)
Berasal dari daerah Haijima, tidak banyak yang diketahui tentang Meiyo. Mereka biasanya tidak berpartisipasi dalam permainan olahraga, tetapi telah mengirim seorang prajurit ke yang ini untuk menilai lawan mereka.
Mereka adalah sekelompok terhormat, sehingga Anda dapat yakin dia akan membuat kehadirannya diketahui para dewa dalam waktu singkat. Begitu dia telah melihat cukup banyak lawannya untuk dilaporkan, dia akan menggunakan berkat yang diterima untuk menjatuhkan lawannya.
Untuk mengkompilasi run, ini adalah cara Java standar:
sumber
Spork Holder (Ruby)
Busur Spork Holder pada belokan pertama, kemudian bertindak secara acak setelahnya. Ini adalah salah satu dari dua entri contoh.
Perintah:
ruby spork-holder.rb
The Waiter (bash)
Pelayan hanya menunggu di setiap belokan. Ini adalah salah satu dari dua entri contoh.
Perintah:
echo W
Tidak diperlukan kode sumber.
sumber
Pengecut (Node.js)
BXBXBX
/BBB
pola untuk membungkuk (atau memukul Anda) ketika Anda membungkuk.GXGXGX
pola untuk membungkuk saat Anda menjaganya.Jika Anda ingin menulis kiriman Node.js , silakan gunakan kode boilerplate saya; semuanya hingga termasuk
decide
fungsi sepenuhnya umum dan bebas untuk diambil.sumber
Whack-a-mole (R)
Menyerang ketika musuh cenderung membungkuk, jika tidak penjaga.
Jalankan menggunakan
Rscript Whack-a-mole.R
.sumber
Prajurit Gajah (Jawa)
Prajurit Gajah berasal dari zaman yang lebih tua dan lebih alami. Dia telah melihat banyak, dan mengingat semua. Dia menjilat dengan dewa-dewa saat dia memeriksa lawannya, dan kemudian setelah dia membawa mereka ke dalam hatinya, dia mengambilnya terpisah.
Kompilasi:
javac ElephantWarrior.java
Perintah:
java ElephantWarrior
sumber
args
.Warrior Princess (Julia)
Ini adalah tantangan King of the Hill pertama yang saya ikuti. Mari kita lihat bagaimana hasilnya.
Putri Prajurit memprioritaskan serangan dan kehormatan, dan resor untuk mempertahankan diri saat dibutuhkan. Dia agak bersemangat dan tidak pernah menunggu. Dalam upaya untuk tetap gesit, dia juga tidak menggunakan serangan overhead.
Simpan sebagai
warrior-princess.jl
dan jalankan dari baris perintah seperti ini:Jika Anda tidak memiliki Julia, Anda dapat mengunduhnya di sini . Untuk menghindari masalah, versi stabil terbaru disarankan (yaitu bukan versi pengembangan).
sumber
Gargoyle (Jawa)
Berusaha menggunakan langkah defensif tanpa memakan kehormatan.
Karena ini entri java:
sumber
Pendekar Pedang (C / Jawa)
Pendekar pedang membungkuk pada belokan pertama dan setiap kali dia kehabisan kehormatan. Dia kemudian memeriksa apakah lawan tidak membungkuk atau membela atau menunggu di giliran sebelumnya. Jika lawan tidak melakukannya, ada kemungkinan besar bahwa ia akan melakukan salah satu dari ini pada giliran saat ini dan pendekar pedang sehingga secara acak menyerang lawan. Jika ini tidak benar, dia bertahan jika dia tidak membela belokan sebelumnya. Jika dia punya, dia membungkuk untuk mendapatkan kehormatan.
Versi C:
Instal GCC (kompiler) dan simpan kode ke file bernama " Swordsman.c " perintah untuk kompilasi:
Dapat dieksekusi bernama " Pendekar Pedang " akan dibuat. Jalankan menggunakan
Versi Java:
Instal javac (compiler) dan simpan kode ke dalam file bernama " Swordsman.java " untuk kompilasi:
File kelas bernama " Swordsman.class " akan dibuat. Jalankan menggunakan
Penyerang (Jawa)
Penyerang tidak peduli tentang apa pun kecuali bahwa dia ingin lawannya mati. Dia secara acak menyerang salah satu gerakan serangan dan jika memiliki kehormatan rendah, busur.
Instal javac (kompiler) dan simpan kode ke dalam file bernama " Attacker.java " untuk kompilasi:
File kelas bernama " Attacker.class " akan dibuat. Jalankan menggunakan
Predictor (C / Java)
Predictor memprediksi pergerakan musuh. Pada belokan pertama, ia menggunakan gerakan acak. Busur jika kehormatannya rendah, menyerang jika kehormatan musuh rendah atau telah tunduk pada giliran sebelumnya. Jika prediktor tidak menjaga giliran sebelumnya, jaga giliran saat ini. Lain, lakukan langkah yang sama seperti yang dilakukan musuh pada giliran sebelumnya, asalkan tidak
'W'
dalam hal ini, Predictor busur.Versi C:
Instal GCC (kompiler) dan simpan kode ke dalam file bernama " Predictor.c " untuk kompilasi:
Dapat dieksekusi bernama " Predictor " akan dibuat. Jalankan menggunakan
Versi Java:
Instal javac (kompiler) dan simpan kode ke dalam file bernama " Predicator.java " untuk kompilasi:
File kelas bernama " Predicator.class " akan dibuat. Jalankan menggunakan
Tidak yakin seberapa efektif bot ini karena saya tidak memiliki penerjemah python2 untuk mengujinya.
sumber
ArrayIndexOutOfBoundsException
pada belokan pertama, menyebabkannya menunggu pada belokan pertama. Selain itu berfungsi.segmentation fault (core dumped)
putaran setelah 24Master Yi (Python)
Master assassin mendapat banyak bantuan di awal game, membangunnya sampai dia tak terkalahkan. Mencoba menyerang ketika mereka tidak mengharapkannya.
Untuk menjalankan: Simpan sebagai
MasterYi.py
sumber
Copy-san (C)
Menyalin setiap gerakan lawannya. Cukup yakin dia dijamin akan kalah. Menyusun:
gcc copy-san.c
sumber
Hebi (Jawa)
Hebi mengikuti Jalan Ular.
Ular tidak membutuhkan berkat dari para dewa.
Ular merayap serangannya; seperti ombak di pantai, apa yang datang surut kembali seperti itu.
Ular tidak pernah menunggu.
Ular tidak memiliki rasa kesesuaian, dan itu juga akan ditulis dengan Python.
Instruksi berlari:
Badan kode:
sumber
Yang Terhormat (Jawa)
Nilai-nilai Yang Terhormat dihormati di atas segalanya. Artinya, kehormatannya di atas yang lain. Jika samurai musuh memiliki kehormatan yang lebih besar atau setara, ia membungkuk. Tidak seorang pun akan lebih terhormat daripada dia. Kalau tidak, ia melakukan langkah acak. Dia tidak pernah menjaga dua kali berturut-turut - itu akan menjadi tidak terhormat!
untuk mengkompilasi:
Sumber:
sumber
Blessed Samurai (Python)
Samurai ini mencoba untuk menjaga kebaikan para dewa selama mungkin. Dia bergegas untuk mendapatkan pedang suci, lalu bergantian antara Melindungi dan Menyerang dengan salah satu serangan, mengembalikan kehormatan ketika dibutuhkan. Jika sepertinya dia atau lawannya akan segera jatuh, dia bergegas masuk untuk membunuh. Dia akan dengan mudah jatuh ke oponent yang dapat melacak polanya, tetapi strateginya untuk selalu menyerang pada dua kerusakan seharusnya cukup efektif.
Untuk menjalankan:
Simpan sebagai BlessedSamurai.py
sumber
last
untukself.last
yang tampaknya untuk memperbaiki masalah.Hermurai (C ++)
Mengagumi lawannya, dan sedikit paranoid. Ingin tahu apakah dia bisa melakukan apa yang bisa dilakukan oleh samurai lain, karena dia masih tidak bisa percaya dirinya sebagai samurai. Impiannya yang tidak pernah pudar menjadi kenyataan sebelum dia menyadarinya. Yang bisa menghabiskan biaya kepalanya ...
Iniqy (C ++)
Tembakan sekeras mungkin. Masuk ke mode serangan tak terhentikan saat dia dalam bahaya.
Keduanya ditulis dalam C ++. Untuk mengkompilasi:
Untuk berjalan di Linux:
./iniqy
Untuk berjalan di Windows:
iniqy.exe
sumber
The Terminator (ruby)
Terminator tidak memperhatikan kesehatannya sendiri. Terminator tidak memiliki gagasan tentang kehormatan. Terminator dikirim dari masa depan dan hanya bertekad untuk mengakhiri lawannya. Ia melakukannya dengan menonton lawan-lawannya bergerak, dan tidak ada yang lain. Ini sampel gerakan dan menghitung respon yang sesuai sedemikian rumit sehingga tidak ada teknologi saat ini dapat memprediksi tindakan Terminator. Bahkan, bagi siapa pun yang tinggal di 2015 Terminator mungkin tampak agak acak ...
sumber
Agen 38 [1] (C)
Sebagai produk manipulasi genetik yang luas, Agen 38 memiliki ketajaman fisik dan mental super [2] -samurai, dan jelas lebih unggul dari semua [rujukan?] Yang cacat [rujukan?] Pesaing.
[1] Nomor yang sama sekali tidak relevan [2] Dijamin benar 1% dari waktu
YAGMCSE
Metode Monte Carlo tampaknya menunjukkan permainan yang layak, jadi inilah entri Simulasi Monte Carlo Generik Lain!
Tidak seperti sebagian besar entri lain dalam kontes ini, entri ini menggunakan sejumlah besar simulasi game acak, dan karenanya membutuhkan penggunaan flag -O3 untuk kinerja yang optimal.
Kompilasi program dengan perintah: gcc monte.c -o monte -O3 -std = c99
sumber
GBWWWWW...
atauBWWWW
Setelah usaha saya gagal memasukkan Target Dummy, saya mempersembahkan bot saya berikutnya ...
ScroogeBot - Python 2
Bot ini akan tunduk jika dia memiliki satu kehormatan. Kalau tidak, dia akan melempar koin.
Jika itu mendarat di kepala, dia akan melakukan serangan acak. Jika itu mendarat di ekor, ia akan membungkuk atau menjaga.
Perintah:
python scroogebot.py
sumber
Yoshimitsu (JS)
Mencoba untuk tidak dijaga dengan memeriksa dua gerakan terakhir, akan mendapatkan keberanian dengan kehormatan yang lebih tinggi. berdasarkan dari apsiller template yang dibuat
sumber
The Fool (C)
Orang bodoh menerapkan strategi yang agak tidak menentu, tidak pernah mengulangi langkah yang sama dua kali kecuali dipaksa melalui kurangnya kehormatan. Gerakannya sebagian besar didasarkan pada keacakan, membuatnya sulit untuk memprediksi tindakannya. Kesejahteraannya adalah hal terakhir dalam benaknya, karena pikirannya hanya bertumpu pada pertumpahan darah dan kemenangan akhir
Nabi (C)
Nabi menggunakan pengetahuan tentang 2 gerakan lawannya sebelumnya untuk membuat prediksi langkah selanjutnya dan memberikan serangan balik yang cepat dan mematikan. Juga, dia melakukan astrologi dan semacamnya.
Kompilasi
Kedua program ditulis dalam C, dan dapat dikompilasi dengan
gcc
:Lari
* nix
Windows
sumber