Communities

Writing
Writing
Codidact Meta
Codidact Meta
The Great Outdoors
The Great Outdoors
Photography & Video
Photography & Video
Scientific Speculation
Scientific Speculation
Cooking
Cooking
Electrical Engineering
Electrical Engineering
Judaism
Judaism
Languages & Linguistics
Languages & Linguistics
Software Development
Software Development
Mathematics
Mathematics
Christianity
Christianity
Code Golf
Code Golf
Music
Music
Physics
Physics
Linux Systems
Linux Systems
Power Users
Power Users
Tabletop RPGs
Tabletop RPGs
Community Proposals
Community Proposals
tag:snake search within a tag
answers:0 unanswered questions
user:xxxx search by author id
score:0.5 posts with 0.5+ score
"snake oil" exact phrase
votes:4 posts with 4+ votes
created:<1w created < 1 week ago
post_type:xxxx type of post
Search help
Notifications
Mark all as read See all your notifications »
Meta

Default Rules: Loopholes

+9
−0

What sort of loopholes are assumed to be disallowed in any challenge on this site?

One loophole per answer, please. Vote up answers if you want them disallowed, and down otherwise.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.
Why should this post be closed?

0 comment threads

13 answers

You are accessing this answer with a direct link, so it's being shown above all other answers regardless of its score. You can return to the normal view.

+2
−0

Sneakily using macros

In a code golf challenge, you are tasked to use as small bytes as possible. However, it's considered unacceptable in a language like C to use macros to hide code or shorten it without including the macro itself.

An example:

C (clang), 5 bytes

hello

Try it online!

In other words, it's a messy way to shorten code, and therefore, a challenge loophole.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

1 comment thread

This is already banned, I think, since any macros, functions, or variables you use have to be include... (2 comments)
+10
−0

Outsourcing the answer to unofficial conditions

An example would be a program to print the Fibonacci numbers: instead of actually computing them, it queries an API and gives back its output. Another example would be a program that executes a program in another file instead of computing the Fibonacci numbers itself.

Of course this is allowed if the challenge specifically permits it or if it could not function without it (e.g. Googling "google" and bringing the results back).

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

0 comment threads

+7
−0

Using the lack of features in a language to trivialize the problem

For example, in a challenge which requires your program to check if it is connected to the internet, using Brainfuck to always print a falsey output would violate this loophole. Of course Brainfuck can't connect to the internet.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

0 comment threads

+7
−0

Interpreting the challenge too literally

If the challenge asks that you print the nth prime given input n, a program printing the nth prime given input n isn't allowed.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

0 comment threads

+6
−0

Multiple URL shorteners in a web-based challenge

In challenges which require fetching data from the Internet, URL shorteners can be problematic. This is because:

  • shorteners made after the challenge was posted are like features that were added after the challenge was posted and there's no easy way to find when a URL was created

  • they outsource the "actual" URL which is a violation of the outsourcing loophole

  • noncanonical URLs are somewhat boring and using them is a tedious way to save bytes

I propose that each web-based challenge would have a single "canonical" URL to be used in each answer, such that the actual challenge doesn't depend on its length.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

0 comment threads

+6
−0

Cat Quines

Quines that simply output the source code due to some sort of implicit I/O, such as 1 in many languages.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

0 comment threads

+5
−0

Using a non-free (beer) language on a cops-and-robbers challenge

For a discussion on what counts as "free", see this post.

Cops-and-robbers challenges have two components: a cop posts a program optimized to be as good as possible in some property and a robber tries to invalidate the program. An important part of cops-and-robbers is that the robbers can test code in the same language to see if it works to invalidate a cop program.

Although non-free languages would do very well in a cops-and-robbers challenge, they are not within the spirit and introduce an arbitrary barrier to entry. This means that languages which cannot be used freely (as in beer) are banned from competing.

Languages with a free trial that eventually expires are also banned, even if unofficial methods can circumvent the free trial (we don't want companies looking at us and closing the circumventions...).

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

1 comment thread

About Mathematica (1 comment)
+5
−0

Using inconsistent I/O

An example would be a program whose only two outputs given some input can be 2 and 11. The program is print(11): claiming that it outputs in unary for some outputs and in decimal for others shouldn't be allowed even if output in either of these is allowed.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

0 comment threads

+5
−0

Optimizing specifically for the given test cases

Applies to "code-speeding" or fastest-code where your program must run as quickly as possible, as well as compression challenges. Obviously, there is a finite amount of cases because we have to measure speed/compression somehow.

It's not in the spirit of the challenge if you optimize your program to work extremely quickly for some cases (E.g. hardcoding the test cases and mapping them to ASCII characters to compress them in one byte), but the program works much worse for other input.

As there is no way around test cases, the general conduct should be that an algorithm's performance on the test cases is representative of its performance on other cases.

Rule of thumb: if you make your algorithm do well on the majority of cases and the test cases happen to be in the majority, that's fine, but not if your algorithm does well on a minority of cases which happens to cover the test cases given.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

2 comment threads

Exceptions for certain challenge types (1 comment)
splitting data in training and test might be fun (1 comment)
+4
−0

Abusing native number types

It's common to restrict inputs, outputs, intermediate algorithm values, etc. to fit into the native number type of the language.

This can be a problem for languages like Boolfuck whose only integer type is the 1-bit integer. With a minimum of one bit of input and one bit of output, there exist four Boolfuck programs able to solve any decision problem by abusing the limitation.

A program is abusing its number type if it has to be nontrivially changed in order to work for larger numbers.

(x << n) | (x >> (32 - n)) is allowed for bit rotations since the only thing that has to be changed for larger integers is the 32, but hard-coding a list of primes 1-128 is not allowed.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

0 comment threads

+4
−0

Storing information in the platform specs

We should disallow requiring the program to be run on some platform to store information for the challenge. An extreme example would be Nullary, in which all programs are ignored and instead execution depends on time since epoch.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

0 comment threads

+3
−0

Empty answers to questions requiring an interpreter

In particular,

  • "simulating" a machine on this very machine by accepting the initial state as the simulation's initial state and returning the final state as its own final state

  • "interpreting" a language with an empty program that "takes input" through insertion into its source of the rest (aka all) of the program

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

0 comment threads

+4
−1

Bypassing source restrictions by storing data in the file name

In some languages, like Pxem, programs are usually stored in the file name and the file's contents are irrelevant. On Somewhere Else, a Pxem answer has been disqualified before because the file content did not adhere to restrictions even if the file name did.

I propose that the area where the source code is stored should adhere to restrictions. There might be some cases in which this won't work but I'll let the voters decide what's fair for this loophole and what isn't.

History
Why does this post require attention from curators or moderators?
You might want to add some details to your flag.

2 comment threads

I disagree (2 comments)
general (1 comment)

Sign up to answer this question »