Essentially, a user's answer in Excel (now deleted) uses the drag-down formula feature of Excel, as described in the linked related meta question. I thought that from the highest voted answer to that question, we had, by community consensus, determined that mouse interaction is unnecessary. I personally take it to mean that mouse interaction of that type is not a valid form of "input" by default.

There is no related "input" type associated with mouse input listed in the default I/O methods in the relevant meta question. I don't think the mouse should be used to in any way affect the program's structure.

As we said, this allows an arbitrary amount of rows or columns in this case, so what if I create a language where the numbers of rows or columns I drag determines the output entirely?

To be clear, Excel only happens to be the catalyst for this question, but there are plenty of other situations where mouse input is possible -- Minecraft, Terraria, Logisim, LabVIEW, HTML+CSS, Scratch ...

So, to remove any doubts, what mouse interaction is allowed to be used for input/output?


  • \$\begingroup\$ Answer was deleted. your link is broken.. \$\endgroup\$
    – user56309
    Sep 29, 2016 at 20:59
  • \$\begingroup\$ @Mego It's not a duplicate. Either that answer needs to be clarified, or this question needs a clear answer, because the user in question still thinks it's okay. (He's the one who asked that meta question) \$\endgroup\$
    – mbomb007
    Sep 29, 2016 at 21:01
  • \$\begingroup\$ It's not unclear at all, except to the singular user in question. The top answer on that question perfectly answers this question. \$\endgroup\$
    – user45941
    Sep 29, 2016 at 21:03
  • 1
    \$\begingroup\$ @tuskiomi Most users can actually see deleted answers (anyone with >= 2000 rep, but more once the site privilege levels change.) So it's fine to us. :) \$\endgroup\$
    – mbomb007
    Sep 29, 2016 at 21:04
  • \$\begingroup\$ Let us continue this discussion in chat. \$\endgroup\$
    – mbomb007
    Sep 29, 2016 at 21:22
  • 1
    \$\begingroup\$ @Mego I don't consider this to be a dupe in the slightest. Excel only happens to be the catalyst, but there are plenty of other situations where mouse input is possible -- Minecraft, LabVIEW, HTML+CSS, Scratch ... those are just examples off the top of my head. I'm going to edit that into the question to make it more clear. \$\endgroup\$ Sep 30, 2016 at 12:30
  • \$\begingroup\$ @Mego I personally wouldn't have a problem with that, provided we can get some non-Excel clarification as well. \$\endgroup\$ Sep 30, 2016 at 12:32
  • \$\begingroup\$ I should mention that BASIC has a Text-based feature of what you described above "where the numbers of rows or columns I drag determines the output entirely". it is called the EVAL() function, and it is not allowed in any PCG contest. Yet, BASIC is allowed in PCGs anyway. I do not believe your argument holds water. \$\endgroup\$
    – user60710
    Oct 14, 2016 at 16:14
  • \$\begingroup\$ @user60710 Why would eval() not be allowed in a PCG contest? We use that all the time. It's the dragging that isn't allowed. \$\endgroup\$
    – mbomb007
    Oct 14, 2016 at 18:04

2 Answers 2


Mouse interactions that act as code or input are not allowed

Since it's impossible to count "bytes" for mouse clicks/drags/etc., mouse interactions are not allowed as part of the code or the input method. Mouse interactions are allowed for the purpose of facilitating input using acceptable methods.


  • Having to click a button to run the code
  • Having to click a button to see the output of running the code
  • Having to click in a text field (or similar) to input the code or input
  • Clicking levers/buttons/etc. in Minecraft to enter input (since that's the natural input method)
  • Clicking checkboxes or up/down buttons on numeric input boxes for input in HTML+CSS


  • Entering the code in an Excel cell (or similar) and dragging it through other cells to get the output (whether it be a fixed number of cells or dependent on the input)
  • Using the mouse (or keyboard, for that matter) to select a part of code and repeat it multiple times for "free"
  • Anything else that would be equivalent to one of the standard loopholes
  • 1
    \$\begingroup\$ Clicking checkboxes could also be acceptable input for a boolean in HTML+CSS. \$\endgroup\$
    – mbomb007
    Sep 30, 2016 at 13:31
  • \$\begingroup\$ @TimmyD How does it look now? \$\endgroup\$
    – user45941
    Sep 30, 2016 at 13:54
  • 1
    \$\begingroup\$ Why would you discern Minecraft from others? You literally put in the title that most should not be allowed as input \$\endgroup\$
    – user56309
    Sep 30, 2016 at 14:32
  • \$\begingroup\$ @tuskiomi Because Minecraft doesn't have an input method other than buttons and levers, so that's allowed as an acceptable input method. See this for more details. Though technically /tellraw and /scoreboard can be used for input, they require the use of command blocks to work, and scoring command blocks is tricky. \$\endgroup\$
    – user45941
    Sep 30, 2016 at 14:36
  • \$\begingroup\$ @mego the most popular answer says that tellraw should be the default io \$\endgroup\$
    – user56309
    Sep 30, 2016 at 14:38
  • \$\begingroup\$ @tuskiomi The most popular answer is referring to output, not input. \$\endgroup\$
    – user45941
    Sep 30, 2016 at 14:39
  • \$\begingroup\$ According to "Entering the code in an Excel cell (or similar) and dragging it through other cells to get the output (whether it be a fixed number of cells or dependent on the input)", I can't also copy-paste my Javascript code and run it from the console. Basically, Microsoft Excel is the interpreter, and the input is the cell where you place your code. I see nothing wrong with that. \$\endgroup\$ Oct 2, 2016 at 11:36
  • \$\begingroup\$ @IsmaelMiguel That is not at all what I said, and I am having difficulty understanding how you came to that conclusion. \$\endgroup\$
    – user45941
    Oct 2, 2016 at 11:52
  • \$\begingroup\$ @Mego "Entering the code in an Excel cell (or similar)" <-- can be seen as pasting the code in an interpreter. "[...] dragging it through other cells to get the output (whether it be a fixed number of cells or dependent on the input)" <-- giving any sort of input to the code (like a Javascript prompt(), which requires you to click on a button, inside a box, to give the code the input/cancel) \$\endgroup\$ Oct 2, 2016 at 11:56
  • \$\begingroup\$ @IsmaelMiguel No. It's not at all the same. Pasting the code in the interpreter or clicking inside a prompt facilitates input. Dragging formulas through cells or copy-pasting the same code multiple times uses mouse/keyboard interactions to replace code. \$\endgroup\$
    – user45941
    Oct 2, 2016 at 11:58
  • \$\begingroup\$ @Mego How about a code that multiplies itself, and changes itself according to the input? For example, a loop written as eval('alert(x)'.repeat(prompt())). Is that invalid? \$\endgroup\$ Oct 2, 2016 at 12:01
  • \$\begingroup\$ @IsmaelMiguel That has nothing to do with the question at hand. \$\endgroup\$
    – user45941
    Oct 2, 2016 at 12:02
  • \$\begingroup\$ @Mego How is that any different? It's self-modifying code (in the loose way) that requires user interaction to give you the output. \$\endgroup\$ Oct 2, 2016 at 12:13
  • \$\begingroup\$ @IsmaelMiguel It requires user interaction in the form of a GUI prompt for input, which is an acceptable input method. It's not using the mouse and/or keyboard to copy and paste code for free. There's a clear distinction. \$\endgroup\$
    – user45941
    Oct 2, 2016 at 12:15
  • \$\begingroup\$ @Mego Just because the code is being replicated, doesn't mean it is for free. Also, you can define specific cells to contain the input. I see nothing wrong with that. \$\endgroup\$ Oct 2, 2016 at 12:23

Mouse inputs should be allowed so long as they're quantifiable, and can be represented in the form of the specific input upon which the challenge specifies.

Mouse inputs are no different than keyboard inputs, and to ban them in challenges would be ridiculous and unlike the PCG community. We've promoted time and again new and improved ways to represent data, weather it be a new codec, like in jelly, cells of hexagony, or even languages that are made here for golfing by our own users. I think that mouse strokes should be allowed, just like these other languages and their data representations.

The worry that I see most PCG users expressing is that there's not clear definition of what a mouse stroke is, and one can do with a mouse stroke. So Here is what I propose that a mouse stroke should and shouldn't do:

A mouse stroke Should

  • Represent some sort of quantifiable data

  • ONLY be part of the input.

  • Have said data be in be same EXACT format as the challenge gives.

  • Be significant and relevant to the input in some way.

A mouse stroke Shouldn't

  • Alter source code in any way

  • give any data to the program that wouldn't be covered as part of the specified input

  • be overly complicated or burden the user.

  • be part of the source code to be scored

Examples of valid mouse input descriptions:

  • Click the button N times where N is your desired input.

  • click and drag a formula N cells down where N is your desired input

  • Draw an X by Y square with the mouse, where X and Y are as specified in the challenge.

Examples of INvalid mouse input descriptions:

  • Select the source code and delete some bits depending on your input..

  • click ax X 35,Y54, and drag to X78,Y160, then click play.

  • I drug a formula across a range in excel then submitted it for scoring.

  • The challenge requires a string input, but you'll have to enter it on your mouse in Morse code.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .