พิมพ์ตัวอักษรตัวแรกของคำตอบก่อนหน้า


17

ผู้ชนะได้รับการยอมรับเป็น isaacg กับเขาคำตอบ ASCII 7 บิต อย่างไรก็ตามความท้าทายยังไม่จบ - รางวัลนี้มอบให้กับคำตอบที่สั้นที่สุด ถ้าอย่างใดคุณจะได้รับอักขระแรกของคำตอบอื่น ๆ ทั้งหมดลงไป 10 ไบต์คุณจะได้รับรางวัล ซึ่งรวมถึงตัวละครทั้งหมดจากคำตอบ GolfScript ของ Round 2 (รวมถึงคำตอบที่เพิ่มเข้ามาด้วย) นี่เป็นครั้งเดียวที่ฉันจะให้คุณออกคำสั่ง - หากคุณมีการคัดค้านใด ๆ นี้แจ้งให้เราทราบในความคิดเห็น

ฉันต้องการให้เครดิตกับ randomra ซึ่งช่วยฉันด้วยความคิดเก่าของฉันและมอบสิ่งใหม่ให้ฉัน

ผู้ชนะก่อนหน้า

  • รอบที่ 1: isaacg กับ ASCII 7 บิต
    Next bytes: 30 (or 10 if you want that sweet, sweet rep)
    คุณรู้ไหมว่าการตีกอล์ฟเป็นสิ่งที่ยอดเยี่ยมจริงๆ ผู้คนท้าทายและช้าลงเรื่อย ๆ ! แต่ลองทำอีกวิธีกัน ดังนั้นนี่คือความท้าทายของฉัน:

  • รหัสจะพิมพ์ตัวอักษรตัวแรกของคำตอบก่อนหน้าทั้งหมดตามลำดับที่โพสต์ไว้ (คำตอบแรกไม่มีอะไรพิมพ์)

  • รหัสเริ่มต้นที่ 100 ไบต์และลดลง 5 ในแต่ละครั้ง
  • หากโพสต์สองคำตอบเดียวกัน (นั่นคือโพสต์เหล่านั้นโพสต์ภายในไม่กี่วินาทีของกันและกัน) โพสต์ใหม่จะต้องเพิ่มตัวละครเก่าและลดลง 5 ไบต์ (แม้ในไม่กี่วินาที)
  • สามารถใช้ภาษาใดก็ได้
  • รหัสของคุณจะต้องไม่เกิดข้อผิดพลาดใด ๆ
  • รหัสของคุณต้องใช้ไบต์ทั้งหมดที่จำเป็นสำหรับขั้นตอนแรก
  • รหัสของคุณจะต้องพิมพ์ไปที่ STDOUT
  • อักขระที่พิมพ์ไม่ได้นั้นใช้ได้ แต่:
    • พวกเขาไม่สามารถเป็นตัวละครแรก (เพื่อจุดประสงค์ของคำถามนี้)
    • คุณต้องให้ทุกคนรู้ว่าพวกเขาอยู่ที่ไหน
  • คุณสามารถโพสต์ได้หลายคำตอบ แต่:
    • คุณต้องรอ 2 คำตอบก่อนโพสต์อื่น (ดังนั้นหากคุณโพสต์ 100 ไบต์คุณต้องรอจนถึง 85 ไบต์)
  • คุณไม่สามารถ:
    • ใช้ความคิดเห็นมากกว่า 10 ไบต์
    • มีตัวแปรที่ไม่ได้ใช้งานสำหรับโปรแกรมทั้งหมด
    • เติมโปรแกรมด้วยช่องว่าง
    • มีชื่อตัวแปรยาวกว่า 10 ไบต์ (แต่คุณสามารถมีตัวแปรน้อยกว่า 10 ไบต์ได้หลายรายการ)
      (คำตอบแรกของ EMBLEM เป็นข้อยกเว้นสำหรับกฎเหล่านี้เนื่องจากโพสต์ก่อนข้อ จำกัด เหล่านี้)
  • ไม่มีช่องโหว่มาตรฐาน นอกเสียจากว่าคุณต้องการที่จะขจัดความสนุกออกไปจากความท้าทาย
  • เมื่อไม่มีการส่งคำตอบเพิ่มเติมเป็นเวลา 3 สัปดาห์คำตอบที่ใช้ไบต์ที่น้อยที่สุดจะชนะ (ในกรณีที่มีเน็คไทผู้ที่พิมพ์สตริงที่ยาวกว่าจะชนะ)

ตัวอย่าง: คำตอบที่สามจะต้องเป็นโค้ดขนาดยาว 90 ไบต์ที่ส่งออกมาสองตัวอักษร (อักขระตัวแรกของรหัสขนาด 100 ไบต์จากนั้นจะเป็นตัวอักษรตัวแรกของรหัส 95 ไบต์) คำตอบแรกไม่มีผลลัพธ์ (ไม่มีคำตอบก่อนหน้านี้เพื่อรับตัวอักษร)


"ช่องว่างที่ไม่จำเป็น" เป็นถ้อยคำที่ไม่ดี ช่องว่างของ Python เพื่อสิ้นสุดข้อความไม่จำเป็นเพราะคุณสามารถใช้เครื่องหมายอัฒภาคได้
EMBLEM

8
บางทีเราสามารถเริ่มต้นที่ 100 ไบต์อีกครั้ง แต่เริ่มต้นด้วยppuppPq([#fwSmdP[สตริงเริ่มต้นและเริ่มใหม่ทุกครั้งที่สตริงยาวกว่าจำนวนไบต์ที่อนุญาต แต่ฉันก็ไม่สามารถคิดถึงเกณฑ์ที่ชนะได้
Sanchises

1
@Scimonster คุณสุจริตคิดว่ามีชุดตัวอักษร 4 บิตที่มีทั้งหมดของ#(PS[dfmpquw? เรากำลังทำงานในขอบเขตความหนาแน่นของข้อมูลที่นี่ ถ้าคุณไม่เขียนโปรแกรมขนาด 10 ไบต์ที่ประมวลผลคำตอบก่อนหน้านี้ทั้งหมด ไม่แน่ใจว่ามันคุ้มค่าที่จะรอ
Sanchises

2
@sanchises เราไม่ได้บอกว่ามี เราให้โอกาสผู้คนได้เห็นว่าพวกเขาสามารถทำอะไรได้บ้าง หากไม่มีใครสามารถทำได้เราจะเริ่มต้นใหม่
ASCIIThenANSI

6
-1 ทำไมความท้าทายนี้ถึงไม่ตายอย่างมีศักดิ์ศรีหลังจากสารละลาย 15 ไบต์? ดูเหมือนว่าไม่สมควรที่จะเปลี่ยนแปลงหลังจากได้รับคำตอบที่ดีคำตอบ "ชนะ" เพียงเพื่อให้คุณสามารถเล่นตามกฎต่างๆ
Geobits

คำตอบ:


34

ASCII 7 บิต 15 ไบต์

อัปเดต: ฉันไม่ได้ตระหนักว่าการเติมเต็มควรเกิดขึ้นในตอนท้าย

รุ่นที่ถูกต้องเบาะท้าย:

hexdump (xxd):

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

งานพิมพ์ (ไม่แน่ใจว่าถูกต้อง):

�ï8��z{rP�

áï8¨¶7z{rP¶

รุ่นเก่าเบาะด้านหน้าไม่ถูกต้อง:

pá×
T[G½=¹([

ภาษา / รูปแบบที่นี่คือ 7-bit ascii โดยที่แต่ละกลุ่มของ 7 บิตสอดคล้องกับอักขระ ASCII มันถูกใช้ในการถ่ายโอนข้อมูล SMS ตัวถอดรหัสอยู่ที่นี่

ไม่มีคำตัดสินที่ยอมรับกันอย่างกว้างขวางว่าจะสามารถตอบคำถามเอาท์พุทแบบคงที่ซึ่งไม่ได้เขียนด้วยภาษาโปรแกรมได้หรือไม่ ดูโพสต์เมตานี้สำหรับข้อมูลเพิ่มเติม (ฉันขอโทษฉันอ่านผิดโพสต์นั้นก่อนหน้านี้)


2
ขอแสดงความยินดี! คุณเป็นคนเดียวที่ฉันเห็นการบีบอัดสตริงยาวกว่ารหัสที่รวมอยู่ใน! : D
ASCIIThenANSI

@ASCIIThenANSI การบีบอัดสตริงลงในโปรแกรมที่สั้นกว่านั้นง่าย โปรแกรมหลามprint('A'*100)พิมพ์สตริงของ 100 A's การบีบอัดสตริงสุ่มอย่างมีประสิทธิภาพไม่ใช่เรื่องง่าย
งานอดิเรกของ Calvin

6
@ Calvin'sHobbies สิ่งนี้จะง่ายกว่านี้ถ้าเราเพิ่งเริ่มรหัสทั้งหมดด้วยตัวอักษร 'p' : D
ASCIIThenANSI

4
-1 ฉันน่าจะเห็นสิ่งนี้เร็วกว่านี้ ... ดูเหมือนว่าจะเข้ารหัสไม่ถูกต้อง ดูเหมือนว่าคุณเริ่มต้นด้วยการเติมเล็กน้อย แต่จากสิ่งที่ฉันสามารถบอกได้จากรูปแบบ (และคำตอบนี้ขยายความหมายของรูปแบบไปแล้วเนื่องจาก ASCII ขนาด 7 บิตไม่ได้ใช้จริงทุกที่) ข้อมูลควร มีเบาะในตอนท้ายไม่ใช่เริ่มต้น และถึงแม้จะมีการเติมฉันคิดว่าส่วนที่เหลือไม่ได้เข้ารหัสอย่างถูกต้อง
Runer112

1
มันควรจะเป็น " <SO><DC4>¯Ã¯8¯7z {rP¶"
LegionMammal978

25

องค์ประกอบ 80 ไบต์

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

นี่คือภาษาที่ฉันสร้างขึ้นเมื่อสามปีก่อน คุณสามารถค้นหาล่ามเขียนใน Perl, ที่นี่ `ประกอบการพิมพ์สิ่งบนสแต็ค (ตัวอักษร) เครื่องหมายวรรคตอนอื่นทำสิ่งต่าง ๆ เช่นเรียงต่อกัน แต่ผลลัพธ์จะไม่ถูกพิมพ์ออกมา


1
ฉลาดมาก ๆ ฉลาดมาก ...
ASCIIThenANSI

10

คลิป , 20 ไบต์

[M"ppuppPq([#fwSmdP"

6
ฉันคิดว่าคุณเป็นคนสุดท้ายที่ยืน ถ้าไม่มีใครสามารถบีบอัดppuppPq([#fwSmdP[ใน 15 ไบต์และเอาท์พุทมัน
Sanchises

@sanchises ถ้าใครทำฉันจะได้รับรางวัล เพราะมันจะดีแค่นั้น
ASCIIThenANSI

3
@sanchises ถ้าเพียง แต่มีบางภาษาลึกลับซึ่งเอาท์พุทโปรแกรมที่มีเกิดขึ้นทุกแทนที่ด้วยp ppแล้วทางออกก็pupPq([#fwSmdP[คือ
bcsb1001

1
@ bcsb1001 ใช่ฉันคิดเรื่องแบบนี้เมื่อเร็ว ๆ นี้; ภาษาลึกลับที่แต่ละคำสั่งเป็นทางออกที่ท้าทายสำหรับเว็บไซต์นี้และใช้ผลลัพธ์ของคำสั่งนั้นเป็นอินพุตสำหรับคำสั่งถัดไป มันจะยอดเยี่ยมถ้ามีใครสามารถเขียนโปรแกรมอะไรในนั้น
Sanchises

1
@sanchises แต่นั่นจะทำลายกฎช่องโหว่มาตรฐานโดยไปที่อินเทอร์เน็ตหรือไม่
ASCIIThenANSI

5

Lisp ทั่วไป, 65 ไบต์

(print(map 'string #' code-char #(112 112 117 112 #x70 80 #x71)))

112 สุดท้ายควรเปลี่ยนเป็น 80 (อย่างใด)
LegionMammal978

12
ด้วยคำตอบนี้อายุของความมืดได้ถูกนำเข้ามาแล้ว
PhiNotPi

5

รอยขีดข่วน 45 ไบต์

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

นับไบต์ตามการแสดงข้อความ ดูเมตา


งานที่ดี. ฉันไม่เคยคิดที่จะใช้ Scratch
ASCIIThenANSI



4

เป็นเวลา 24 ชั่วโมงนับตั้งแต่การแก้ไข! ลงมือทำกันเถอะ! : D

Java, รอบที่ 2, 100 ไบต์

public class Bytes{public static void main(String[] args){System.out.print("ppuppPq([#fwSmdP[p");}}

1
วิธีการเกี่ยวกับการทำเครื่องหมาย "รอบที่ 2" นี้?
Claudiu

4

รอบ 2: ทับทิม 75 ไบต์

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

ฉันคิดว่าฉันจะทำให้มันมีความท้าทายเพิ่มขึ้นอีกนิดโดยเริ่มคำตอบด้วยคำพูด! >: D





3

F # script, 40 ไบต์

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

มันมีประเภทไฟล์ของตัวเอง ( .fsx) ดังนั้นฉันค่อนข้างแน่ใจว่ามันจะนับเป็นภาษา


1
คุณลืม 'w' จาก Scratch
ASCIIThenANSI

ฉันคิดว่านี่ยังขาด 'f' จากคำตอบจาวาสคริปต์ 50 ไบต์
user19057

แก้ไขได้เช่นกัน
LegionMammal978

3

รอบ 2: /// , 65 ไบต์

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

คิดว่าฉันจะทำให้มันเพิ่มขึ้นอีกเล็กน้อยด้วยแบ็กสแลช :)






2

MATLAB 30 ไบต์

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

แสดงให้เห็นว่า MATLAB มีความสัมพันธ์กับประเภทข้อมูลอย่างไร


2

Mathematica ขนาด 25 ไบต์

Print["ppuppPq([#fwSmd"];

1
ฉันมีวิธีแก้ปัญหา CJam ขนาด 25 ไบต์ที่เข้ารหัสสตริงในลักษณะที่ไม่ตรงไปตรงมา โชคไม่ดีที่ดูเหมือนว่ามันจะไม่มีวันได้เห็นแสงสว่าง : - /
Runer112

@ Runer112 คุณกับบทกวีเล็ก ๆ ของคุณทั้งหมด / ยังฉันมีคำตอบนี้ ~ 20 วินาทีก่อน 30-byte หนึ่ง chimed
LegionMammal978

2

รอบ 2: แบทช์ 70 ไบต์

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

คำพูดของคุณไร้ประโยชน์ D:>

แก้ไข: เพิ่งเกิดขึ้นกับฉันที่ฉันไปตามขนาดไฟล์แทนที่จะนับตัวอักษรไม่แน่ใจว่าจะนับจำนวนไบต์ได้อย่างไร: P

แก้ไข 2: เพิ่มความคิดเห็นเพื่อเติมไบต์ หากคุณตรวจสอบจำนวนไบต์บนเครื่องที่ใช้ Windows เพียงแค่เสแสร้งว่า "REM BATCHS" เป็นเพียง "REM" ฉันเดา : P


ฉันนับไบต์ด้วย gedit มันบอกว่าคำตอบของคุณคือ 63 ไม่ต้องกังวล คุณอยู่ใกล้พอที่จะเติมเต็มช่องว่างด้วยความคิดเห็น
EMBLEM

1
อ่าไม่เป็นไรฉันจะแสดงความคิดเห็นในนั้น
bloo

3
@EMBLEM มันเป็นเพราะการขึ้นบรรทัดใหม่ Windows \r\nเป็น มี 7 พิเศษ\rมี
jimmy23013


2

รอบ 2, > <> , 45 ไบต์

4 ตัวอักษรของความคิดเห็น

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

ตอนนี้สตริงมีทั้งคู่"และ'ดังนั้น> <> คำตอบไม่สามารถล้อมรอบมันได้อีกต่อไป (นั่นคือวิธีที่ฉันหลีกเลี่ยงการหลบหนี)


2

รอบ 2, Golfscript, 35 ไบต์

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

ไม่มีไบต์ที่เสีย เริ่มต้นด้วยคำพูดอีกครั้ง!


7-bit ASCII won't work here, it only creates 28 bytes and includes an extra NUL
LegionMammal978

ใครบางคนฉลาดกว่าที่ฉันจะต้องทำมัน .. อาจจะมีบางภาษาเข้ารหัสใน 6 บิตซึ่งสามารถเรียกใช้ในการผลิตการส่งออกที่เหมาะสม ..
Claudiu

ไม่ 6 บิตจะสร้าง 24 ไบต์ แต่เราต้องการ 30
LegionMammal978

@ LegionMammal978: ถูกต้อง, 24 ไบต์, จากนั้น 8 คำแนะนำหกบิตในการพิมพ์หรือทำสิ่งใดก็ตาม
Claudiu

1
คุณไม่มีเครื่องหมายอะโพสโทรฟีจาก 2 คำตอบกลับ
14mRh4X0r





1

Round 2, Javascript, 60 bytes

var _p="p";alert(_p.repeat(2)+"uppPq([#fwSmdP[ppnvos\"R\\");

I think that your __ would fall under unnecessary variables. Try changing p to a two-letter name and make the string double-quoted to add a backslash for the printed quote. That should compensate for the 3 chars you lost from removing the __,.
LegionMammal978

1
They didn't say not to use them. They said to use at most ten bytes of them.
SuperJedi224

It meant that you can use necessary variables of up to 10 bytes, but you can't use unnecessary variables altogether.
LegionMammal978

@Rainbolt You're interpreting it as "You can't use more than 10 bytes of (comments), (unnecessary variables), (filling the program with whitespace), or (variable names) longer than 10 bytes", but because of the second reference, I see it as "You can't use (more than 10 bytes of comments), (unnecessary variables), (filling the program with whitespace), or (variable names longer than 10 bytes)".
LegionMammal978

I've fixed the ambiguity. In the question, var __ is disallowed (not being used in the rest of the program), but renaming p would be acceptable.
ASCIIThenANSI

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.