Manusia gua gila. Manusia gua lain mengambil tongkat tetapi tongkat itu untukku. Pertarungan manusia gua !
Deskripsi
Manusia gua membutuhkan tongkat tajam untuk menusuk manusia gua lainnya. Manusia gua lainnya juga mencoba menusuk dengan tongkat tajam. Manusia gua dapat menajamkan tongkat, menyodok dengan tongkat, atau memblokir tongkat sempit.
Jika manusia gua menusuk manusia gua lain dengan tongkat tajam, manusia gua lainnya melarikan diri dan aku menang. Tetapi jika manusia gua lain dengan cerdas memblokir ketika saya menusuk, tidak ada yang terjadi kecuali tongkat saya menjadi tumpul dan saya perlu menajamkan lagi.
Manusia gua malas. Juga, manusia gua bodoh. Manusia gua tidak tahu apa yang harus dilakukan, jadi manusia gua perlu program komputer techno yang bagus untuk memberi tahu manusia gua apa yang harus dilakukan.
Memasukkan
Masukan program Anda akan menjadi sejarah peristiwa yang telah terjadi, di mana S
kepanjangan dari mempertajam (yaitu manusia gua menajamkan tongkatnya), P
singkatan dari poke, dan B
singkatan dari block. Input akan berupa riwayat dari kedua sisi (Anda dan lawan), sehingga gerakan Anda dan lawan akan dipisahkan dengan koma ( ,
).
Input contoh:
SPB,SBB
Ini berarti bahwa pemain menajamkan tongkatnya, kemudian menusuk, lalu diblokir, dan lawan menajam, kemudian diblokir, lalu diblokir lagi.
Anda tidak akan menerima input pada giliran 1.
Keluaran
Outputnya sangat mirip dengan input (karena manusia gua tidak terlalu pintar). Program Anda harus menampilkan S
untuk mempertajam, P
untuk menyodok, dan B
untuk blok. Hanya karakter pertama dari output yang akan diperhitungkan, dan input lainnya akan diperlakukan sebagai perintah B
(blok).
S
: mempertajamSaat diasah, ketajaman tongkat gua naik 1 dan tongkat mendapat 1 tusuk tambahan. Setiap poke mengurangi ketajaman tongkat sebesar 1, dan jika ketajaman tongkat adalah 0, itu terlalu membosankan untuk ditusuk. Ketajaman dimulai dari 0. Jika ketajaman mencapai 5, tongkat itu adalah pedang! (Lihat di bawah.)
Jika lawan menusuk saat Anda mengasah (dan mereka memiliki ketajaman> 0), lawan menang!
P
: menyodokSaat menusuk, ketajaman tongkat gua turun 1 dan Anda menusuk lawan! Jika lawan Anda mengasah, Anda menang! Jika lawan menusuk, tongkat Anda mengenai tongkat lawan dan keduanya menjadi tumpul (dengan 1 "unit ketajaman"). Jika lawan menghalangi, tidak ada yang terjadi kecuali tongkat Anda menjadi kusam.
Jika Anda menusuk ketika ketajaman tongkat Anda 5 atau lebih besar, tongkat Anda menjadi pedang dan Anda selalu menang! (Kecuali jika lawanmu juga memiliki pedang dan juga memilih
P
; dalam hal itu, mereka berdua menjadi kusam, dan dapat kembali menjadi tongkat jika ketajaman mereka jatuh di bawah 5.)Anda tidak dapat menyodok dengan ketajaman 0. Jika Anda melakukannya, tidak ada yang akan terjadi.
B
: blokKetika Anda memblokir, tidak ada yang terjadi ketika lawan Anda menusuk. Jika lawan Anda tidak menusuk, blok tidak melakukan apa pun.
Memblokir tidak melindungi terhadap pedang, bahkan jika Anda juga memilikinya!
Aturan dan batasan
Aturan tambahan adalah:
- Program Anda dapat membaca dan menulis file di foldernya sendiri (jangan mencuri!) Jika Anda ingin menyimpan data, tetapi Anda tidak dapat mengakses apa pun di luarnya (dan manusia gua tidak memiliki koneksi internet di hutan belantara).
- Catatan penting pada file : Jika Anda menyimpan file, ingatlah untuk menyimpannya di direktori
players/YourBotsName/somefile.foo
! Direktori kerja saat ini untuk program Anda tidak akan menjadi program Anda!
- Catatan penting pada file : Jika Anda menyimpan file, ingatlah untuk menyimpannya di direktori
- Manusia gua adil: Satu program tidak dapat memiliki kode khusus untuk program lain, dan program tidak dapat saling membantu. (Anda mungkin memiliki banyak program, tetapi mereka tidak dapat berinteraksi satu sama lain dengan cara apa pun.)
- Hakim gua tidak sabar. Jika manusia gua mengambil lebih dari 100 putaran masing-masing untuk menentukan pemenang, hakim menjadi bosan dan kedua manusia gua kalah.
Jika program Anda melanggar aturan atau tidak mengikuti spesifikasi, program tersebut didiskualifikasi, dihapus dari playerlist.txt
, dan semua duel restart dari awal. Jika program Anda didiskualifikasi, pemimpin gua (saya!) Akan mengomentari pos program Anda dan menjelaskan alasannya. Jika Anda tidak melanggar aturan apa pun, program Anda akan ditambahkan ke papan peringkat. (Jika program Anda tidak ada di papan peringkat, tidak ada komentar yang jelas di pos Anda, dan Anda memposting program Anda sebelum waktu "Terakhir diperbarui" di bawah, beri tahu pemimpin gua! Mungkin dia lupa.)
Dalam posting Anda, harap sertakan:
- Sebuah nama.
- Sebuah perintah shell untuk menjalankan program Anda (ex.
java MyBot.java
,ruby MyBot.rb
,python3 MyBot.py
, Dll).- Catatan: input akan ditambahkan ke ini sebagai argumen baris perintah.
- Para gua menggunakan Ubuntu 14.04, jadi pastikan kode Anda berfungsi (secara bebas) di atasnya.
- Nomor versi, jika kode Anda bekerja secara berbeda pada versi berbeda dari bahasa pilihan Anda.
- Kode Anda (jelas).
- Cara mengkompilasi kode, jika perlu.
Kode pengontrol / pengujian, contoh bot
Pemimpin gua menulis kode kontrol dalam C ++, dan mempostingnya di repo Github . Anda dapat menjalankan dan menguji program Anda di sana.
Program yang sangat, sangat sederhana (1 baris!) Juga diposting dalam jawaban di bawah ini .
Penilaian dan papan peringkat
Penilaian itu mudah. Manusia gua mana pun yang menang mendapat poin. Manusia gua dengan poin terbanyak setelah 3 duel melawan setiap manusia gua lainnya menjadi pemimpin manusia gua yang baru!
150 Watson
147 SpeculativeSylwester
146 Gruntt
141 BashMagnon
126 ChargerMan
125 PrisonRules
124 ViceLeader
122 MultiMarkov
122 CaveDoctor
120 RegExMan
120 Hodor
117 FancyTechnoAlgorithm
116 Semipatient
113 Watcher
108 BobCaves
105 MinimaxMan
104 Oracle
102 MaybeMarkov
97 Nash
95 Sicillian
95 Feint
95 Basilisk
94 SharpMan
93 Darwin
91 Nigel
91 JavaMan
88 Entertainer
88 CarefulBot
85 CaveMonkey
84 SSBBP
82 SirPokealot
79 MasterPoker
77 Unpredictable
76 IllogicalCaveman
75 SharpenBlockPoke
75 HuddleWolfWithStick
72 WoodenShield
68 PokeBackBot
68 PatientBlacksmith
66 PatientWolf
58 MonteCarloMan
58 BlindFury
56 BinaryCaveman
55 PokeBot
55 CavekidBlocks
53 Swordmaster
53 Blocker
52 NakedEarlyNerd
52 ModestCaveman
50 LatePokeBot
40 Trickster
39 SwordLover
38 ForeignCaveman
36 Swordsmith *
28 Touche
27 WantASword
27 FoolMeOnce
24 PeriodicalCavemanCicada
11 Aichmophobic
(leaderboard ini dihasilkan secara otomatis secara ajaib)
Pemain yang ditandai dengan *
lemparan kesalahan atau pengecualian pada beberapa titik; para pemain ini juga memiliki komentar pada posting mereka.
Pemain yang tidak bisa dimasukkan dalam tes untuk alasan apapun (pemain ini akan memiliki komentar pada posting mereka menjelaskan masalah): Monkey
, Elephant
, FacileFibonacci
, StudiousSylwester
.
Terakhir diperbarui: 3 Agustus 00:15 (UTC).
sumber
Jawaban:
Darwin - C
Lagi pula, siapa yang butuh strategi? Suruh sekelompok manusia gua saling bertarung dan biarkan seleksi alam melakukan sisanya!
Kami menggunakan model yang sangat sederhana untuk mengeluarkan otak primitif manusia gua: ia tidak memiliki memori dan hanya memperhitungkan ketajaman tongkatnya dan tongkat lawannya. Mereka digunakan sebagai variabel untuk polinomial biner dari beberapa urutan hingga. Setiap tindakan (blok, pertajam, dan aduk) memiliki polinomial terkait yang hasilnya menentukan probabilitas relatif untuk memilih tindakan ini. Cukup banyak yang ada untuk itu --- mulailah dengan beberapa koefisien acak dan optimalkan secara berulang.
Bot:
Mengkompilasi dengan:
gcc darwin.c -odarwin -w -O3
. Dijalankan dengan:./darwin <history>
.Bot membaca koefisien dari file bernama
program
dalamplayers/Darwin
direktori (file yang berbeda dapat ditentukan sebagai argumen baris perintah kedua). Program ini tampaknya berhasil:Simpan sebagai
players/Darwin/program
.Berikut ini adalah program yang menghasilkan
program
file yang dapat digunakan oleh bot (tidak harus dikompilasi jika Anda menggunakanprogram
file di atas):Mengkompilasi dengan:
gcc genprog.c -ogenprog -w -O3
. Dijalankan dengan:./genprog [output-filename]
.Watson
Apa DNA manusia gua yang menang? Mungkin orang ini punya jawabannya:
Jalankan dengan:
python Watson.py
Watson adalah produk dari algoritma genetika. Tidak seperti Darwin, datum genetik kali ini adalah program aktual, ditulis dalam bahasa khusus domain kecil (di sini diterjemahkan ke Python).
Simple Sequence Beats Pemain Besar
Orang kecil ini sangat mengejutkan (atau, mungkin, tidak terlalu mengejutkan), terutama terhadap para pemimpin:
Jalankan dengan:
python SSBBP.py
sumber
players/Darwin
direktori.undefined reference to `fmax'
. --Edit - Sudahlah, aku memang butuh-lm
.Manusia gua tak terduga
Manusia gua ini memilih secara acak setiap ronde, tetapi saya sudah menjelaskan kepadanya dengan sangat sederhana bahwa tindakan tertentu terkadang tidak masuk akal. Jangan ragu untuk menyalin kode ini jika Anda ingin mengekspresikan logika yang berbeda.
Ini adalah Ruby, simpan sebagai 'unpredictable.rb' dan jalankan dengan
ruby unpredictable.rb
sumber
no 'Block'
juga harus memikirkannya jika lawanku memiliki pedang.unless
untukno 'Block'
danno 'Poke
laporan? (no 'Block' unless he.has_pointy_stick
)Dokter Gua - Lua
"Aku kalah dari orang asing baru, menjatuhkan mereka untuk mempelajarinya"
Ketika Anda telah melihat banyak pasien sebagai dokter gua, Anda mulai benar-benar memahami jiwa manusia gua (atau jadi saya harap). Permainan dokter gua adalah strategi murni, dia menunggu tusukan yang dia blok dalam upaya melucuti lawannya, tetapi dia tidak akan membiarkan lawan itu mendekat untuk membuat pedang. Dia mencoba memprediksi kapan aman untuk diasah sehingga dia tidak kehilangan kendali.
Jalankan dengan:
lua CaveDoctor.lua
sumber
Penjaga Asing
ForeignCaveman tidak tahu apa yang baru saja Anda katakan. Dia hanya ... melakukan banyak hal.
javac ForeignCaveman.java
kemudianjava ForeignCaveman
sumber
Wakil Pemimpin
Gagang pintu ♦ adalah pemimpin. Saya ingin menjadi pemimpin! Ikuti program super cerdas untuk menjadi pemimpin!
Kompilasi:
javac ViceLeader.java
Jalankan:java ViceLeader
.sumber
if (enemySharpness <= 4 || mySharpness >= 5)
vs ini==
?Mungkin Markov 2.1
Saya pikir itu menggunakan Markov Chains untuk memprediksi apa yang akan dilakukan manusia gua yang lain, tetapi saya hanya melihat sebentar di halaman wikipedia tentang Markov Chains dan memutuskan bahwa terlalu banyak teks.
Ia mencoba untuk tetap hidup selama 30 putaran dan kemudian membangun sebuah meja dengan perubahan keadaan saat ini-berikutnya, dan bereaksi terhadap apa yang menurut manusia lain akan lakukan.
Kode ini berisi banyak pernyataan yang tidak perlu, tetapi performanya cukup baik.
SUNTING
Terdeteksi cacat logika. Sekarang ia benar-benar melakukan sesuatu ketika memiliki pedang.
$ python3 players/MaybeMarkov/MaybeMarkov.py
sumber
CicadaCaveman Berkala
Manusia gua yang agak pintar ini telah mempelajari Bug tertentu dan menyadari tidak ada yang bisa menyesuaikan gaya hidup mereka untuk mengambil keuntungan dari bilangan prima Cicada.
Itu menyembunyikan / memblokir sebagian besar hidup itu, tetapi kadang-kadang menyodok. Yakin itu rentan terhadap Pedang, dan menghabiskan seluruh siklus dengan tongkat yang tidak dicukur, tetapi mengasah tongkatmu saat itu benar-benar tumpul? Itulah tepatnya yang orang lain harapkan darinya ... bukan jangkrik ini
mengkompilasi: mcs program.cs untuk menjalankan mono program.exe
Sunting: Mengubah ketajaman - kode ... jika saya menyodok saya menang atau tongkat saya menjadi kusam
Edit2: Ditambahkan dalam saran Bobs
Sunting: Diubah menjadi hanya menyodok ketika pada ketajaman 2, jika tongkat itu nol, orang lain mungkin membuat pedang.
sumber
mcs program.cs
akan mengkompilasinya,mono program
akan menjalankannya, tetapi Anda harus menggantifoo.Dump();
s denganSystem.Console.WriteLine(foo);
(atau menambahkan metode ekstensipublic static void Dump(this string value) { System.Console.WriteLine(value); }
).mcs
dihasilkan adalah<filename>.exe
, misalnyaprogram.cs
akan menjadiprogram.exe
. Jadi perintah yang dijalankan adalahmono program.exe
. (Saya tidak memiliki akses ke mono pada saat komentar saya sebelumnya.)Algoritma FancyTechno
Algoritma techno mewah untuk program komputer techno mewah.
Manusia gua terus kalah dalam pertempuran. Manusia gua marah. Jadi manusia gua pergi ke sekolah komputer belajar membuat algoritma.
Program Python 2. Untuk berlari:
python fancytechnoalgorithm.py
sumber
python StickSharpener.py
).Pengamat
Dia memperhatikan gerakan lawannya, selalu membiarkan mereka menunjukkan tangan mereka sebelum dia menyerang. Dia sangat siap untuk mereka yang lalai bekerja menuju pedang.
Nama file:
watcher.py
Untuk berlari:
python watcher.py
Basilisk
Berusaha menghancurkan mereka yang memandangnya terlalu dekat. Secara konsisten mengalahkan Watcher, tetapi mungkin akan lebih buruk secara keseluruhan.
Nama file:
basilisk.py
Untuk berlari:
python basilisk.py
Nash
Berusaha untuk membuat pilihan lawannya tidak relevan, dengan memilih setiap gerakan dengan probabilitas yang memperhitungkan risiko dan ganjarannya
Ini bukan keseimbangan Nash (generator strategi saya memiliki beberapa ketidakstabilan), tetapi sudah dekat.
Demi rasa ingin tahu, berikut adalah perkiraan seberapa mungkin bot ini akan menang di setiap kondisi permainan:
Nama file:
nash.py
Untuk berlari:
python nash.py
Membohong
Terbuka dengan serangan cepat, untuk menguji pertahanan lawannya.
Nama file:
feint.py
Untuk berlari:
python feint.py
LatePokeBot
Adik laki-laki PokeBot. Tidak pernah menunjukkan kelemahan, tetapi mencoba untuk bertarung seperti kakaknya.
Nama file:
latepokebot.py
Untuk berlari:
python latepokebot.py
sumber
:
di Basilisk; Saya memperbaikinya untuk AndaPokeBot
Ditulis dalam Ruby.
Jalankan dengan
ruby pokebot.rb
.Bot ini tidak terlalu pintar; itu tidak tentang apa yang rata-rata manusia gua akan lakukan sendiri.
sumber
PatientWolf v2.0
Menajamkan jika tumpul, menusuk jika musuh akan memiliki pedang di tikungan berikutnya atau jika musuh tumpul, blok sebaliknya.
Jalankan dengan
EDIT: terima kasih kepada @sylwester karena telah menunjukkan bug
sumber
PatientWolf.pl SB,SP
ApakahP
karena berpikir itu memiliki tongkat tajam.perl patientwolf.pl "SB,SP"
. Anda harus melakukanmy($me,$him) = split/,/ $ARGV[0];
danif( @ARGV ) {print "S";exit}
.Binary Caveman
Pertajam, Stab, Ulangi
Berdasarkan gagasan bahwa pemblokiran adalah untuk banci, manusia gua ini bergantian antara dua opsi yang tersisa.
Kompilasi dengan
javac BinaryCaveman.java
Jalankan dengan
java BinaryCaveman
EDIT: Adventures in String Array ..... args.length () melempar kesalahan. args.length selalu mengembalikan 1. args [0] .length () mengembalikan panjang string pertama dalam array.
EDIT 2: Diperbarui berkat bantuan dari Doorknob, Brilliand, dan Sylwester. Terima kasih kawan
sumber
P
atauS
dan apakah sebaliknya. Dan jika belum ada sejarah, dia berpura-pura akan menjadi sejarahP,
(yang kemudian membuatnya melakukanS
lebih dulu).args[0].length()
, tidakargs.length
.CavekidBlocks
Anak gua yang menangis dan ketakutan mungkin terlihat seperti mangsa yang mudah. Jangan biarkan wajahnya yang cantik membodohi Anda karena dia tahu cara memblokir.
Jalankan dengan
python3 cavekidblocks.py
ChargerMan
Manusia gua ini sangat konservatif. Akan mencoba mengisi senjatanya dan hanya menyerang ketika dibutuhkan.
Jalankan dengan
python3 chargerman.py
Penipu
Trickster tidak tahu cara bertarung, jadi dia mencoba membingungkan manusia gua lainnya.
Jalankan dengan
python3 trickster.py
Sayangnya, setelah acc74 komitmen , Trickster tidak berfungsi seperti yang direncanakan lagi.
sumber
Hodor
Hodor tidak terlalu agresif. Dia suka tinggal di perisainya kecuali ada peluang bagus untuk menyerang.
kompilasi dengan:
javac Hodor.java
dan jalankan dengan:java Hodor
kode:
Edit: pembaruan kode minor
sumber
SB,BB
. Ketika manusia gua lain berperilaku buruk pada giliran pertama Hodor juga berperilaku buruk.Sylwester Spekulatif - Perl5
Sylwester yang spekulatif ingin menyingkirkan para pencari pedang dengan melihat polanya dan menyodok ketika ada peluang lawan akan menajam dan menajamkan saat lawan paling mungkin untuk memblokir. Namun, dia tidak akan melakukan itu jika ada kemungkinan dia akan menebak bahwa dirinya akan menajam pada langkah selanjutnya dan kita bahkan lebih berhati-hati ketika kita memutuskan untuk menajamkan.
Adapun ketika lawan tumpul dia mencoba untuk menjadi agresif tetapi pada akhirnya akan mulai menabung untuk pedang ketika itu tampaknya sia-sia.
Untuk berjalan di linux cukup tambahkan ini di playerlist.txt:
Fibonacci Facile - Skema R6RS
Selain itu, langkah pertama Facile Fibonacci memblokir ketika belokan adalah angka Fibonacci (mulai dari 0) dan mengisi sisanya dengan
PPSS..
dan berubah ketika melewati 8 ke urutan tanpa akhirPSS
untuk menang dengan pedang.Untuk menjalankan cukup instal ikarus dengan
apt-get install ikarus
dan tambahkan ini di playerlist.txt:Studious Sylwester - Perl5
Studious Sylwester menggunakan taktik yang sama dengan Spekulatif Sylwester, tetapi ia juga melihat permainan sebelumnya untuk menentukan di mana ia mungkin mengambil pilihan yang salah.
Untuk berjalan di linux cukup tambahkan ini ke playerlist.txt
Suntingan belajar
Saya tidak dapat mereproduksi masalah yang Anda miliki dengan
$0
tidak menjadi path lengkap ke skrip perl ketika dijalankan dengan perl. Saya juga telah menarik perubahan Anda dan saya tidak melihat perubahan di CavemanDuels src dan itu sama saya telah menjalankan 20+ kali tanpa masalah yang Anda laporkan. Saya mulai takut Anda mungkin telah membuat skrip sebagai bash script daripada menjalankannya saat dieksekusi atau sebagai argumen untuk perl. Saya perlu lebih banyak info untuk benar-benar tahu pasti. Sebagai ujian saya melakukan ini dan Anda dapat melakukan hal yang sama untuk melihat apakah Anda mendapatkan hasil yang sama:sumber
$0
merupakanbash
saat dipanggil dari baris perintah bash (yang controller tidak). Anda bisa saja melakukan hardcodeplayers/StudiousSylwester/foo.txt
.ikarus
dan saya telah menambahkan pemikiran saya$0
untuk Studious.Swordsmith
Butuh tongkat tajam. Jika memiliki tongkat tajam, aduk. Aku tidak merasakan sakit.
Simpan sebagai
swordsmith.f90
dan mengkompilasi dengangfortran -o swordsmith swordsmith.f90
, jalankan seperti yang Anda lakukan eksekusi yang normal:./swordsmith
.sumber
PatientBlacksmith
Bot ini ditulis dalam R, gunakan
Rscript PatientBlacksmith.R
untuk memicunya.Mengukur ketajaman tongkat lawan: memblok saat tajam, luangkan waktu untuk menajamkannya. Saat ketajamannya mencapai 5, aduk sampai ketajaman hilang.
sumber
Aturan Penjara, Haskell
Petugas wanita berpikir manusia gua dan manusia gua lainnya harus berbicara, berbagi tongkat. Tapi, hei ho, jika harus bertarung, lawanlah aturan penjara. Temukan bos dan serang.
Wakil Pemimpin Alpha Caveman sekarang; bahwa manusia gua harus bertarung. Manusia gua lainnya bertarung nanti. Jika manusia gua saya kalah, jangan khawatir; toh dia terlalu berbulu.
Ditulis dalam Haskell (buka pemrograman fungsional!), Jadi simpan sebagai jailrules.hs , lalu kompilasi dengan:
Dan jalankan sebagai:
sumber
Saya memanggilnya JavaMan
catatan: Saya tidak bermaksud bermain golf kode .. tetapi jika Anda seorang pegolf dan spasi / garis tambahan membuat mata Anda berdarah .. jangan ragu untuk mengubahnya
sumber
Pikiran yang Mendalam, C
Kode manusia gua. Manusia gua berpikir. Manusia gua lakukan.
Saya melakukan pengujian. Lebih banyak pikiran lebih baik.
sumber
Nigel
Nigel adalah seorang manusia gua tua yang sabar dan defensif yang lebih suka taktis daripada menyerang habis-habisan.
Ini adalah skrip PHP, panggil dengan
php nigel.php
sumber
Aichmophobic - Lua
Dia akan sesekali menusuk Anda, tetapi hanya sampai beberapa tongkat menjadi terlalu tajam. Ketika ini terjadi, dia akan panik dan meringkuk ke posisi janin.
Jalankan dengan:
lua aichmophobic.lua
sumber
Gua Bob
Gua Bob adalah salah satu orang paling pintar di guanya. Dia telah belajar berhitung dengan satu tangan (yang lain sibuk memegang tongkatnya). Dia telah mengetahui Olimpiade Zaman Batu ini dan ingin berpartisipasi.
Strategi utamanya adalah memblokir dan menajamkan tongkatnya sampai ia memiliki tongkat tajam yang bagus atau manusia gua lainnya juga memiliki yang tajam. Dalam hal ini Bob Caves mencoba menusuknya!
Kompilasi dengan
javac BobCaves.java
dan jalankanjava BobCaves
Sunting: Bob sekarang diperhitungkan ketika ada blok! (terima kasih kepada Mikey Mouse ). Juga dia akan menajamkan tongkatnya ketika tongkat gua yang lain tumpul.
Sunting 2: Metode penghitungan yang ditingkatkan (sekali lagi terima kasih kepada Mikey).
Sunting 3: Membuat Bob sedikit lebih agresif.
sumber
Gruntt
Gruntt defensif. Gruntt menganalisis gerakan manusia gua lainnya untuk mengetahui cara menusuk mereka. Lalu dia menusuk mereka tepat di mata. Gruntt bukan manusia gua yang baik.
Kompilasi dengan
javac Gruntt.java
dan jalankanjava Gruntt
sumber
ArrayOutOfBoundsException
pada belokan pertama, dan terkadang menghasilkan beberapa tindakan pada belokan lainnya.Apakah ini seekor burung? Apakah ini pesawat terbang? Itu adalah RegExMan!
Dia mencoba menganalisis sekuens super-membosankan Anda dengan kekuatan RegEx-purba pribadinya!
Ditulis dengan Python 2.7, jalankan bersama
python RegExMan.py [history]
sumber
Sisilia
Tapi ini sangat sederhana! Yang harus saya lakukan adalah ilahi dari apa yang saya ketahui tentang manusia gua lainnya: apakah dia manusia gua yang akan memblokir, menajamkan, atau menusuk? Sekarang, manusia gua yang pandai akan menusuk atau memblokir, karena dia akan tahu bahwa hanya orang bodoh yang akan menajamkan dan mengekspos dirinya untuk menyerang. Saya bukan orang bodoh, jadi saya jelas tidak bisa mengasah. Tapi manusia gua lainnya pasti tahu aku bukan orang bodoh, dan akan mengandalkan itu, jadi aku jelas tidak bisa menyodok atau memblokir!
Jalankan dengan:
Kode:
sumber
bash-magnon
Bash-magnon dibangun dengan kuat dan kuat. Tubuh itu umumnya berat dan kokoh dengan otot-otot yang kuat. Keningnya cukup lurus daripada miring seperti di Neanderthal, dan hanya dengan sedikit alis. Wajahnya pendek dan lebar. Dagunya menonjol. Kapasitas otak sekitar 1.600 sentimeter kubik (98 cu in), lebih besar dari rata-rata manusia modern. Namun, penelitian terbaru menunjukkan bahwa dimensi fisik yang disebut "Bash-Magnon" tidak cukup berbeda dari manusia modern untuk menjamin penunjukan yang terpisah.
Saya punya otak, saya ingat.
Ini adalah eksekusi sendiri
./bash-magnon.sh
sumber
PokeBackBot
Cukup diadaptasi dari PokeBot:
Jalankan dengan
ruby pokebackbot.rb
.Ini menggunakan strategi paling sederhana berikutnya, dan memblokir "dengan sabar" untuk satu putaran sebelum menyerang.
sumber
SPS
(yang tampaknya masuk akal), tetapi sejauh ini PokeBot adalah satu-satunya di sekitar.Pendekar pedang
Ditulis dalam Python 3.4 (bekerja dengan Python 3.x)
Berusaha mendapatkan pedang secepat mungkin tetapi menyerang jika memiliki kesempatan untuk memukulnya (ketajaman> 0) dan musuh juga bisa melukainya (ketajaman musuh> 0).
Blok hanya jika tidak memiliki ketajaman dan musuh bisa menyerang.
Dimulai dari:
(diasumsikan Anda menyimpannya sebagai
swordmaster.py
)Kode cepat dan jelek:
(Setel
dg
keTrue
untuk mengaktifkan pesan debug)sumber
S
,P
,S
,P
...FoolMeOnce.py
Simpan gerakan masing-masing pemain untuk duel pertama, lalu ulangi dengan gerakan yang sama persis. Jika algoritme musuh adalah nonrandom, kami dapat memprediksi hasil dan serangan yang sama hanya ketika kami tahu kami akan menang.
Ditulis dengan python 3, jadi kemungkinan besar Anda harus menggunakan python3 FoolMeOnce.py Pada putaran pertama, saya tidak yakin apakah kami mendapatkan string kosong atau hanya koma, sehingga mungkin diperlukan beberapa penyesuaian.
sumber