Ini ulang tahun ke 17 saya dan Anda diundang ke pesta saya!
Dan seperti biasa di pesta-pesta, akan ada kue.
Satu kue ...
Dan Anda membutuhkannya sebanyak mungkin.
Karena ini adalah pesta yang adil, kita masing-masing akan mengatakan berapa banyak kue yang kita inginkan dan orang yang mengatakan jumlah terkecil akan mendapatkannya. Kemudian semua orang dapat mengulangi prosesnya sampai kue hilang.
Tantangan
- Diberikan input melalui argumen baris perintah dalam bentuk
total-degrees degrees-left total-people people-left
, output ke output standarinteger-bid-in-degrees
. - Jika tawaran Anda adalah yang terendah, Anda menerima jumlah kue itu dan keluar untuk putaran itu.
- Jika tawaran Anda tidak terendah, bot Anda dapat menawar kue yang tersisa.
- Dalam hal tawaran terendah sama, orang yang dihapus akan dipilih secara acak.
- Di akhir ronde, setelah semua kue habis atau tidak ada yang tersisa untuk menawar, orang dengan kue terbanyak menang!
- Dalam kasus di akhir putaran dan dua orang memiliki irisan terbesar berukuran sama, pemenang dipilih secara acak dari entri gambar.
Gameplay
- Akan ada 17 putaran, pemenang keseluruhan akan menjadi entri dengan kemenangan terbanyak secara keseluruhan.
- Dalam hal pengundian, putaran akan dimainkan sampai ada pemenang yang jelas.
- Setiap hari, saya akan memperbarui skor saat ini sehingga orang dapat meningkatkan entri mereka.
pengajuan
Anda harus menulis entri Anda sebagai
Nama Bot, Bahasa
Insert Code Here
Penjelasan / Acak hal di sini
Jika entri Anda tidak diformat dengan cara ini, controller TIDAK akan dapat menjalankan entri Anda. Jika saya menemukan ini terjadi pada entri Anda, saya akan memberi tahu Anda dalam komentar, dan / atau mengedit jawaban ke dalam format yang benar.
Entri dan penyimpanan file Anda
- Bot Anda dapat menyimpan file di
./data/
direktori dan tempat lain.- Tidak diperlukan tetapi harap simpan file Anda sebagai
botname*
- Anda tidak boleh menulis file dalam format ini jika
botname
bukan nama entri Anda. - Ini berarti Anda diizinkan untuk menimpa file lain yang Anda temukan yang tidak muncul dalam format ini. Anda tidak seharusnya melakukan ini dengan sengaja, harap berolahraga.
- Bot Anda tidak boleh berasumsi bahwa file-file yang dibutuhkannya ada tetapi ia dapat menganggap
./data/
ada. - Ini karena saya sesekali menghapus
./data
direktori, saya akan melakukan ini ketika putaran benar-benar dimulai. (Tapi tidak di antara mereka)
- Tidak diperlukan tetapi harap simpan file Anda sebagai
- Bot Anda mungkin tidak menghapus file sama sekali
- Bot Anda hanya diperbolehkan membaca file di
./data/
direktori- Ini berarti Anda dapat melihat file entri lainnya
Hasil:
Lemah lembut memenangkan kontes! Bagus @ Cabbie407
Dan sekarang untuk beberapa statistik acak:
Daftar posisi setiap bot masuk: (Dilakukan dengan baik untuk bot apa pun yang muncul dalam daftar ini, Anda berada di 5 teratas setidaknya satu kali!)
Lemah, Lemah, Eidetik, Lemah, Lemah, Lemah, Lemah, Lemah, Lemah, Lemah, Lemah, Givemethecake, Givemethecake, Givemethecake, Lemah, Eidetic
Eidetic, Eidetic, Meek, AlCakeSurfer, Eidetic, AlCakeSurfer, Meek, MyFairPlusAThird, Eidetic, Eidetic, Eidetic, Eidetic, MyFairPlusAThird, MyFairPlusAThird, Meek, MyFairPlusAThird, AlFakePurfer
Reallythecake, AlCakeSurfer, AlCakeSurfer, Meek, AlCakeSurfer, Meek, AlCakeSurfer, AlCakeSurfer, Reallythecake, AlCakeSurfer, Meek, MyFairPlusAThird, Eidetic, Eidetic, Eidetic, Eidetic, Eidetic, Reallythecake
AlCakeSurfer, Reallythecake, MyFairPlusAThird, MyFairPlusAThird, MyFairPlusAThird, MyFairPlusAThird, MyFairPlusAThird, Eidetic, AlCakeSurfer, MyFairPlusAThird, MyFairPlusAThird, MyFairPlusAThird, Mydair, bill, Ferher, Adher
tagihan, MyFairPlusAThird, tagihan, tagihan, tagihan, tagihan, Rilis
File log lengkap untuk cometition saat berjalan dapat ditemukan di sini . Maaf tentang perubahan format setengah jalan.
Saya tidak akan menjalankan kontes lagi, jika Anda ingin memposting lebih banyak entri, Anda dapat melakukannya, controller dapat ditemukan di repo github saya untuk kontes ini .
sumber
{u'StatelyImitator': 719, u'Dieter': 4, u'Reallythecake': 0, u'Greedy': 0, u'Meek': 2, u'FlamingChainsaw': 0, u'Slim': 0, u'CharityBot': 0, u'Gentleman': 297, u'ALittleOffTheTop': 256, u'EatThe\u03c0': 0, u'Pig': 0, u'CakeEater': 330, u'BobBarker': 0, u'FloorBot': 5, u'Fatbot5000': 296, u'Moses': 360, u'Magician': 720, u'Hungry': 257, u'Imitator': 354} [u'Magician']
,. Jika bot Anda memiliki skor 0, berarti melakukan sesuatu yang salah.Jawaban:
Lemah, awk
Saya melihat ini sekali dalam simulasi.
sumber
Pesulap, Jawa
Angka 720 ajaib.
Ini
adalahdimaksudkan untuk menguji controller dantidakentri serius.sumber
Slim, Python 2
Bot ini sedang diet.
sumber
SadBot :(, C ++
Sebelumnya FairBot
FairBot hanya menginginkan porsi yang sama :(
Dia ingin membagi kue secara merata di antara semua peserta.
(Dia sepenuhnya mengharapkan bot lain untuk merobeknya karena dia tahu itu jahat)
(Seperti benar-benar. Dia kesepian, dia hanya ingin bot lain menyukainya)
(Dia baru saja keluar dari hubungan yang buruk dan sedang mengalami masa sulit, jadi jika Anda bisa memberinya tepukan di punggung dan senyuman untuk membuatnya merasa lebih baik itu akan sangat berarti.)
EDIT mengubah program untuk mengambil input dari argv / c alih-alih stdin (bot yang adil masih sedih .... Dia ingin mengubah namanya menjadi sadbot (itulah sebabnya dia ingin kue))
sumber
Halver, Ruby
Sangat adil, sangat adil. Setengah kue untukku, setengah kue untuk semua orang.
sumber
CharityBot, Python 2
Tambahkan kue lain ke dalam campuran!
(Pengontrol akan melihat ini sebagai permintaan 0 kue, tidak akan benar-benar menambah ukuran kue)
sumber
Imitator yang megah, Ruby
Varian dari Imitator (jika Anda lebih suka hanya satu entri per pemain, ini menggantikan yang satu itu). Terus melacak irisan terbesar yang diambil, dan selalu cukup tawaran untuk mengalahkan irisan itu. Juga tidak akan pernah menawar lebih rendah dari bagian sisanya yang adil. Mengasumsikan direktori './data' sudah dibaca / dapat ditulis; file dapat sudah ada di sana atau tidak.
sumber
Dieter, Jawa
Itu tidak ingin menawar terlalu banyak kue, jadi ia memilih sepotong acak kecil tapi dijamin .
sumber
Flaming Chainsaw, Java
Pernahkah Anda mencoba mengadakan kontes pemotongan kue dengan gergaji mesin? Nah, sekarang sudah. Agak mengganggu.
sumber
Tuan-tuan, Jawa
Dia menunggu orang yang makan dengan porsi yang adil atau kurang sebelum dia makan kue apa pun. Untuk mencegah serakah dari mendapatkan kue tambahan, ia mengambil porsi sebesar mungkin.
sumber
Bob Barker, Jawa
Ini mungkin akan diganti dengan solusi yang lebih dipikirkan nanti, tapi saya ingin tahu apakah ini akan berhasil. Ini hanya untuk menangkap bot yang mencoba dan pergi secara maksimal, dan melakukan strategi Price is Right yang dimodifikasi untuk mencuri jawaban mereka. Mungkin mengarah pada peningkatan dengan pengurangan bilangan bulat yang meningkat, itu akan menjadi rapi.
EDIT: Eskalasi dimulai, kontra-posting terhadap FloorBot
sumber
args[1]
ke int sebelum melakukan pengurangan.Eidetik, Python 2
Saya menjalankan bot ini di pengontrol beberapa kali untuk melatihnya sedikit, ia mengingat tawaran yang diperlukan untuk memenangkan setiap putaran dan kemudian setelah dilatih, ia pergi ke dunia nyata dan memberikan suara dengan sisanya.
sumber
AlCakeBot, Python
Ini adalah posting PCG pertama saya; Saya harap ini berhasil sebagaimana dimaksud ...
Saya suka kue. Apa pun jenisnya. Rekan-rekan saya tahu. Dan bot saya juga demikian. Jika seluruh kue masih ada, dia akan menawar hanya setengahnya, berharap mendapatkan potongan terbesar segera. Jika tidak, ia harus menawar sesuatu antara setengah kue yang tersisa dan semua kue yang tersisa, menggunakan sinus kuadrat sebagai fungsi pembobotan (
½ + sin² (fraction gone) / 2
). Alasannya adalah bahwa harus ada kesempatan untuk irisan yang lebih besar secara keseluruhan (tetapi fraksional lebih kecil) di awal permainan dan ada juga gunanya mencoba menjadi pria sejati di akhir permainan.Karena saya tidak terlalu suka pemrograman, saya akan menghargai kesalahan yang ditunjukkan Sekarang mari kita makan kue = D
sumber
Cakep, Ruby
Saucy bersedia menerima sedikit kurang dari setengah dari kue yang tersisa, asalkan lebih dari yang didapat atau kemungkinan diperoleh orang lain (berdasarkan saus rahasia).
sumber
CoffeeJunkie, Coffeescript
Apa sebenarnya kue tanpa secangkir kopi yang enak?
CoffeeJunkie lebih suka kopi daripada sepotong kue, tetapi tetap ingin mencobanya. Dia akan selalu bersikap adil kepada peserta lain dan akan mencoba mengingat apa yang terjadi pada kue terakhir. Namun, konsumsi kopi yang berlebihan telah melemahkan ingatannya ...
sumber
npm install -g coffee-script; coffee CoffeeJunkie.coffee
Sabotase Megah, Ruby
Bot ini memutuskan bahwa untuk menghilangkan persaingan, tidak boleh olahraga.
Ini adalah tiruan dari Stately Imitator, kecuali yang ini mengacaukan file kegigihan Stately Imitator (karena mereka tidak diawali dengan nama bot) sehingga membuat keputusan yang salah dan dipilih terakhir.
sumber
Trader, R
Melacak evolusi derajat kiri vs rasio orang yang tersisa dan ketika rasio itu mulai menurun, ia meminta potongan yang cukup adil, jika tidak meminta seluruh kue yang tersisa. Diminta menggunakan
Rscript trader.r total-degrees degrees-left total-people people-left
.sumber
IWMBAICBIWT, Python
IWMBAICBIWT (Itu adalah hari ulang tahun saya dan saya menangis karena saya ingin) berasumsi bahwa ada hubungan antara derajat yang tersisa dan jumlah orang yang tersisa. Semoga berhasil!
Harus bekerja di semua Python.
Edit:
Menyimpan
sys.argv
input agak boros ...sumber
degreesleft = int(inputs[2]); peopleleft = int(inputs[4])
dan itu menawar 1 setiap saattamu, Python 2
sumber
tagihan, Python 2
Taruhan yang adil.
sumber
AlCakeSurfer, Python
Karena AlCakeBot melakukannya dengan sangat buruk (dan saya berharap dia melakukan lebih buruk dalam kontes) inilah entri kedua saya. Saya memanggilnya Surfer, karena ia memiliki fungsi gelombang naik-turun yang sangat bagus yang membuatnya merasa seperti peselancar.
Pada prinsipnya, ia menawar sesuai dengan
cos² (x * pi)
, di manax
fraksi kue yang telah diambil. Gelombang selancar ini dimodifikasi dengan fungsi pembobotan yang menyebabkannya mulai dengan kurang dari bagian yang adil kurang dari setengah dari kue, mengurangi tawarannya hingga tepat di atas bagian yang adil sekitar ketika setengah dari kue itu hilang, dan kemudian mempercepat kembali untuk menawar seluruh kue nanti. Dia tidak akan pernah menawar kurang dari bagian yang adil dari kue yang tersisa ditambah 5% (persen dari seluruh kue, yaitu).Perhatikan bahwa meskipun mereka mungkin bersaudara, jika dia mendapatkan irisan yang jauh lebih besar daripada AlCakeBot, yang terakhir bahkan tidak mendapatkan remah tunggal itu. Mereka akan berbagi cokelat atau biskuit, tetapi bukan kue!
sumber
Lapar, Jawa
Selalu ingin bagian yang adil dari kue yang tersisa.
sumber
Peniru, Ruby
Tujuannya adalah untuk mendapatkan lebih banyak kue daripada orang lain, bukan untuk memaksimalkan kue Anda. Dengan demikian, bot ini tidak akan puas dengan apa yang telah diambil bot sebelumnya. (Versi ini menggunakan heuristik untuk pemeriksaan itu, saya baru saja memperhatikan bahwa kita benar-benar diizinkan untuk menyimpan status jadi saya mungkin akan memposting varian stateful nanti).
sumber
Sungguh kue, Bash
Dan ini adalah gambar kue asli.
sumber
Pemakan Kue, Jawa
Itu makan kue. Itu saja.
sumber
Relinquisher, Jawa
Varian dasar bot saya yang lain, Tidak Sabar. Yang ini mencoba untuk mengambil semuanya pada awalnya, tetapi karena semakin banyak tamu mendapatkan bagian mereka, keinginannya untuk mendapatkan yang paling mungkin perlahan-lahan berkurang. Saya tidak terlalu suka yang ini; hanya ingin melihat seberapa baik itu.
sumber
ALittleExtra, sh
Saya hanya ingin sedikit lebih, menjadi lebih serakah seperti kue berkurang
sumber
MyFairPlusAThird, sh
sumber
EatTheπ, Node.js
Sangat suka π, dan berpikir kue itu
caraadalah π.sumber
var totalπ=process.argv[2], πLeft=process.argv[3], totalPeople=process.argv[4], peopleLeft=process.argv[5];
untuk membuat ini bekerja dengan controller. Ia mendapat 97 dari 3600 di bidang 41 bot.A Little Off The Top, Python 2
Karena algoritme "sempurna" mencoba untuk membagi kue secara merata di antara bot, kami hanya akan mengambil sepotong lebih sedikit dari itu. Menuntut bagian penuh keseluruhan dari kue keseluruhan, bahkan di putaran berikutnya, tetapi condongkan angka itu ke atas karena didasarkan pada berapa banyak orang yang tersisa.
Saya belum diprogram dalam Python dalam panjang sementara, jadi biar tahu jika kode saya rusak ...
sumber