Cetak karakter pertama dari jawaban sebelumnya

17

Pemenang yang diterima adalah isaacg, dengan jawaban ASCII 7-bitnya . Namun, tantangannya belum berakhir - karunia ini diberikan untuk jawaban terpendek. Jika, entah bagaimana , Anda mendapatkan semua karakter pertama dari semua jawaban lainnya menjadi 10 byte, Anda akan memenangkan hadiahnya. Ini termasuk semua karakter dari jawaban GolfScript Putaran 2 (ditambah yang ditambahkan oleh jawaban itu sendiri). Ini adalah SATU kali saya akan membiarkan Anda pergi rusak - jika Anda memiliki keberatan dengan ini, beri tahu saya di komentar.

Saya ingin memberikan penghargaan kepada randomra, yang membantu saya dengan ide lama saya dan memberi saya yang baru ini.

Pemenang Sebelumnya

  • Babak 1: isaacg, dengan 7-bit ASCII.
    Next bytes: 30 (or 10 if you want that sweet, sweet rep)
    Anda tahu, bermain golf benar-benar keren. Orang menerima tantangan, dan perlahan-lahan menjadi lebih kecil! Tapi mari kita lakukan ini dengan cara lain. Jadi, inilah tantangan saya:

  • Kode akan mencetak karakter pertama dari semua jawaban sebelumnya sesuai urutan yang diposkan (jawaban pertama tidak mencetak apa pun)

  • Kode dimulai pada 100 byte dan berkurang 5 setiap kali.
  • Jika dua posting dilakukan dengan jawaban yang sama (yaitu, keduanya diposting dalam beberapa detik satu sama lain), yang lebih baru harus menambahkan karakter yang lama dan berkurang 5 byte (bahkan beberapa detik).
  • Bahasa apa pun bisa digunakan.
  • Kode Anda tidak boleh menghasilkan kesalahan.
  • Kode Anda harus menggunakan semua byte yang diperlukan untuk langkah pertama.
  • Kode Anda harus dicetak ke STDOUT.
  • Karakter yang tidak dapat dicetak OK, tetapi:
    • Mereka tidak dapat menjadi karakter pertama (demi tujuan pertanyaan ini)
    • Anda harus memberi tahu semua orang di mana mereka berada
  • Anda dapat memposting beberapa jawaban, tetapi:
    • Anda harus menunggu 2 jawaban sebelum memposting yang lain (jadi jika Anda memposting 100 byte, Anda harus menunggu hingga 85 byte.)
  • Kamu tidak bisa:
    • gunakan lebih dari 10 byte komentar
    • memiliki variabel yang tidak digunakan untuk seluruh program
    • isi program dengan spasi putih
    • memiliki nama variabel yang lebih panjang dari 10 byte (tetapi Anda dapat memiliki beberapa variabel kurang dari 10 byte)
      (jawaban pertama EMBLEM menjadi pengecualian untuk aturan ini, karena itu diposting sebelum pembatasan ini.)
  • Tidak ada celah standar. Kecuali jika Anda ingin mengambil semua kesenangan dari tantangan.
  • Ketika tidak ada lagi jawaban yang dikirimkan selama 3 minggu, jawaban yang menggunakan byte paling sedikit akan menang. (Dalam hal seri, yang mencetak string yang lebih panjang menang.)

Contoh: Jawaban ketiga harus berupa kode panjang 90 byte yang menghasilkan dua karakter (karakter pertama dari kode 100-byte kemudian karakter pertama dari kode 95-byte). Jawaban pertama tidak menghasilkan apa-apa (tidak ada jawaban sebelumnya untuk mendapatkan karakter).

