The Complement Cat

24

4

Objective Write a full program that outputs (to STDOUT or closest alternative) an arbitrary string of text, no more than 64 characters long. Simple enough, right? Well, here's the catch: You may not use any characters that were present in the previous answer's output. That's right, none of them.

Thus, you are trying to be the last answer for a total of three days. That is, you want no one to answer the question in the 72 hours following the posting of your question.

Some rules

  • Your answer (and output) may only contain printable ASCII characters, newlines (carriage returns included), and tabs.
  • Your answer's output may not be the same as another answer's output. Two output's are the same if and only if they use the exact same characters.
  • You may use any language that was not specifically made for this challenge, even if it was made after the challenge. (This language, of course, must be testable.)
  • You may not use any language that was previously used.
  • Your entry may not include comments. You may, of course, provide an extra commented program.
  • You may not answer twice in a row.
  • Your program must be at least 1 byte.

Entry format

Your answer should look generally like the following:

# {Language}
Uses: `characters present in the output`

Does not use: `characters used in the previous output` from [previous submission, language](link-to-previous-submission]

    {program}

Outputs:

    {output}

An explanation with your answer is appreciated.

Conor O'Brien

Posted 2015-12-21T19:52:45.990

Reputation: 36 228

@CᴏɴᴏʀO'Bʀɪᴇɴ And empty outputs? – jimmy23013 – 2015-12-21T21:09:05.003

@jimmy23013 It isn't advised, but yeah, they're allowed. – Conor O'Brien – 2015-12-21T21:10:37.603

As exiting with an error is usually allowed, this makes it impossible to win unless we run out of interpreted languages.

– jimmy23013 – 2015-12-21T21:17:48.083

3I'm wildly confused about what is being asked. I have to print any <=64 char string, and I can't use the characters in the latest submission's output? – Lynn – 2015-12-21T21:36:25.387

(Also, a leaderboard that keeps track of used languages alphabetically would be cool.) – Lynn – 2015-12-21T21:38:05.377

1@Mauris Yes, that is correct. – Conor O'Brien – 2015-12-21T21:39:16.480

3Ah, okay; the bit about "character space" is really confusing IMO. That term doesn't mean anything... Maybe you should rewrite it? – Lynn – 2015-12-21T21:40:13.747

@Mauris I define it. – Conor O'Brien – 2015-12-21T21:41:06.360

@CᴏɴᴏʀO'Bʀɪᴇɴ, character space == "The exact same characters as the last submission, in any order"? – Stewie Griffin – 2015-12-21T21:49:24.327

@StewieGriffin The exact same characters as any previous submission in any order. – Conor O'Brien – 2015-12-21T21:50:05.827

"You may not use any characters that were present in the previous answer's output." Do you mean you can't use them in the source code, or they can't appear in the output? You tagged this [tag:restricted-source], so I'm guessing the former... – ThisSuitIsBlackNot – 2015-12-21T22:05:49.823

The former @ThisSuitIsBlackNot – Conor O'Brien – 2015-12-21T22:09:52.030

Could you add a snippet to generate a list of the languages that have been used? – SuperJedi224 – 2015-12-21T22:11:41.810

@SuperJedi224 Yeah, working on it – Conor O'Brien – 2015-12-21T22:45:29.740

This is really confusing - aside from the issue of "character space" mentioned above, why would this challenge, as stated, make you want to be the last person to answer (for any period of time)? – question_asker – 2015-12-22T18:21:34.863

1

@question_asker If nobody can come up with an answer to follow yours, you win the challenge (and get the green checkmark). For example, if I wrote a program that outputs every printable ASCII character, it would be impossible to follow (ignoring those annoying languages that generate output for the empty program).

– ThisSuitIsBlackNot – 2015-12-22T23:34:55.707

@ThisSuitIsBlackNot yeah, the idea of "winning" occurred to me after it was too late to make an edit. That said, I'm still confused as to whether it's the code, output, or both that is not to be duplicated, and whether it's all previous entries or just the previous entry. – question_asker – 2015-12-22T23:44:01.650

1@question_asker Your code cannot contain any of the characters from the previous answer's output; your output cannot use the same set of characters as any previous output. If the code for the first answer is foo and it outputs bar, the code for the next answer cannot contain b, a, or r; no subsequent answer can output abr, arb, bar, bra, rab, or rba. (Yes, I agree this was very confusing.) – ThisSuitIsBlackNot – 2015-12-22T23:54:00.453

I think it's been 72 hours since my entry. – Lynn – 2015-12-27T04:45:17.427

@Mauris and so it has! Congratulations! – Conor O'Brien – 2015-12-27T04:46:04.357

