Anda perlu membuat tiga hal:
- Pernyataan tugas, T .
- Solusi dari tugas dalam bahasa biasanya tidak digunakan untuk bermain golf, A .
- Solusi dari tugas dalam bahasa biasanya digunakan untuk bermain golf, B . Jangan mencoba membesar-besarkan B untuk meningkatkan skor, alih-alih berpikir seolah-olah B ditulis oleh pesaing Anda.
Gunakan akal sehat dalam mendefinisikan typically used for golfing
, cobalah untuk memaksimalkan kesenangan bagi pengguna lain.
Pengguna lain dapat mengusulkan yang lebih baik B
(mungkin termasuk dalam bahasa "golf" lainnya).
Skor adalah (length_in_bytes(B)+5)/(length_in_bytes(A)+5)
, lebih banyak lebih baik. (Mungkin rumus penilaian harus diubah? ..)
Gagasan utamanya adalah menciptakan tugas di mana bahasa yang biasanya berkinerja baik di codegolf menemui masalah. Ini bisa menjadi kekuatan tiba-tiba dari bahasa yang biasa dalam tugas yang diberikan atau kelemahan tiba-tiba dari beberapa golflang.
Hindari tugas yang menyebutkan bahasa pemrograman tertentu, seperti Input a string and execute it as a Scheme code
.
Jawaban:
Pertanyaan saya sebelumnya, Cetak gelombang sinusoidal (vertikal), memenuhi syarat saat ini. Saya mempostingnya di sini sebagai solusi, juga berharap kalian dapat menemukan beberapa solusi yang lebih pendek untuk pertanyaan awal saya.
Seperti yang disyaratkan oleh Vi., Saya akan memposting ringkasan pertanyaan.
Cetak gelombang sinusoidal kontinu yang bergulir secara vertikal pada terminal. Program tidak boleh berhenti dan harus terus-menerus gulir ke bawah gelombang (kecuali sampai SIGINT). Anda mungkin menganggap overflow bukan masalah (yaitu Anda dapat menggunakan loop tak terbatas dengan penghitung yang bertambah, atau rekursi tak terbatas).
Gelombang harus memenuhi properti berikut:
|
Ada contoh keluaran pada pertanyaan awal saya, tapi saya tidak mempostingnya di sini, karena ini akan membuat jawaban saya sangat panjang. Pertanyaan asli saya dapat dilihat di sini: Mencetak gelombang sinusoidal (vertikal)
A
Saat ini terpendek : solusi Perl dengan 48 karakter: https://codegolf.stackexchange.com/a/18655/12205B
Saat ini terpendek : solusi J dengan 54 karakter: https://codegolf.stackexchange.com/a/18649/12205Saat ini, skor jawaban ini adalah 1,113 (skor sangat rendah)
sumber
Tambahkan dua angka
Dapatkan dua angka dari STDIN, dan tambahkan bersama. Anda harus mendukung angka floating point, jadi 0,5 + 1,5 harus sama dengan 2.
Perl 5 (dengan
-E
)GolfScript
sumber
(24+5)/(8+2+5) = 1.9(3)
.-E
juga dihitung sebagai byte program.n%'+'*'"#{ }"'n/\*~
mana karakter di antara keduanya{}
adalah baris baru literal (tidak didukung dalam komentar).+/".1!:1,~1
. APL mungkin akan lebih kecil lagi.Cetak 'Halo, Dunia!' ke stdout.
PHP, 13 byte
Golfscript, 15 byte
Pyth, 14 byte
sumber
H
Skor 48/37 atau 1. (297)
T: tuliskan cuplikan kode yang mengakhiri program setelah tepat satu jam (sedekat mungkin, seperti dalam sedetik) berjalan. Jangan khawatir tentang pengecualian, mereka bisa tidak tertangani.
A: Java (32)
B: untuk Befunge 98, membutuhkan sidik jari TIME (43)
Ini membutuhkan Hour, Minute, dan Second pada saat berlari, dan menempatkan pada sel 02, 01, dan 00. Kemudian, ia melompati
;
bagian kedua. Bagian kedua berfungsi sebagai berikut:sama untuk Menit dan Jam.
Perhatikan bahwa Befunge secara otomatis akan kembali ke awal baris ketika akhir baris tercapai.
Seperti yang bisa kita lihat, Befunge tidak bagus dalam hal menunggu waktu tertentu. Namun, Java tidak buruk.
sumber
⎕DL 3600
class Main{public static void main
...System.exit(0);
atau membungkus tidur Anda dalam suatumain
metode.error: not a statement
Keluarkan file teks tertentu (498.388888 poin)
Keluaran tujuannya ada di sini .
Skrip Python 3.4.3 untuk mencetaknya adalah 49 byte:
Program CJam naif sama dengan output tujuan, dengan membungkus string output
"..."
dan melarikan diri masing"
- masing yang terjadi di dalamnya, akan menjadi 26908 byte.sumber
Katakan "Halo dunia!" (50/26 ≈ 1.92)
Perlihatkan kotak pesan untuk mengatakan "Halo dunia!"
JavaScript
Di browser dengan dukungan untuk DOM Level 0+.
Perl
Berjalan di ActivePerl dengan Win32 :: GUI.
sumber
alert
secara inheren bukan bagian dari JS, dan program GolfScript hanyalah sebuah komentar.Keluaran "Halo dunia!" sampai pengguna menekan "q",
1.842105/44 = 2.386QBasic (
5239 karakter)Sejak memposting jawaban asli saya, saya menemukan bahwa saya dapat mematikan autoformatting di QB64. : ^ D Dengan nomor baris dan
?
pintasan untukPRINT
, ini terlihat seperti ekspresi ternary dalam bahasa mirip-C.Versi pertama:
Perl 5 (100 karakter)
Di atas hanya akan bekerja pada sistem UNIX (tertentu?) (Diuji pada Ubuntu 12.04). Mungkin saja seseorang dapat melakukan cross-platform dan mendapatkannya hingga 91 karakter menggunakan modul Term :: ReadKey , tapi saya belum mengujinya:
sumber
Halo, dunia (3 1/3 poin)
Tulis program yang menampilkan
Hello World.
.HQ9 + (1 karakter)
Ini bukan bahasa "biasanya digunakan untuk bermain golf", jadi saya percaya ini cocok di sini. Bekerja dalam interpreter ini, dengan cara .
GolfScript (15 karakter)
Saya ragu itu bisa menjadi lebih pendek, bahkan jika itu GolfScript.
sumber
HQ9+
cocok sebagai bahasa A. Ini dirancang untuk trik / teka-teki / kesenangan. Brainfuck / Unlambda / bahasa esoterical lain juga tampaknya tidak sesuai sebagai A .HQ9+
sebagai B bahasa dan mengalahkan itu oleh Java atau seperti ...Keluaran "Halo dunia!", 33/97 = 2.94
Tulis program yang menampilkan
Hello world!
Arduino atau GML
atau
Keduanya 28 karakter.
GTB
Saya menggunakan GTB untuk bermain golf banyak (terutama karena saya membuatnya sendiri, dan itu Turing lengkap). Sayangnya, hanya ada dukungan terbatas untuk huruf kecil (karena kalkulator TI-84 tidak dapat mengatasinya). Ini mungkin program GTB terpendek yang dapat menampilkan Hello world!
92 karakter.
sumber
cos
s danexprs
atau tidak benar-benar hanya bisa mengeluarkan sesuatu secara teratur? Atau"
karakter sebenarnya bukan string literal dan membingungkan saya ..."Hello world!"