Pekerjaan Anda, jika Anda memilih untuk tidak menolaknya, adalah menulis program yang akan "bermain golf" dengan kode yang diberikan dalam bahasa pilihan Anda.
Fungsionalitas dasar:
- Hapus spasi putih asing
- Hapus komentar
Fungsionalitas 'Lanjutan':
- Gabungkan deklarasi (
int x; int y; int z;
keint x, y, z;
) - Gunakan variasi struktur kontrol dasar yang lebih pendek (
while(1)
diganti denganfor(;;)
) - Pindahkan kode
i = 0; while(i < 10) { /* ... */ ++i; }
ke ( kefor(i = 0; i < 10; ++i) { /* ... */ }
) - Dll
popularity-contest
metagolf
Mateen Ulhaq
sumber
sumber
Jawaban:
Python dengan Python
Apakah banyak hal termasuk mengubah nama variabel, menyingkirkan spasi dan komentar yang tidak perlu, dan menempatkan sebanyak mungkin pada satu baris. Tidak selalu sepenuhnya berfungsi dengan sintaks python yang lebih bagus dan saya akan terus memperbarui dengan perbaikan apa pun.
Kode:
Diuji pada program menggambar fraktal lama yang saya miliki ( 4672 hingga 1889 ):
Asli:
Golf:
Jalankan dengan sendirinya (membuat quine yang sangat panjang) ( 9951 hingga 5323 ):
sumber
import*
bukanimport *
. Saya menduga itu akan bekerja di Python 2 juga?BrainFuck - 489 Karakter
Menghapus semua karakter yang tidak dapat dieksekusi. Menghargai komentar dari # hingga akhir baris.
Secara alami menjalankan sendiri dari sumber ini:
sumber
<>
yang tidak melakukan apaPegolf Brainfuck di Bash (v3)
Ini adalah pekerjaan yang sedang berjalan, saya akan terus memperbaruinya jika saya bisa.
Membaca dari file (nama file harus menjadi argumen baris perintah pertama).
Untuk saat ini yang dilakukannya hanyalah
<>+-.,[]
<>
,><
,+-
,-+
>>>><<<<<
dikurangi menjadi<
Kode
Bagaimana itu bekerja
Setelah menghapus semua karakter yang tidak dapat dieksekusi, ia melakukan hal berikut. Hit counter diatur
-1
pada awal - menghitung berapa banyak operasi golf dilakukan setiap kali loop luar berjalan.<>
,><
,+-
atau-+
, tambahkan 1 kehits
counter dan kembali ke langkah 1.sumber
HQ9 + pegolf di Bash (v3)
Saya tahu HQ9 + tidak berguna, tapi saya mungkin juga mengirimkan lima-liner untuk itu. Bunyinya dari
input standarfile. Path ke file harus menjadi argumen baris perintah pertama.fitur
HhQq9+
)+
(itu menambah nomor tetapi tidak ada cara untuk mencetak nomor itu)hq
ke huruf besar (bukan golf)Kode
sumber
/dev/stdin
sebagai argumen pertama :)Jawa dengan Jawa
Mengambil nama file sebagai argumen baris perintah, dan mengedit file di tempat.
while(true)
kefor(;;)
private
danfinal
Ketika program dijalankan dengan sendirinya, ukurannya berkurang dari 7792 menjadi 4366.
sumber
Perl, Bagian 1 - 2
(menghapus komentar dan mengabaikan
#
karakter di dalam tanda kutip ganda)(menghapus semua spasi putih setelah tanda kurung dan
=
tanda - tanda)Saya tidak mencoba golf kode ini. Mungkin, ketika sudah selesai, bisa main golf sendiri.
Contoh input
Keluaran
Selanjutnya, ini akan menghilangkan spasi antara simbol dan karakter alfanumerik.
sumber
Pegolf Java di Perl
WIP saat ini, walaupun sekarang mendapat kode yang cukup bagus.
Fitur:
Kode
sumber