Eh, mixed up n^2 and 2^n, and I wasn't sure if Excel had ^. That's what happens when you try to do math at 4 AM... Thanks, @Emigna. — Dennis ♦8 hours ago
@Downgoat I explicitly allowed it now, I originally had disallowed functions because the goal was high scores, and golfing could be trivial to just remove boiler plate to make a full program, but I decided to open it up.
@RohanJhunjhunwala Allowing function to return a newline-separated string, but not a list seems a bit weird. To clarify: Requiring full programs might make sense for this challenge, but you must say that full programs are required in that case.
@RohanJhunjhunwala If you allow functions and full programs, can Alice golf Bob's code down from a full program to a function, or does it have to stay a full program if it started that way?
In other news I forgot how bad Python's pickle is when it comes down to objects. If the class isn't in the namespace in the exact same way as it was relative to the originating module it throws an error when unpickling
@Dennis I;m voting to reopen let me know if there is more clarification needed. I apologize for the confusion,a nd I will be more patient in the sandbox from now on
@RohanJhunjhunwala I think the reference to "losing" bytes could be confusing, and is a longer explanation than simply saying only the shortest code in a given language contributes to your score.
@Downgoat I suspect your objection fuels them. I never get turtle soup jokes...
@RohanJhunjhunwala They must not be derived from another language (brainfuck versus Alphfuck) is a bit unclear. Does that mean I can crack a brainfuck answer with Sesos? Probably not...
@Dennis it means that you can not post another submission in language X if another language has already been posted, and X is a trivial derivative of X. Sesos would not necessarily be a trivial derivative of bf
@Dennis perhaps I can replace that section with some clause that tries to have people avoid posting trivial variations on other languages. For example, we don't really need one answer from every trivial bf derivative
if we have a bf answer we don't really need an OOK! answer
@RohanJhunjhunwala I like that rule, but it means you should probably insist that each answer specifies a version number. Otherwise people will post "Python", and it will be open to being cracked by either Python 2 or 3 since they didn't specify
A Fragile Quine
quine code-challenge
An N-fragile quine is a quine such that all programs resulting from removing any N characters from the source code error.
You will make an N-fragile quine for any N-value of your choosing, however, higher N-values will give you a better score. To elaborate,...
@Dennis Ah good point. I guess specifying exact version number including minor release might be best then @RohanJhunjhunwala but then does that mean there can be no entry in python 2.2, 2.3, 2.4,... once an answer arrives using python 3.6?
@RohanJhunjhunwala Strongly advising means squat. If the score or the validity of a crack depends on it, it must be clarified. The meta consensus is that every challenge has to define it itself.
@RohanJhunjhunwala For your scoring method, not really. Allowing answers in all *fuck languages should not be allowed, but it's non-trivial to come up with a rule that is both clear and disallows these.
The problem is that not only is specifying each language individually going to be tedious, but it will likely invite complaints about fairness since different people see things differently
@feersum The difference with this challenge is that there won't be a solution in each language for each competitor, since the goal is to post something which prevents any other competitor from using that language. Still cluttered, but I think not as bad
@feersum I do fear it being spoiled by someone posting golfed code instead of bowled code, and winning by default with a much lower sum score than the competition invites
bit of a silly question, do you guys have a special way of remembering that it's [text](link) and not (text)[link] ? i'm thinking of remembering it in terms of omitting parentheticals in english sentences, but maybe there's a more natural way
@Dennis I think perhaps this as a rule. You must crack a program in the same language and version, but you may not submit an answer in Language X if there is already a solution in a language Y such that all programs in language Y can be translated to language X by a program that is less than 50 bytes long? It seems arbitrary, but it could work?
@MitchSchwartz If it helps, the () is optional in posts on main. You can just write [text] and then put [text]: URL at the bottom of the post. Remembering that functionality helps me remember than the [] is the essential bit
@MitchSchwartz Another way is that they are not in ASCII order, but that's a bit awkward to remember
@MitchSchwartz I always used [arbitrary text][1] and then [1]: URL at the bottom, until I saw somewhere that you can just use the text without the number. I like it that way for editing later, as you can see from the list of links at the bottom what each one is described as
@trichoplax a derivative is a language that is extraordinarily similar to a language and "derives" its syntax almost entirely from its "parent" language
@RohanJhunjhunwala I share @feersum's concerns about someone posting in all the languages up front with minimal effort, leaving no fun for anyone else. Would it help to have a rule restricting a person from posting a second answer until a certain time later, or until a certain number of other answers have come in from other people?
Seriously. Subjective community consensus works perfectly fine for “are these challenges too similar”, because the system actually lets us vote for it. If we had the same for Brainfuck derivatives and Python-with-shorter-builtin-names kinda crap, we’d be set! …Maybe.
@RohanJhunjhunwala I'm not so worried about cracks - they should take longer to come up with. But I'm wondering whether a restriction on initial answers would help, giving more time to people who will post genuinely long code, so someone who just posts short code can only spoil a limited number of languages.
@HelkaHomba I love building PC's, so the answer is pretty obvious. I'd do like overclocked sli titan x's with dual cpus, and several 4k monitors. drools
@RohanJhunjhunwala It only takes 5 reopen votes, and 4 have been cast already, so anyone (mod or not) can cast the last one now. I'm not casting it myself because it still seems like there are outstanding things to fine tune
@RohanJhunjhunwala The problem with "ping me for clarification" is that some people won't think clarification is needed (they assume their interpretation is the only one and only find out later someone else had another interpretation). So no one will know whether their assumptions are correct but some will post anyway, not realising they have made an assumption
@RohanJhunjhunwala Unless you have a clearly defined rule then it's just saying something that cannot be enforced, so I guess it's better to leave it out
Y is a derivative of language X iff Y is a language such that for every command in language Y there exists one string replacement to translate the language into x and vice versa.
I recommend accepting that you cannot define it objectively, and just either leave it open, or include a list of equivalence classes in the post. Only one language from each equivalence class can be used (whichever one is used first). Any language not mentioned in any equivalence class can be posted in a comment so that you can assign it to a (possibly new) equivalence class and edit the post
Cops section
The robbers section can be found here.
Thanks to FryAmTheEggman, Peter Taylor, Nathan Merrill, xnor, Dennis, Laikoni and Mego for their contributions.
Challenge
Your task is to write 2 different programs (full programs/functions/etc.) in the same language and the same version (...
The two languages used must be distinctly different. In particular:
They must not be different versions of the same language (e.g. Python 2 vs. Python 3). They must not be different dialects of the same language (e.g. Pascal vs. Delphi). One language may not be a subset of the other one (e.g. C vs. C++).
Helka often says that you can just trust people to keep to the spirit of the challenge, which is usually true. I think as long as the rules are clear and unambiguous, little misunderstandings can be deleted and the challenge doesn't need to be perfectly defined
It's up to you how much to trust the competitors. You could just give a reasonable warning that solutions in a language you consider too similar to an existing solution will be disqualified at your discretion.
I will just add this warning "borrowed" from another rosetta-code Also, no shenanigans with basically the same answer in a slightly different language dialects. I will be the judge as to what submissions are different enough.
@Lynn I think there needs to be a compromise. I have a tendency to try and close every possible loophole when writing a challenge, which often turns out to be unnecessary. It can rarely be perfectly defined so it's about deciding how far to go. I really don't know where to draw the line with this one. The only way I can see to ensure there is no way around the rule is to have the list of equivalence classes I mentioned. Do you think that would be watertight enough?
@RohanJhunjhunwala I think it is as objective as you can get for this purpose. It seems fair for all the languages you manage to mention up front, but for the languages you miss you'll have to make a decision that wasn't known to the competitors at the start, which gets awkward
My personal preference is to make everything watertight, but I'm trying to consider how important it is in specific cases, and to judge how strict a given challenge needs to be
@RohanJhunjhunwala I'm a bit too tired to take in what I'm reading now, but I suspect there are things mentioned in the tl;dr that are not mentioned in the main body, which could be confusing. Is the time delay mentioned in the main body?
In a programming language of your choice, write 95 programs, each of which outputs a different one of the 95 printable ASCII characters without that character occurring anywhere in the program.
For example, if your language was Python, your program that outputs the character P might be
print(ch...