Selamat datang, pegolf kode yang berani! Hari ini Anda akan berdiri di tengah-tengah pertempuran hebat antara goblin dan peri!
goblin attacks elf!
elf dodges!
elf attacks goblin!
elf hits goblin for 13 damage!
goblin has 37 health left.
goblin attacks elf!
goblin hits elf for 1 damage!
elf has 49 health left.
elf attacks goblin!
elf hits goblin for 19 damage!
goblin has 18 health left.
goblin attacks elf!
goblin hits elf for 26 damage!
elf has 23 health left.
elf attacks goblin!
elf hits goblin for 20 damage!
goblin has been slain!
Tantangan
Tantangan Anda adalah untuk mensimulasikan pertempuran, seperti yang di atas. Anda akan menerima input dalam formulir ini:
creatureName health strength defense accuracy agility
Misalnya, pertempuran antara goblin dan elf adalah:
goblin 50 40 35 3 2 elf 50 35 30 4 5
Makhluk pertama dan kedua akan berganti serangan.
- Cetak 'creatureName menyerang otherCreatureName!'
- Periksa untuk melihat apakah makhluk itu berkelit. Makhluk itu akan menghindari serangan jika (kelincahan kali rand () dibagi 2) lebih besar dari (ketepatan waktu penyerang rand ()).
- Jika makhluk berkelit, cetak 'kreaturName berkelit!'
- Kalau tidak, hitung kerusakan yang ditangani dengan mengurangi (kekuatan kali penyerang rand ()) dan (waktu pertahanan lawan rand () dibagi 2). Kerusakan minimum adalah 1. Cetak 'creatureName hits otherCreatureName untuk (x) kerusakan!' Kemudian, cetak 'creatureName memiliki (x) kesehatan tersisa.' kecuali kesehatan makhluk itu 0 atau kurang, dalam hal ini ...
- Jika kesehatan makhluk itu 0 atau kurang, cetak 'creatureName telah dibunuh!' dan akhiri program.
Aturan
- Kode terpendek menang.
- Jangan benar-benar mencetak 'creatureName,' tetapi ganti dengan nama creature. Jangan cetak '(x) kerusakan' atau '(x) kesehatan;' gantilah dengan jumlah aktual. (Saya harus menentukan ini karena beberapa orang sangat kreatif dengan membengkokkan aturan.: P)
code-golf
simulation
Gagang pintu
sumber
sumber
goblin 50 40 18 3 2 elf 50 35 15 4 5
?Jawaban:
APL (
249244242)Gaya prosedural kali ini, jadi (setidaknya dalam Dyalog) Anda harus menempelkan ini ke jendela editor. Saya menamainya
G
(baris pertama adalah nama, saya sudah memasukkannya karena itulah yang muncul di jendela editor sehingga mungkin harus dihitung).(edit: GOTO numerik yang digunakan alih-alih label garis. Ternyata (dalam Dyalog setidaknya) semua yang didefinisikan oleh sebuah label
X:
diaturX
ke nomor baris, jadi sebaiknya gunakan angka-angka itu secara langsung.)sumber
Perl, 254 + 1
Jalankan dengan
perl -nM5.010
(atauperl -nE '<code>'
). Per meta ,-n
sakelar dihitung sebagai satu karakter tambahan. Tidak ada trik golf mewah dalam kode ini, kecuali mungkin penggunaan$=
sebagai variabel kerusakan untuk menyimpanint
.Sunting: Semoga perhitungan kerusakan sudah benar sekarang.
sumber
CoffeeScript
454432Lewati sebuah string
b
untuk mendapatkan hasil. Saya pikir akan lebih menyenangkan untuk memiliki output animasi grafis, jadi saya mengumpulkan demo. Cukup ganti kotak input untuk mengubah statistik dan nama. Gambar-gambar dari dari jpg.to yang merupakan API google-gambar tidak resmi.Demo Aksi Super
Input yang Disarankan (sarankan untuk Anda sendiri):
sumber
voldemort 9999
haha: D10e42
, tetapi browser Anda dapat membeku ...Ruby,
292264Entri golf kode pertama saya; bagaimana definisi metode mem-parsing di luar saya :)
Apakah boleh membaca input dari parameter baris perintah (mis.
ruby battle.rb goblin 50 40 35 3 2 elf 50 35 30 4 5
)?Ideone dijalankan
sumber
JavaScript;
347341333Seperti yang selalu saya lakukan, saya akan memulai dengan solusi saya sendiri:
EDIT: tampaknya menetapkan
console.log
untuk istirahat variabel pada beberapa browser, jadi inilah kode yang sama dengan deklarasi fungsi sebagai gantinya:Saya sedang berpikir untuk mengubahnya
alert
, tetapi itu hanya akan jahat: Psumber
Uncaught TypeError: Illegal invocation
karenaa=console.log
. tidakkah Anda harus mengikatconsole
objek sebagai konteks, misalnyaa=console.log.bind(console)
?alert
, tapi itu akan sangat mengganggu: PPython: 393
Aku meremas sedikit lebih keras, jika aku punya 3 aku mungkin bisa lakukan
print = p
untuk mempersingkat beberapa lagi, tapi aku tidak berpikir ada banyak yang tersisa dalam yang satu ini.393:
399:
Saya pikir orang melewatkan bahwa jika Anda memiliki kondisi yang baik di loop, Anda tidak perlu memeriksa apakah targetnya di bawah kesehatan.
sumber
JavaScript:
340306339:
306:
Output sampel:
Edit catatan: karakter +1, saya melewatkan "!" setelah "dodges"
Oh dan saya lupa untuk benar-benar menaruh output setelah "Contoh output"
Mengubah header menjadi JavaScript, seperti yang disarankan oleh @tbodt
sumber
R: 387 karakter
Atau dikembangkan sepenuhnya, dengan lekukan dan komentar, untuk membuat segalanya lebih jelas:
sumber
C # -
464453 karakterSetelah beberapa malam dalam hal ini saya tidak bisa mendekati entri lainnya (tidak mengejutkan bagi C #). Saya kira masih ada ruang untuk perbaikan. Tidak ada trik khusus yang pintar.
Berkomentar:
sumber
Python 3, 314
sumber