ASCIIThenANSI
sumber
"Ruang putih yang tidak perlu" adalah kata-kata yang buruk. Spasi spasi putih untuk mengakhiri pernyataan tidak perlu, karena Anda dapat menggunakan titik koma.
EMBLEM
8
Mungkin, kita bisa mulai dari 100 byte lagi, tetapi mulai dengan ppuppPq([#fwSmdP[sebagai string awal, dan memulai kembali setiap kali string lebih panjang dari bytecount yang diizinkan. Tapi saya tidak bisa memikirkan kriteria kemenangan.
Sanchises
1
@Scimonster Anda benar-benar berpikir ada set karakter 4-bit yang mencakup semuanya #(PS[dfmpquw? Kami mengalami batasan kepadatan informasi di sini. Kecuali Anda menulis program 10 byte yang memproses semua jawaban sebelumnya. Tidak yakin apakah itu layak ditunggu.
Sanchises
2
@sanchises Kami tidak mengatakan ada satu. Kami memberi orang kesempatan untuk melihat apa yang bisa mereka lakukan. Jika tidak ada yang bisa, kami akan memulai kembali.
ASCIIThenANSI
6
-1 Mengapa tantangan ini tidak mati dengan martabat setelah solusi 15-byte? Tampaknya tidak jujur ​​untuk mengubahnya setelah jawaban "menang" yang bagus diberikan hanya agar Anda dapat terus bermain dengan aturan yang berbeda.
Geobits

Jawaban:

34

7-bit ASCII, 15 byte

Diperbarui: Saya tidak menyadari bahwa bantalan harus terjadi pada akhirnya.

Versi yang benar, empuk di ujung:

hexdump (xxd):

0000000: e1c3 af0e 1438 a8b6 8f37 7a7b 7250 b6    .....8...7z{rP.

Cetakan (tidak yakin mana yang benar):

�ï8��z{rP�

áï8¨¶7z{rP¶

Versi lama, bantalannya salah di bagian depan:

pá×
T[G½=¹([

Bahasa / format di sini adalah ascii 7-bit, di mana setiap kelompok 7 bit sesuai dengan karakter ASCII. Ini digunakan dalam mentransfer data SMS. Dekoder terletak di sini.

Tidak ada putusan yang diterima secara luas tentang apakah jawaban untuk pertanyaan keluaran tetap yang tidak ditulis dalam bahasa pemrograman diperbolehkan. Lihat posting meta ini untuk informasi lebih lanjut. (Saya minta maaf, saya salah membaca posting itu sebelumnya.)

isaacg
sumber
2
Selamat! Anda adalah satu-satunya orang yang saya lihat memampatkan string lebih lama dari kode yang disertakan! : D
ASCIIThenANSI
@ ASCIIThenANSI Mengompresi string ke dalam program yang lebih pendek itu mudah. Program Python print('A'*100)mencetak string 100 A-an. Mengompresi string acak yang efektif tidaklah mudah.
Hobi Calvin
6
@ CalvinHobbies Ini akan lebih mudah jika kita semua baru saja memulai semua kode kita dengan huruf 'p'. : D
ASCIIThenANSI
4
-1 Saya seharusnya melihat ini lebih cepat ... Ini sepertinya dikodekan salah. Sepertinya Anda mulai dengan sedikit padding, tetapi dari apa yang saya tahu dari format (dan jawaban ini sudah memperluas definisi format, karena paket ASCII 7-bit tidak benar-benar digunakan di mana saja), data harus empuk pada akhirnya, bukan awal. Dan bahkan dengan padding, saya pikir sisanya tidak dikodekan dengan benar.
Runer112
1
Seharusnya "áï <SO><DC4>8¨¶7z {rP¶".
LegionMammal978
25

Elemen, 80 byte

programs do many fun things, like print the letters p`, p`, u`, and p` in a row.

Ini adalah bahasa yang saya buat lebih dari tiga tahun yang lalu. Anda dapat menemukan penerjemah, yang ditulis dalam Perl, di sini . The `Operator mencetak hal atas pada stack (huruf). Tanda baca lainnya memang berfungsi, seperti penggabungan, tetapi hasilnya tidak pernah dicetak.

PhiNotPi
sumber
1
Sangat pintar, tuan. Sangat pintar ...
ASCIIThenANSI
10

Klip , 20 byte

[M"ppuppPq([#fwSmdP"
bcsb1001
sumber
6
Saya pikir Anda adalah yang terakhir berdiri. Kecuali jika seseorang dapat mengkompres ppuppPq([#fwSmdP[dalam 15 byte DAN mengeluarkannya.
Sanchises
@sanchises Jika ada yang melakukannya, saya akan memberikan hadiah. Karena itu akan sangat baik.
ASCIIThenANSI
3
@sanchises Seandainya saja ada beberapa bahasa esoterik yang menghasilkan program dengan semua kemunculan pdiganti dengan pp. Maka solusi akan menjadi pupPq([#fwSmdP[.
bcsb1001
1
@ bcsb1001 Ya, saya memikirkan sesuatu seperti itu baru-baru ini; bahasa esoterik di mana setiap perintah adalah solusi tantangan yang menang di situs ini, dan menggunakan output dari perintah itu sebagai input untuk perintah berikutnya. Akan luar biasa jika seseorang bisa memprogram apa pun di dalamnya.
Sanchises
1
@sanchises Tapi apakah itu melanggar aturan jalan standar dengan pergi ke internet?
ASCIIThenANSI
5

Gangguan Umum, 65 byte

(print(map 'string #' code-char #(112 112 117 112 #x70 80 #x71)))
Geobit
sumber
112 terakhir harus diubah menjadi 80 (entah bagaimana).
LegionMammal978
12
Dengan jawaban ini, zaman kegelapan telah diantar masuk.
PhiNotPi
5

Gores, 45 byte

when green flag clicked
show
say[ppuppPq([#f]

Jumlah byte sesuai dengan representasi teks . Lihat meta .

Scimonster
sumber
Pekerjaan yang baik. Saya tidak pernah berpikir untuk menggunakan Scratch.
ASCIIThenANSI
4

Python 3, 95 byte

pre='public class f{public static void main(String[] a){System.out.print("");}}'
print(pre[0])
isaacg
sumber
4

Haskell, 35 byte

main = putStrLn "\&ppuppPq([#fwS\&"
pengguna19057
sumber
Apa yang dilakukan "\ &"?
Hjulle
4
@ Hjulle Ambil dua karakter. (Ini kode pelarian untuk string kosong.)
user19057
4

Sudah 24 jam sejak edit! Mari kita lakukan! : D

Java, Putaran 2, 100 byte

public class Bytes{public static void main(String[] args){System.out.print("ppuppPq([#fwSmdP[p");}}
LAMBANG
sumber
1
Bagaimana kalau menandai "Ronde 2" ini?
Claudiu
4

Babak 2: Ruby, 75 byte

"ppuppPq([#fwSmdP[ppnvos".chars.each do|character|;print character;end#4444

Saya pikir saya akan membuatnya sedikit lebih menantang dengan memulai jawaban saya dengan kutipan! >: D

LAMBANG
sumber
3

Java, 100 byte

public class f{public static void main(String[] a){System.out.print("");}}//createdbyEMBLEMasdfghjkl
LAMBANG
sumber
3

Mathematica, 75 byte

Print[StringJoin[First/@Characters/@{"publ","pre=","usin","p1 =","prog"}]];
LegionMammal978
sumber
3

F #, 60 byte

[<EntryPoint>]let main arg=System.Console.Write "ppuppPq(";0
LegionMammal978
sumber
3

Script F #, 40 byte

System.Console.Write "\u0070puppPq([#fw"

Ini memiliki tipe file sendiri ( .fsx), jadi saya cukup yakin bahwa itu dianggap sebagai bahasa.

LegionMammal978
sumber
1
Anda lupa 'w' dari Scratch.
ASCIIThenANSI
Saya pikir ini juga hilang 'f' dari jawaban javascript 50 byte.
user19057
Memperbaiki itu juga
LegionMammal978
3

Putaran 2: /// , 65 byte

\p/CodeGolfIsAwesome!/puppPq/CodeGolfIsAwesome!([#fwSmdP[ppnvos"R

Kupikir aku akan membumbui itu sedikit lebih banyak dengan backslash :)

rodolphito
sumber
2

C #, 90 byte

using System;namespace IAmAwesome{class Program{static void Main(){Console.Write("pp");}}}
LegionMammal978
sumber
2

Ruby, 70 byte

q = ["publ", "pre", "usi", "p1 ", "pro", "Pri"]
q.each{|s| print s[0]}
LAMBANG
sumber
Anda harus mengatur ulang ["publ", "pre", "usi", "p1 ", "pro", "Pri"].
LegionMammal978
2

C, 55 Bytes

#include<stdio.h>
int main(){return puts("ppuppPq([");}
pengguna19057
sumber
Itu harus diubah menjadi "ppuppPq([".
LegionMammal978
@ LegionMammal978 Terima kasih, sudah diperbaiki.
user19057
2

JavaScript, 50 byte

function foo() {console.log("ppuppPq([#");}
foo();
LAMBANG
sumber
SeharusnyappupPq([#
ASCIIThenANSI
3
@ ASCIIThenANSI Saya rasa tidak.
Scimonster
2

MATLAB, 30 byte

disp([112 112 'uppPq([#fwSm'])

Dengan baik menunjukkan bagaimana MATLAB lepas dengan tipe data.

Sanchises
sumber
2

Mathematica, 25 byte

Print["ppuppPq([#fwSmd"];
LegionMammal978
sumber
1
Saya punya solusi CJam 25-byte novel yang menyandikan string dengan cara yang tidak langsung. Sayangnya, sepertinya tidak akan pernah melihat cahaya hari. : - /
Runer112
@ Runer112 Anda dan semua sajak kecil Anda / Masih, saya punya jawaban ini ~ 20 detik sebelum 30-byte berdentang.
LegionMammal978
2

Babak 2: Gelombang, 70 byte

REM BATCHS
GOTO B
:C
ECHO ppuppPq([#fwSmdP[ppnvos"
GOTO A
:B
GOTO C
:A

Kutipan Anda sia-sia. D:>

Sunting: baru saja saya sadar bahwa saya menggunakan ukuran file alih-alih jumlah karakter, tidak yakin bagaimana cara menghitung byte: P

Sunting 2: Menambahkan komentar untuk mengisi byte. Jika Anda memeriksa jumlah byte pada mesin windows, anggap saja "REM BATCHS" hanya "REM", saya kira. : P

bloo
sumber
Saya menghitung byte dengan gedit; katanya jawaban Anda adalah 63. Jangan khawatir; Anda cukup dekat untuk mengisi celah dengan komentar.
EMBLEM
1
Ah, baiklah keren, saya hanya akan memberikan komentar di sana.
bloo
3
@EMBLEM Itu karena baris Windows baru \r\n. Ada 7 ekstra \rdi sana.
jimmy23013
2

Babak 2, Mathematica, 40 byte

Print@"ppuppPq([#fwSmdP[ppnvos\"R\\v(c'"

Yay halaman kedua!

LegionMammal978
sumber
Bukankah outputnya hilang c?
plannapus
1
@plannapus Itu, diperbaiki
LegionMammal978
2

Putaran 2, > <> , 45 byte

4 karakter komentar.

'c(v\R"sovnpp[PdmSwf#[(qPppupp'01.uwyz
ol?!;

String sekarang berisi keduanya "dan ', jadi> <> jawaban tidak bisa hanya mengelilinginya dengan baik (itulah cara saya menghindari setiap pelarian).

bcsb1001
sumber
2

Babak 2, Golfscript, 35 byte

"ppuppPq([#fwSmdP[ppnvos\"R\\v(c'P"

Tidak ada byte limbah. Mulai dengan penawaran lagi!

Claudiu
sumber
7-bit ASCII tidak akan bekerja di sini, itu hanya menciptakan 28 byte dan termasuk NUL tambahan
LegionMammal978
Seseorang yang lebih pintar daripada saya harus melakukannya .. mungkin ada beberapa bahasa yang dikodekan dalam 6 bit yang dapat dijalankan untuk menghasilkan output yang tepat ..
Claudiu
Tidak, 6 bit akan menghasilkan 24 byte, tetapi kita membutuhkan 30.
LegionMammal978
@ LegionMammal978: Benar, 24 byte, lalu 8 instruksi enam-bit untuk mencetaknya atau melakukan apa saja
Claudiu
1
Anda kehilangan apostrof dari 2 jawaban di belakang
14mRh4X0r
1

Python 3, 85 byte

p1 = 'publ'
p2 = 'pre'
p3 = 'usi'
def cprint():
  print(p1[0], p2[0], p3[0])
cprint()
ASCIIThenANSI
sumber
1

Putaran 2, C #, 95 byte

namespace Cool{class Program{static void Main(){System.Console.Write("ppuppPq([#fwSmdP[pp");}}}
LegionMammal978
sumber
Bagaimana kalau menandai "Ronde 2" ini?
Claudiu
1

Babak 2, skrip F #, 55 byte

(**)System.Console.Write(@"uppPq([#fwSmdP[ppnvos""R\v")

Lihat skrip F # saya sebelumnya, mengapa saya pikir ini bahasa yang valid.

LegionMammal978
sumber
1

Putaran 2, R, 50 byte

cat('ppuppPq([#fwSmdP[ppnvos\"R\\v(',file=stdout())
plannapus
sumber
1

Babak 2, Javascript, 60 byte

var _p = "p"; lansiran (_p.repeat (2) + "uppPq ([# fwSmdP [ppnvos \" R \\ ");
SuperJedi224
sumber
Saya pikir Anda __akan jatuh di bawah variabel yang tidak perlu. Coba ubah pmenjadi nama dua huruf dan buat string dengan tanda kutip ganda untuk menambahkan garis miring terbalik untuk kutipan tercetak. Itu harus mengkompensasi 3 karakter yang hilang dari menghapus __,.
LegionMammal978
1
Mereka tidak mengatakan untuk tidak menggunakannya. Mereka mengatakan untuk menggunakan paling banyak sepuluh byte dari mereka.
SuperJedi224
Ini berarti bahwa Anda dapat menggunakan variabel yang diperlukan hingga 10 byte, tetapi Anda tidak dapat menggunakan variabel yang tidak perlu sama sekali.
LegionMammal978
@Rainbolt Anda menafsirkannya sebagai "Anda tidak dapat menggunakan lebih dari 10 byte (komentar), (variabel yang tidak perlu), (mengisi program dengan spasi putih), atau (nama variabel) lebih dari 10 byte", tetapi karena referensi kedua, saya melihatnya sebagai "Anda tidak dapat menggunakan (lebih dari 10 byte komentar), (variabel yang tidak perlu), (mengisi program dengan spasi putih), atau (nama variabel lebih dari 10 byte)".
LegionMammal978
Saya telah memperbaiki ambiguitas. Dalam pertanyaan tersebut, var __dianulir (tidak digunakan dalam sisa program), tetapi penggantian nama pakan dapat diterima.
ASCIIThenANSI
1

Babak 2: Javascript, 90 byte

var p = "p"; lansiran (p + p + p + "u" + p + p + p.toUpperCase () + "q ([# fwSmd" + p.toUpperCase () + "[" + p + p + " n "); // hlm
SuperJedi224
sumber
Bagaimana kalau menandai "Ronde 2" ini?
Claudiu
Itu __,akan jatuh di bawah variabel yang tidak perlu .
LegionMammal978