Answers

2

Ruby

$><<'ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789" '

Does not use abcdefghijklmnopqrstuvwxyz{}\~_^[]|` from the previous answer.

Prints, and hence uses, ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789", a space, and a newline.

Lynn

Posted 2015-12-21T19:52:45.990

Reputation: 55 648

5

Brainfuck

Uses: -.

Does not use: !"%&')+,0123456789<=>ABCDEFGHIJKLNOPRSTWXYZ]`acefghjlnoprstux{| from CJam. Thanks to SuperJedi

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.-------------------------------------------------------------------------------------------.-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------.

Outputs:

; (){}[]"'

Seadrus

Posted 2015-12-21T19:52:45.990

Reputation: 1 291

2This could be altered to only use - and .. That's my proposal for the purposes of the challenge. – SuperJedi224 – 2015-12-21T20:55:14.170

http://tinyurl.com/obzsvot – SuperJedi224 – 2015-12-21T22:09:49.510

2Sorry, I took the uses portion to mean that those were the entities used in the code. Gimme a goddamn minute before you start using downvotes. – Seadrus – 2015-12-21T23:15:00.540

5

Pyth

Uses: ()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg.

Doesn't use: !"#$%&'()*+,-./0123456789:;<=>?@[\]^_`abcdefghijklnsm{|}~ from previous submission in Octave.

Code:

pMCMryyTyyytytttT

Output:

()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg

Lynn

Posted 2015-12-21T19:52:45.990

Reputation: 55 648

Is there a space in there? I guess there aren't any tabs or newlines that aren't shown? It looks like the next answer must be a whitespace answer (or at least close)... – Stewie Griffin – 2015-12-22T11:44:04.947

No whitespace in the output that's mine; I don't know if the language appends a newline though – Lynn – 2015-12-22T11:46:09.783

3

CJam

Uses: 0123456789:;_bc

Does not use: !GSaefgimnoprstuw, from previous submission, MATLAB

183185535513294435547695067785526290427932963043839368372854060721693597139131275368051870173845056551161192991350318233082749156998652_;128b:c

Outputs:

 !"%&')+,0123456789<=>ABCDEFGHIJKLNOPRSTWXYZ]`acefghjlnoprstux{|

jimmy23013

Posted 2015-12-21T19:52:45.990

Reputation: 34 042

Well, I can't beat this. – Mutador – 2015-12-21T20:27:27.267

3

Octave

Uses: !"#$%&'()*+,-./0123456789:;<=>?@[\]^_``abcdefghijklnsm{|}~ and a newline in the output.

Doesn't use: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789" from previous submission in Microscript.

Code:

[' ':'@','[':'`','{':'~',('@'+' '):('>'+'/')]

Output:

ans =
 !"#$%&'()*+,-./0123456789:;<=>?@[\]^_`{|}~`abcdefghijklm

Explanation:

This is a collection of consecutive ASCII-characters. The code is equivalent to:

[char(32:64) char(91:96) char(123:126) char(96:109)]

Where char(32:64) are the ASCII characters from 32 to 64 (space to @). In order to get the alphabet-part in the end of the output, I had to add characters, as I couldn't use a and m. @+ equals 96 (``) and >+/ equals 109 (m)

Stewie Griffin

Posted 2015-12-21T19:52:45.990

Reputation: 43 471

How does this work? – Conor O'Brien – 2015-12-21T21:13:19.100

@CᴏɴᴏʀO'Bʀɪᴇɴ, explanation included =) – Stewie Griffin – 2015-12-21T21:21:34.723

3

Perl

Uses: 0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz} (with space)

Does not use: "#$%'()*+,-./123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|~ from previous submission in Unreadable

eval q!print uc q&} abcdefghijklmnopqrstuvwxyz&!and eval q}print q&0abcdefghijklmnopqrstuvwxyz&}and eval q&print length for qw!a bc def ghij klmno pqrstu vwxyzab cdefghij klmnopqrs!&

Outputs:

} ABCDEFGHIJKLMNOPQRSTUVWXYZ0abcdefghijklmnopqrstuvwxyz123456789

…the old joke about monkeys writing code comes to mind…

You can run the program online.

This program abuses the weird features of Perl to write code in just about any subset of ASCII:

  • Functions can be called without parentheses in some cases (unsure about exact rules)
  • q#text# where # can be almost any character is the same as "text"
  • qw#word1 word2 word3# like the above is the same as ["word1", "word2", "word3"]
  • for loops and other things can be appended to lines, eliminating any punctuation

PurkkaKoodari

Posted 2015-12-21T19:52:45.990

