Tantangan 9 Lubang
- 9 kode tantangan golf dari berbagai kesulitan.
- Hukuman karena menggunakan bahasa yang sama lebih dari satu kali.
Pertanyaannya akan diperbarui dengan pemenang pars, hole hole, dan piala.
Ini berasal dari kompetisi yang saya miliki dengan beberapa teman, ini bukan format yang biasa, tapi saya harap beberapa dari Anda akan menghargai putaran berbeda di dalamnya. Tantangan, peraturan, dan trofi di bawah ini.
Lubang
Greenway (24)
f(c:string, n:integer)
Mencetak baris yang berisin
instance daric
.Somewhere in the Rough (73)
f(t:string, s:string, n:integer) -> i
Di manai
indeksnth
instances
dit
.Kari untuk Makan Malam (6235)
f(x:function, y: function) -> g
Di manag
fungsi yang akan memanggily
,n
kali; di manan
nilai pengembalianx
Spew (92)
f(p:string)
Menulis untuk di filep
dan mengisinya dengan persegi panjang acak karakter acak (ascii).Berburu Harta Karun (75)
f(p:string, c:char) -> (x, y)
Membaca filep
yang berisi kisi-kisi simbol dan mengembalikanx
dany
mengoordinasikan instance pertama dari simbol itu dalam kisi, asumsikan ada.Jembatan di Sungai Kwai (179)
f(l:list[int])
Mencetak diagram beda jembatan untukl
. Misalnya untuk[1,7,3,17,1]
/+6\ /-4\ /+14\ /-16\ 1 7 3 17 1
Pastikan spasi dibuat sesuai dengan ukuran angka di atas. Untuk angka panjang 3 digit, Anda akan membutuhkan 4 spasi antara digit pada baris di bawah ini.
Tangkapan: Di suatu tempat, kode Anda harus mengeja celana (Harus memiliki setidaknya 1 pembatas non-alfanumerik. Misalnya
tr(ou,se)(rs)
Waktu berlalu ketika Anda Bermain Golf (1157)
f(p:string) -> [h, m]
Membaca file dip
mana berisi representasi ASCII dari jam analog, di mana jarum jam diwakili dengan satu baris, dan menit dengan dua. Keluarkan daftar yang berisi dua elemen: jam dan menit yang ditunjukkan pada jam. Jika hanya satu tangan yang terlihat, asumsikan kedua titik pada posisi itu.Berikut ini semua kombinasi yang mungkin untuk dilakukan.
\ | / \|/ --o-- /|\ / | \
Posisi-posisi ini, masing-masing adalah (12, 1, 3, 5, 6, 7, 9, 11). Asumsikan bahwa karakter lain dalam tampilan jam adalah spasi.
Kayu! ()
f(p:string) -> b:boolean
Di mana p adalah path ke file dengan ascii building. Blok dengan spasi putih di bawahnya akan jatuh. (Kecuali dari garis miring, yang tetap di tempatnya jika ada blok stabil di arah yang berlawanan dengan cara mereka menghadap). Jika bangunan secara integral integral mengembalikan true, sebaliknya return false. Semua blok non-spasi dihitung sebagai solid dan selain garis miring, semuanya jatuh.Secara struktural aman
____ |/\| | |
Tidak aman
|__ | |
Versi aman
|__ \\| |
Berita Slacker (218)
f(s:string, r:string, p:string)
Dapatkan judul-judul dari 20 cerita teratas di Hacker News dan ubah semua instances
menjadir
, lalu tulis judul-judul baru ke file html dip
, di mana setiap judul terkandung dalam elemen h1.File yang dihasilkan harus seperti ini
<h1>Some title</h1></h1>Some other title</h1>...etc
Tangkap :
- Anda tidak boleh menggunakan api HN.
- Anda tidak boleh menggunakan Regex.
- Anda tidak boleh menggunakan kawat gigi sudut di mana pun dalam kode Anda.
Mencetak gol
- Hitungan karakter adalah panjang fungsi yang akan dikompilasi & dijalankan dengan benar. Namun Anda masih perlu mengirimkan kode lengkap, termasuk impor.
- + 10% untuk setiap bahasa yang diulang dalam kiriman Anda. (Mis. Jika Anda menggunakan Ruby untuk 3 solusi, maka skor akhir Anda akan dikalikan dengan 1.2). Versi berbeda dari jumlah bahasa yang sama masih dihitung sebagai bahasa yang sama.
- Par akan menjadi skor rata-rata untuk setiap lubang.
- Kirimkan solusi Anda dalam satu jawaban.
- Skor keseluruhan Anda adalah jumlah karakter Anda + denda bahasa Anda, lalu kumpulkan.
Piala
- Jaket Emas - ( @Sprigyig - 1290) Nilai keseluruhan terendah
- Shooter - ( @Sprigyig - 9) Sebagian besar bahasa digunakan
- Bunker - Skor par kebanyakan di atas pada lubang apa pun
- Snakes on a Plane - ( @AsksAnyway - 1727) Penyerahan karakter python tertinggi dalam satu solusi
- Good Parts - ( @AsksAnyway - 255) Jumlah karakter JS tertinggi dalam satu solusi
- Shakey Steve - Solusi terpendek yang menggunakan antarmuka
- You're Not From Round Here - Solusi bahasa unik terpendek yang bahasa memiliki halaman wikipedia terpendek.
- Happy Gilmoore - ( @AsksAnyway - 31) Solusi terpendek yang memiliki kata 'buaya' dalam kode.
- Unicycling Dwarf Magic - Ekstensi default dari 9 file sumber kiriman Anda adalah anagram kata yang sempurna di Kamus Oxford.
Anda hanya berhak mendapatkan trofi setelah Anda menyelesaikan semua 9 lubang
Pengajuan
- @Sprigyig 1290
- @Firefly 1320
- @ grc 1395
- @ Trevor M 1465
- @C Gearhart 1654
- @ Beli Sirton 1719
- @ AsksAnyway 4651
sumber
<
&>
/
posisi merujuk pada jam 1 atau jam 2? (dan juga untuk semua diagonal lainnya)Jawaban:
Nilai: 4651
2907 + 60% penalti
1. GolfScript - 14 karakter
Penggunaan:
c n a
mis"test" 3 a
->testtesttest
Selamat Gilmoore
2. Python - 72 karakter
3. Javascript - 255 karakter
Bagian Bagus Bunker
4. Python - 132 karakter
5. Python - 89 karakter
6. Python - 189 karakter
7. Python - 1727 karakter
Ular di Pesawat
8. Python - 226 karakter
9. Python - 203 karakter
sumber
i<i<42
), atau mereka diizinkan selama Anda hanya menggunakannya sebagai operator?Nilai: 1320
Saya punya banyak hal yang harus dilakukan untuk meningkatkan skor ini ... Oh well, setidaknya saya menghindari hukuman bahasa berulang. :-)
1. Python (21 karakter)
Solusi "jelas".
2. ECMAScript 6 (47 karakter)
Temukan indeks dengan cara yang tidak konvensional, dengan menghitung panjang substring sebelumnya.
3. J (12 karakter)
Konjungsi
^:
bawaan meningkatkan fungsi ke daya (mis. Mengulangi fungsi beberapa kali). Yaituf^:3 y = f (f (f y)))
,. Namun, itu kelebihan beban untuk juga menerima fungsi daripada bilangan bulat, dalam hal ini menjalankan fungsi pada input untuk mendapatkan jumlah pengulangan. Sayangnya kita perlu membalik operan untuk tugas itu, kalau tidak kita akan memiliki jawaban yang singkatf=:^:
.4. C (95 karakter)
Tugas ini menyisakan sedikit ruang untuk interpretasi dan penyalahgunaan: apakah boleh untuk hanya menampilkan karakter ASCII yang dapat dicetak secara acak dan mengatakan itu adalah persegi panjang berdimensi acak dengan dimensi dari set {1}? Mungkin tidak. Ngomong-ngomong, saya pergi dengan polos
rand()
tetapi pada kenyataannya Anda mungkin ingin menambahkan%9
atau sesuatu jika Anda ingin mengujinya. Pada kotak linux saya, saya tidak perlu mem-flush file agar bisa ditulis (saya rasa otomatis memerah saat keluar dari program), tapi saya cukup yakin Anda harus mem-flush-nya agar sesuai standar, jadi rasakan bebas menambahfflush(f);
hitungan di sini.5. Haskell (100 karakter)
Saya suka pola berulang antara menemukan baris dan kolom (disarikan melalui
h
).6. Lua (261 karakter)
Manfaatkan beberapa nilai pengembalian dan rekursi untuk menangani perhitungan perbedaan. Harganya beberapa karakter untuk mencocokkan keluaran sampel dengan tepat (menambahkan jumlah ruang yang tepat di mana-mana).
7. Go (307 karakter)
Mungkin bisa bermain golf lebih banyak; Saya hampir tidak tahu Go.
8. CoffeeScript (+ node.js) (223 karakter)
Sedikit tembakan murah karena saya sudah punya JS. Baiklah. Mengembalikan nilai palsu (yaitu,
undefined
) atau nilai kebenaran (yaitu,1
) untuk menunjukkan jawabannya.9. Bash (254 karakter)
(Baris baru setelah pipa ditambahkan agar mudah dibaca.) Bekerja di sekitar pembatasan dengan shell itu menyenangkan. Saya menyadari mungkin ada cara yang lebih baik untuk dilakukan
$2,$4,$6,...
, tetapi inilah yang saya lakukan.sumber
f=str.__mul__
Nilai: 1,394,4
996 karakter + penalti 40%
1. Greenway - Haskell, 19 karakter
Pemakaian:
2. Kasar - PHP, 72 karakter
3. Kari - JavaScript 1.8, 45 karakter
4. Spew - J, 43 karakter
Pemakaian:
5. Harta - J, 64 karakter
Pemakaian:
6. Bridge - Python, 166 karakter
7. Waktu - Python, 205 karakter
Asumsikan garis adalah ruang yang diisi dengan lebar lima karakter. Gunakan tab untuk tingkat lekukan kedua.
8. Kayu - Python, 190 karakter
9. Slacker - Python, 192 karakter
Terima kasih kepada Tyzoid untuk ide penyingkat url.
sumber
Sunting: Pikir saya hanya akan mengirimkan ini seperti: total 1290, tidak ada pengulangan bahasa.
Greenway, C # 53
Saya memutuskan untuk bertukar bahasa dengan # 1 dan # 9. Benar-benar bernilai 30 di sini selama ratusan nanti.
Somewhere In The Rough, Python 59
Saya seharusnya tidak menggunakan bahasa yang begitu baik untuk masalah yang mudah. Juga, bagaimana ini bukan bagian dari keluarga fungsi indeks? Saya sepertinya selalu membutuhkan ini ...
Curry For Dinner, Lisp 61
Saya belum menyentuh cadel sejak satu minggu di perguruan tinggi ....
Buang, Utilitas Bash / shell 102
Bash-foo saya tidak pernah sebagus ini. Saya akan mengutak-atik yang ini nanti. BTW jika Anda ingin selesai lebih cepat, alihkan ke / dev / urandom.
Berburu Harta Karun, C 113
Mungkin salah satu masalah yang lebih ramah C. Saya menafsirkan "mengembalikan dua bilangan bulat" sebagai mengambil pointer array kembali sebagai argumen. Peringatan? Peringatan apa? Int * sama baiknya dengan FILE * = p.
Jembatan di Sungai Kwai, Perl 207
Saya mulai belajar perl saat menulis yang ini. (Lebih baik terlambat daripada tidak sama sekali!) Saya datang ke ini ingin melakukan regex heroik, jadi saya membentuk string sebagai kedua lapisan jembatan bersama-sama, kemudian menggunakan regex dengan penggantian ruang untuk membentuk dua garis yang berbeda.
Waktu Terbang Ketika Anda Bermain Golf, Jawa 297
Anda hanya dapat melakukan begitu banyak untuk membuat java terse ... Ini mengasumsikan jam adalah ruang empuk sehingga setiap baris panjangnya 5 spasi.
Kayu! Javascript 201
Ini berjalan di konsol chrome. Saya tidak membuat jaminan di tempat lain = hal. Hal ini membutuhkan garis-garis yang harus diisi ruang hingga panjang garis terpanjang. Saya merasa ini adalah permintaan wajar dari seni ASCII.
Slacker News, Ruby 197
sumber
Bersenang-senang menyentuh beberapa bahasa sebentar ...
Hitungan karakter diperoleh setelah menghapus spasi / baris baru yang tidak perlu tetapi pengiriman sebagian besar tetap dapat dibaca. Karena pertanyaannya adalah campuran fungsi dan program saya hanya menyertakan tubuh fungsi di mana diperlukan ... Juga beberapa kebebasan diambil dengan apa arti "kembali" adalah ...
Total ~ 1719
1- Python (~ 20)
2- C (~ 109)
Versi yang dapat dibaca:
3- Javascript (~ 56)
4- Rexx (~ 136)
5- Scala (~ 290)
6- C ++ (~ 355)
7- Go (~ 301)
Catatan ini membutuhkan jam yang harus diisi (yaitu semua garis memiliki panjang yang sama).
8- Ruby (~ 259)
9- bash / Unix hack (~ 193)
sumber
Tidak benar-benar di sini untuk bermain golf, tapi inilah Tcl, karena bahasa membutuhkan lebih banyak cinta:
Kebanyakan tidak diuji karena menulis procs ini dalam setengah jam jauh lebih menarik daripada mencoba merekayasa kode golf dengan benar. Nikmati!
sumber
Hanya punya waktu untuk mengerjakan 1/2 dari ini. Anda sepertinya menginginkan mereka dalam bentuk fungsi dan bukan satu liner. Jadi semua ini adalah fungsi. Kode pengujian di bawah fungsi. Dalam Perl.
Jalur hijau:
Kasar:
Kari:
Memuntahkan:
Harta:
Saya akan bekerja pada 6-9 besok.
sumber
WIP. Catatan, jumlah karakter mungkin tidak aktif karena
'\n'
danwc
[1 Greenway] Mindf * ck, 54 karakter
Penggunaan: Setelah kode ditulis, masukkan string Anda, dan akhiri string Anda dengan a ^ a (ctr + a), lalu segera setelah itu, masukkan nomor Anda.
Satu peringatan: angka yang diberikan hanya harus dari 0-9 (jika Anda menginginkan yang lebih besar, nilai ascii-48 dari karakter apa pun yang Anda masukkan akan digunakan sebagai
n
)Tangkapan layar:
[3 Curry for Dinner] Javascript, 59 karakter
[4 Spew] BASH, 56 karakter
[7 Waktu Terbang Saat Anda Bermain Golf] C, 334 Karakter (412 dengan definisi makro)
Catatan: fungsi ini mengembalikan pointer ke array integer dua dimensi, diformat seperti ini: {3, 55} (untuk posisi jam dari jam ke 3, menit ke 11)
[9 Slacker News] PHP, 246 karakter
Terpisah / Implementasi asli dalam BASH + AWK, 218 karakter
sumber
1654
1. Greenway (Haskell - 37)
2. Somewhere in the Rough (Mathematica - 43)
3. Kari untuk Makan Malam (Lisp - 58)
4. Memuntahkan (Matlab / Oktaf - 83)
5. Treasure Hunt (C - 176)
6. Jembatan di Sungai Kwai (Ruby - 192)
7. Waktu Terbang Ketika Anda Bermain Golf (Node.js - 406)
8. Kayu! (Pergi - 329)
9. Slacker News (Python - 330)
sumber
Saya seorang penipu & saya belum memainkan semua 9 hole… belum . Meskipun demikian, inilah lubang saya 8, solusi "Kayu" di Perl (149 char).
Salah satu rekan kerja saya menganggap ini sebagai tantangan di tempat kerja. Kami telah bersenang-senang dengannya, terutama saya, karena saya memiliki solusi par terendah sejauh ini!
Aturan kami adalah bahwa itu harus berupa skrip yang berdiri sendiri yang dihasilkan
true
ataufalse
diikuti oleh baris baruSTDOUT
, dan bahwa "shebang" tidak apa-apa.Di bawah ini adalah solusi "diperkecil". Saya juga memasang " inti " dari hal yang sama yang mencakup kode non-"minified" & (sering sangat panjang) penjelasan dari alasan di balik pendekatan saya.
sumber
Saya terlalu malas untuk memodifikasinya sesuai dengan peraturan kompetisi Meh, tetapi berfungsi dengan baik ...
sumber
Golf kode pertama! (Masih dalam proses ...)
1. Greenway
Bahasa: Python 3.2.3
Ukuran file: 23 byte
Kode:
3. Kari untuk Makan Malam
Bahasa: Python 3.2.3
Ukuran file: 64 byte
Kode:
sumber
Pekerjaan lain sedang berlangsung di sini, dan saya sedang bekerja sehingga saya akan kembali lagi nanti.
Greenway di Ruby (14 karakter, 24 dengan #alligator ), panggilan dengan
f.(c, n)
Tangkapan layar
Somewhere in the Rough in CoffeeScript (38 karakter)
Tangkapan layar
Kari untuk Makan Malam dalam JavaScript (54 karakter)
Tangkapan layar
Memuntahkan dalam PHP (111 karakter)
Ini mengharuskan
short_open_tag
file konfigurasi PHP diaktifkan. Kalau tidak pembatas pembuka seharusnya<?php
,@
simbol digunakan untuk membungkamPHP_NOTICE
kesalahan yang dilemparkan untuk menghindari menyertakanrand
dalam tanda kutip, dan untuk tidak secara eksplisit mendeklarasikan$s
variabel. Ini akan menghasilkan kotak persegi karakter ascii antara 4 dan 30 karakter pada kedua sumbu.Tangkapan layar
sumber
1. Greenway (Python 2: 20)
Input contoh:
a("asdf",3)
-> string (asdfasdfasdf
)2. Somewhere in the Rough (Python 2: 47)
Input contoh:
b("1,2,333,4,5,6",",",3)
-> int (7)3. Kari untuk Makan Malam (Javascript: 61)
Input contoh:
function z(){ return 3; }; function y(){ console.log( '1' ) }; myfunc = c(z,y); myfunc();
-> logstring(1)
ke konsol ... 3 kali.Sesuai spesifikasi,
c
mengembalikan fungsi, dan tidak benar-benar menjalankan fungsi itu sendiri.4. Muntah (C ++ 11: 171)
Tidak benar-benar menguji ini, tetapi harus bekerja.
sumber
Beberapa lekukan dibiarkan utuh untuk dibaca tetapi diambil saat menghitung karakter. Totalnya sekitar
1227. Atau tidak, saya lupa masalah.14861465 karakter.1. MIPS ASM (55 karakter)
2. Skema (52 karakter)
3. F # (39 karakter)
4. Powershell (133 karakter)
5. C ++ (
184152 karakter)6. C # (
291282 karakter)7. Haskell (
318306 karakter)Saya mencari-cari alasan untuk mencoba Haskell. Saya pikir saya pintar dengan membuat daftar posisi melalui kombinasi angka, tetapi dengan jumlah karakter yang saya butuhkan, saya bisa membuat kode yang sulit. Baiklah. Kode ini mengerikan tetapi tetap menyenangkan untuk menulis.
sunting: Tetap agar benar mengembalikan menit.
8. Lua (259 karakter)
Saya terkejut menemukan bahwa string tidak mendukung pengindeksan gaya array, jadi saya harus bergantung pada sub.
9. Python (187 karakter)
Terima kasih kepada grc / Tyroid untuk pemendek url.
sumber