Reputation: 16 699

3

Javascript ES6

Previous answer: https://codegolf.stackexchange.com/a/67406/39022

Source does not contain !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ, space, or newline.

alert`abcdefghijklmnopqrstuvwxyz{}\\~_^[]|\``

Output:

abcdefghijklmnopqrstuvwxyz{}\~_^[]|`

(Lowercase alphabet, curly brackets, backslash, tilde, underscore, carat, square brackets, pipe, and backtick)

SuperJedi224

Posted 2015-12-21T19:52:45.990

Reputation: 11 342

I believe you mean backslash instead of forward slash. But nice entry! – ETHproductions – 2015-12-22T19:00:42.587

@ETHproductions You're right about the backslash. – SuperJedi224 – 2015-12-22T19:04:20.087

2

Python 3

Uses: !CGaceilmnoprstw z.

print("Germanic Capitalization is awesome!")

Simply prints Germanic Capitalization is awesome! with no restrictions. Good luck!

Conor O'Brien

Posted 2015-12-21T19:52:45.990

Reputation: 36 228

2

MATLAB

Uses: !GSaefgimnoprstuw and newline.

Does not use: !CGaceilmnoprstw z from previous submission, Python 3.

[83,116,101,119,105,101,32,71,114,105,102,102,105,110,32,105,115,32,97,32,112,114,111,109,105,110,101,110,116,32,103,101,110,105,111,117,115,33,'']

Prints:

ans =

Stewie Griffin is a prominent genious!

Stewie Griffin

Posted 2015-12-21T19:52:45.990

Reputation: 43 471

2

Microscript II

Previous answer: here. Program does not use semicolon, space, parentheses, curly brackets, square brackets, single straight quotes, or double straight quotes. This program would be a lot shorter if it didn't have to avoid quotes.

Output includes: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789", and a newline.

Program:

97Kp98Kp99Kp100Kp101Kp102Kp103Kp104Kp105Kp106Kp107Kp108Kp109Kp110Kp111Kp112Kp113Kp114Kp115Kp116Kp117Kp118Kp119Kp120Kp121Kp122Kp""P65Kp66Kp67Kp68Kp69Kp70Kp71Kp72Kp73Kp74Kp75Kp76Kp77Kp78Kp79Kp80Kp81Kp82Kp83Kp84Kp85Kp86Kp87Kp88Kp89Kp90Kp123456789qh

Exact output:

abcdefghijklmnopqrstuvwxyz
ABCDEFGHIJKLMNOPQRSTUVWXYZ"123456789"

SuperJedi224

Posted 2015-12-21T19:52:45.990

Reputation: 11 342

1And the Does not incude bit. – Conor O'Brien – 2015-12-21T20:41:18.910

2

Unreadable

Uses: "#$%'()*+,-./123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|~

Does not use: ()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefg from previous submission in Pyth

'"'""'""'"'""'"'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'"'""'""'"'""'"'""'"'""'"'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'""'"""

Outputs:

"#$%'()*+,-./123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`{|~

In case you are wondering, yes, programming by hand in this language is painful, so I made this script (in JavaScript) to generate the code:

var program = `"`,
    output = "\"#$%'()*+,-./123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`{|~";
for(var i = 1, c = 0; c < output.length; i++) {
  program = `'""` + program;
  if(i == output.charCodeAt(c)) {
    program = `'"` + program;
    c++;
  }
}
program;

I used the Python interpreter for Unreadable here to run the code.

user81655

Posted 2015-12-21T19:52:45.990

Reputation: 10 181

Having a space in there would make life hard for the next one =) – Stewie Griffin – 2015-12-22T12:54:29.210

@StewieGriffin That's true. Is it too late to edit? xD TBH though, I think this challenge can go on for a lot longer because there's many languages which have pre-set variables in either upper or lower-case letters, so just the one character would be a valid answer. (Even though it wouldn't be too interesting and makes it very easy for the next answer!) – user81655 – 2015-12-22T13:10:39.957

1I think it's too late now. Someone might be working on a solution in for instance whitespace, and suddenly adding a space in the output will probably make them annoyed. – Stewie Griffin – 2015-12-22T13:14:48.360

@StewieGriffin Yeah, that was my reasoning too. – user81655 – 2015-12-22T13:15:13.097

1

GolfScript

Uses: space, newline, !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ.

Doesn't use 0-9A-Za-z{ or space from previous submission in Perl.

The code:

'!'.!=('['.!=,>''+

The output:

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ

And a trailing newline.

Try it here.

Lynn

Posted 2015-12-21T19:52:45.990

Reputation: 55 648