568
\$\begingroup\$

This "sandbox" is a place where Code Golf users can get feedback on prospective challenges they wish to post to main. This is useful because writing a clear and fully specified challenge on your first try can be difficult, and there is a much better chance of your challenge being well received if you post it in the sandbox first.

Sandbox FAQ

Posting

To post to the sandbox, scroll to the bottom of this page and click "Answer This Question". Click "OK" when it asks if you really want to add another answer.

Write your challenge just as you would when actually posting it, though you can optionally add a title at the top. You may also add some notes about specific things you would like to clarify before posting it. Other users will help you improve your challenge by rating and discussing it.

When you think your challenge is ready for the public, go ahead and post it, and replace the post here with a link to the challenge and delete the sandbox post.

Discussion

The purpose of the sandbox is to give and receive feedback on posts. If you want to, feel free to give feedback to any posts you see here. Important things to comment about can include:

  • Parts of the challenge you found unclear
  • Comments addressing specific points mentioned in the proposal
  • Problems that could make the challenge uninteresting or unfit for the site

You don't need any qualifications to review sandbox posts. The target audience of most of these challenges is code golfers like you, so anything you find unclear will probably be unclear to others.

If you think one of your posts requires more feedback, but it's been ignored, you can ask for feedback in The Nineteenth Byte. It's not only allowed, but highly recommended! Be patient and try not to nag people though, you might have to ask multiple times.

It is recommended to leave your posts in the sandbox for at least several days, and until it receives upvotes and any feedback has been addressed.

Other

Search the sandbox / Browse your pending proposals

The sandbox works best if you sort posts by active.

To add an inline tag to a proposal, use shortcut link syntax with a prefix: [tag:king-of-the-hill]. To search for posts with a certain tag, include the name in quotes: "king-of-the-hill".

\$\endgroup\$
0

4559 Answers 4559

-3
\$\begingroup\$

Write a program that takes a list of strings as input and creates trees of prefixes as such:

Hi_there_how_are_you?
Hi_there_would_you_mind?
Hi_the_weather_is_nice
Hills_are_green
Many_of_us
May_has_11_days
May_has_11_days_left
IWillLearnTheTrombone
IWillLearnTheSaxophone
IWillLearnThePiano

Which would output:

Hi Hi_there Hi_there_how_are_you?
            Hi_there_would_you_mind?
   Hi_the_weather_is_nice
   Hills_are_green
Ma Many_of_us
   May_has_11_days May_has_11_days
                   May_has_11_days_left
IWillLearnThe IWillLearnTheTrombone
              IWillLearnTheSaxophone
              IWillLearnThePiano

The input strings shall contain no spaces and the output shall be separated by at least one space, any number of extra line breaks or spaces are allowed. The output above is formatted to explain the challenge, the following formatting is also valid:

Hi Hi_there Hi_there_how_are_you? Hi_there_would_you_mind? Hi_the_weather_is_nice Hills_are_green Ma Many_of_us May_has_11_days May_has_11_days May_has_11_days_left IWillLearnThe IWillLearnTheTrombone IWillLearnTheSaxophone IWillLearnThePiano

This question is a kind of reverse of this Prefix Tree Traversal. This is code golf, shortest code in bytes win.

Note: I'm struggling with the output? What would be the most 'fun'/ have high potential for cleverness? The one I have now just looks like a mess. Can i have output as a list of lists(of lists)? Or do that hinder people?

\$\endgroup\$
2
  • 1
    \$\begingroup\$ Related (make an alphabeTrie). Very close, though I think it might depend on your output format on whether it is a dupe \$\endgroup\$
    – Jo King Mod
    Sep 23, 2018 at 8:48
  • \$\begingroup\$ I would mark it as a duplicate to the one that Jo King linked. \$\endgroup\$ Sep 27, 2018 at 19:54
-3
\$\begingroup\$

I'm glad the sandbox exists because I have a few issues coming up with the right wording for this.

Background

Theoretically, any numeric pattern should exist somewhere in the decimal places of pi.

Challenge

Given any numeric input, find the index (location?) of the first occurrence of that input in the decimal place of pi

Example cases:

  • 1 = 1
  • 14 = 1
  • 41 = 2
  • 897 = 11

Rules:

any numeric input, can't see why it should be limited by any number of characters. I am not sure about limitations, but this could get computationally intense if it's a large sequence of numbers that occur very deep into pi. Do I need to add any restrictions to cater for computational complexity?

\$\endgroup\$
2
  • 5
    \$\begingroup\$ We'be had this challenge before. That one only requires the first few digits, but I think we've had enough challenges about pi that this won't add anything \$\endgroup\$
    – H.PWiz
    Sep 25, 2018 at 7:36
  • 2
    \$\begingroup\$ "Theoretically, any numeric pattern should exist somewhere in the decimal places of pi." - how do you know that? \$\endgroup\$
    – ngn
    Sep 25, 2018 at 10:00
-3
\$\begingroup\$

Tags:

Code-Bowling

Name: Two is an error, One runs fine!

The challenge is simple.

When one character is removed from the given program, it should not error, but when two are removed, it should error.

PENALTIES:

If you repeat one Unicode character in the program, then your score will be the number of bytes subtracted by the Unicode value of the character (0 for NUL, 10 for newline, 64 for A, etcetera).

Else, your score is the number of bytes.

As always, since this is code bowling, most bytes win!

\$\endgroup\$
8
  • 2
    \$\begingroup\$ What if I repeat two characters in the program? \$\endgroup\$
    – DELETE_ME
    Dec 1, 2018 at 3:29
  • 4
    \$\begingroup\$ What if I just have a really large amount of NUL bytes? \$\endgroup\$
    – Jo King Mod
    Dec 1, 2018 at 3:33
  • \$\begingroup\$ Is it ok if the program itself error/not error? \$\endgroup\$
    – DELETE_ME
    Dec 1, 2018 at 3:35
  • \$\begingroup\$ What about infinite loop? \$\endgroup\$
    – DELETE_ME
    Dec 1, 2018 at 3:35
  • 1
    \$\begingroup\$ This question needs major work: in its current state I would definitely vote to close it, and the only question would be whether to close as Too Broad or to close as Unclear. It's too broad because there's no specification for what the program must do. It's unclear because it's not specific enough on the quantifiers around the character removal: if it should be robust against the removal of any character, be explicit. See radiation-hardening for existing questions in this area, both for examples of how to word them and to ensure that it's different enough to be new and interesting. \$\endgroup\$ Dec 1, 2018 at 10:42
  • \$\begingroup\$ @PeterTaylor Although the program can do anything, it should not be too broad if the challenge is sufficiently hard. \$\endgroup\$
    – DELETE_ME
    Dec 4, 2018 at 10:30
  • \$\begingroup\$ About the removal of any character: I guess that the score is \$len-\sum_{c}{c\times \max(0,n(c)-1)}\$ for \$len\$ = program length in bytes and \$n(c)\$ = number of occurences of character c in program, but I'm not sure. \$\endgroup\$
    – DELETE_ME
    Dec 4, 2018 at 10:32
  • \$\begingroup\$ LENGUAGE win!!! \$\endgroup\$
    – l4m2
    Dec 4, 2018 at 11:32
-3
\$\begingroup\$

Output a number \$n\$ such that:

  1. \$n\text{mod}10=5\$
  2. \$n^2\text{mod}10^{10000}=n\$

Shortest code win. You should be able to try it rather than purely know it work.

Sandbox mainly to check duplication

\$\endgroup\$
8
  • 1
    \$\begingroup\$ Wouldn't this be easy to just hardcode the number? \$\endgroup\$
    – Jo King Mod
    Dec 13, 2018 at 13:22
  • \$\begingroup\$ @JoKing We must have \$n^2\ge 10^{10000}\$, so \$n\ge 10^{5000}\$ which if naively hardcoded takes \$5000 \log_2{10}\$ bits. \$\endgroup\$
    – DELETE_ME
    Dec 13, 2018 at 14:24
  • \$\begingroup\$ However, we already have modular multiplicative inverse challenge, I expect most answers to be very similar. \$\endgroup\$
    – DELETE_ME
    Dec 13, 2018 at 14:42
  • \$\begingroup\$ @user202729 It's likely that you'll get 1 in that way or be too slow so I need time requirement \$\endgroup\$
    – l4m2
    Dec 13, 2018 at 15:00
  • \$\begingroup\$ @l4m2 Most solutions there use extended Euclid algorithm so they will not be too slow... \$\endgroup\$
    – DELETE_ME
    Dec 13, 2018 at 15:06
  • \$\begingroup\$ @user202729 So they'll get 1 \$\endgroup\$
    – l4m2
    Dec 13, 2018 at 15:22
  • \$\begingroup\$ Get 1 what? The correct answer is 810...90625. \$\endgroup\$
    – DELETE_ME
    Dec 13, 2018 at 15:31
  • \$\begingroup\$ Will how many languages use this? \$\endgroup\$
    – l4m2
    Dec 13, 2018 at 15:57
-3
\$\begingroup\$

Integer or decimal to array and array to decimal or integer

Task

Write two functions

1) Convert an integer or decimal to array of integers that potentially includes a single decimal

2) Convert array including integers and potentially a single decimal to integer or decimal

Input

Integer or decimal to array

  • An integer or decimal

Array to integer or decimal

  • An array

Output

Integer or decimal to array

  • An array containing each digit of the input at an individual index with the first decimal portion of input containing the decimal character.

Array to integer or decimal

  • An integer or decimal equal to input

Specification

When the first digit of a decimal is a 0 , and a digit follows, that value includes all 0's up to and including the last digit of that decimal, else the decimal portion is spread or expanded to the remainder of the decimal portion for the remainder of indexes of the array, that is: -0.01 <-> [-0.01], 100.01 <-> [1,0,0,0.01], 100.0001 <-> [1,0,0,0.0001]

Test cases

Input <----------> Output

-123               [-1,-2,-3]
4.4                [4,0.4]
44.44              [4,4,0.4,4]
-0.01              [-0.01]
123                [1,2,3]
200                [2,0,0]
2.718281828459     [2,0.7,1,8,2,8,1,8,2,8,4,5,8,9]
321.7000000001     [3,2,1,0.7,0,0,0,0,0,0,0,0,1]
809.56             [8,0,9,0.5,6]
1.61803398874989   [1,0.6,1,8,0,3,3,9,8,8,7,4,9,8,9]
1.999              [1,0.9,9,9]
100.01             [1,0,0,0.01]
545454.45          [5,4,5,4,5,4,0.4,5]
-7                 [-7]
-83.782            [-8,-3,-0.7,-8,-2]
1.5                [1,0.5]
100.0001           [1,0,0,0.0001]

Winning criteria

Least amount of total (each of function or programs 1 and 2) bytes used.

code-golf

\$\endgroup\$
39
  • \$\begingroup\$ 1) What should output be for test cases 0, 200, and 1.0015? 2) I would suggest a more descriptive title. 3) Bonuses are generally discouraged in code golf, so make sure they add something to this challenge. \$\endgroup\$
    – lirtosiast
    Dec 18, 2018 at 23:43
  • 1
    \$\begingroup\$ The string method thing is very iffy. Won't a print function in any language be converting a number/list of numbers to a string? \$\endgroup\$
    – Jo King Mod
    Dec 19, 2018 at 0:16
  • \$\begingroup\$ @lirtosiast [0], [200], [1,0.001,5]. What title do you suggest? Not using string methods does add something to the challenge. \$\endgroup\$ Dec 19, 2018 at 0:47
  • \$\begingroup\$ @JoKing Not sure what you mean by a print function converting a number or list to a string? If JavaScript is used it means not using ``, '', String, template literal, RegExp.prototype.match(), etc. to create or convert the input to output or add, subtract, divide, multiply, manipulate arrays are what is meant, not print(output) or console.log(output). A user is not obligated to try for the bonus in their answer. \$\endgroup\$ Dec 19, 2018 at 0:49
  • 1
    \$\begingroup\$ @guest271314 The challenge is not clear to me: why is 200 [200] but 100.01 [1,0,0,.01]? Maybe a worked-through example in the question as well as a reference implementation would help. For a title "Modified decimal expansion of a number" is a start. \$\endgroup\$
    – lirtosiast
    Dec 19, 2018 at 0:57
  • \$\begingroup\$ @guest271314 Some languages have builtins for the digits of an integer or float e.g. Mathematica RealDigits[3.14159] = [{3,1,4,1,5,9},1] . Do those count as string methods? \$\endgroup\$
    – lirtosiast
    Dec 19, 2018 at 0:59
  • \$\begingroup\$ @lirtosiast 200 does not contain a decimal, 100.01 contains a decimal. The reference implementation is at the question. Created the requirement from scratch while attempting to solve another inquiry. Does Mathematica have a method to check if a value is a string, integer or decimal? \$\endgroup\$ Dec 19, 2018 at 1:03
  • \$\begingroup\$ I don't see any reference implementation. It might be better if you explicitly listed the rules behind the transformation \$\endgroup\$
    – Jo King Mod
    Dec 19, 2018 at 1:05
  • \$\begingroup\$ @JoKing See "Test cases". That goes back to whether to post the question here or at Software Engineering. The question does not ask users to write an entire specification (frequently edited; maintained; an entire process in and of itself). Observing the test cases: when the first digit of a decimal is a 0 , and a digit follows, that value includes all 0's up to and including the last digit of that decimal, else the decimal portion is spread or expanded to the remainder of the decimal portion for the remainder of indexes of the array, that is: [-0.01], [1,0,0,0.01], [1,0,0,0.0001]. \$\endgroup\$ Dec 19, 2018 at 1:09
  • 1
    \$\begingroup\$ Right, you should include those rules in the question, along with what happens when the input is an integer and/or ends in zero. I'm not sure what you'd achieve by posting on Software Engineering because I doubt any form of this question would be on-topic. \$\endgroup\$
    – Jo King Mod
    Dec 19, 2018 at 1:22
  • 1
    \$\begingroup\$ Also, the specification should be given as a specification, not as a set of test cases to reverse-engineer. \$\endgroup\$ Dec 19, 2018 at 9:42
  • 1
    \$\begingroup\$ "The specification ... is WIP." That's fine: that's what the sandbox is for. I'm trying to identify things which need addressing before the question leaves the sandbox. "A users' answer could redefine the specification, in a good way" This is completely against the ethos of this site. All users should implement the same specification, because otherwise it's not a fair contest. \$\endgroup\$ Dec 19, 2018 at 14:56
  • 1
    \$\begingroup\$ I'm guessing he means move the specification from below the test cases to the task section and remove the Observing the test cases part. And perhaps make it a bit clearer, for example giving us the inputs that led to [-0.01], [1,0,0,0.01], [1,0,0,0.0001] rather than having them in isolation. \$\endgroup\$
    – Jo King Mod
    Dec 20, 2018 at 5:36
  • 2
    \$\begingroup\$ Specifically? Nothing is clear to me. Try reading through the spec yourself without the test cases and forgetting that you already know in your head how everything should work - is it clear to you? As for a solution to making it clearer: start by having a look through the specs of recent, well-received challenges and note the detail they go into about what is expected of solutions and what is & isn't allowed. Then rewrite your own spec in a similar manner so there's no (or very little) room for doubt or confusion. (1/2) \$\endgroup\$
    – Shaggy
    Dec 20, 2018 at 19:11
  • 1
    \$\begingroup\$ Ah, I didn't realise you'd deleted the bounty post. I think you misunderstood what I meant when I commented. I was just clarifying that if an answer were to be posted, the 500 rep would come from me, though you could add some rep if you wanted. There was no censorship of your post and I'm not sure why you deleted it. Typically on PPCG, we post the bounties after a valid answer has been posted, in order to make sure the rep doesn't go to waste, especially if the task is very hard or possibly impossible \$\endgroup\$
    – Jo King Mod
    Feb 19, 2019 at 10:37
-3
\$\begingroup\$

Introduction

The original creator of this meme has gone blind, lost his internet and accidentally deleted all his memes. Except this one. He has this one last meme on his desktop, and since he can't see, he wants to know what this meme is.

By hearing it.

Challenge

Your challenge is to write the shortest program that will produce a playable audio file that the meme creator will play to hear the text in this meme.

  • The input is the meme below
  • The output will be a audio file that reads the output text in English and has a slight pause after a colon or a new line. But don't read out 'colon'

Answer the following questions for your readers.

  • You can use any programming language
  • You can use any existing library
  • Output audio must be playable by vlc
  • Networking is not allowed, you cannot connect to any internet services
  • Shortest answer wins

Input and Output

Input:

surprised pikachu eyesight

Output:

Me: spends 8 hours per day on the internet

Eyesight: gets worse

me:

\$\endgroup\$
2
  • 7
    \$\begingroup\$ The output would always be hardcoded, so there's no point in the input \$\endgroup\$
    – Jo King Mod
    Mar 8, 2019 at 9:43
  • 1
    \$\begingroup\$ This challenge would be nice with different memes as test cases. Otherwise it would be hardcoded as said previously. \$\endgroup\$
    – Belhenix
    Mar 20, 2019 at 19:35
-3
\$\begingroup\$

Compress briefly

Compress and decompress the first chapter of Worm, beginning with the opening words "Class ended" and ending with the closing words "my best friend." (including the period). You do not need to include any of the formatting (copy and paste as plain text).

Rules

  • You may not use any built-in or imported compression functions or procedures. You must implement the compression yourself.

  • You may either write one program to compress and another to decompress, or one program that does both. If you wish, the second option can be a polyglot, where compiling as one language compresses and compiling as the other decompresses.

  • Your program must be no more than 2000 bytes long. You may, at your option, compress your program with bzip2 or gzip before measuring its size for the purpose of meeting this limit.

  • Your program does not need to work for any other text.

  • Standard loopholes apply.

  • Standard I/O rules apply.

Scoring

  • The score is the sum of the total number of bytes of your program(s) and the total number of bytes in the compressed text.

  • If you use a single program to compress and decompress, then you may have to pay a penalty. Specifically, you must pay a number of bytes equal to the Levenshtein distance between the shell command needed to (compile and) run your compression program and the one needed to run your decompression program. You can calculate this online. A special exception: if you choose to write a polyglot, then you can leave out the paths to the compilers/interpreters when you calculate the penalty.

Tags: code-challenge, compression

\$\endgroup\$
9
  • \$\begingroup\$ Related \$\endgroup\$
    – Beefster
    Mar 19, 2019 at 22:31
  • \$\begingroup\$ @Beefster, a bit, but I think there are enough differences to make competitive answers largely incompatible. \$\endgroup\$
    – dfeuer
    Mar 19, 2019 at 22:36
  • 2
    \$\begingroup\$ I don't think any answers are going to outperform gzip/bzip/whatever. There's no obvious patterns to exploit in the text. \$\endgroup\$
    – Beefster
    Mar 19, 2019 at 22:37
  • 2
    \$\begingroup\$ Also: how is this different from kolmogorov-complexity? \$\endgroup\$
    – Beefster
    Mar 19, 2019 at 22:38
  • \$\begingroup\$ @Beefster, it's different because I don't allow the code to be big enough to have much chance of encoding the text in it. It doesn't have to outperform industrial-strength algorithms. That mention had to do with the source code size limit, intended to give extremely verbose languages the opportunity to participate. \$\endgroup\$
    – dfeuer
    Mar 20, 2019 at 0:28
  • \$\begingroup\$ Every answer will be some variant of import gzip; gzip.compress(story) \$\endgroup\$
    – Beefster
    Mar 20, 2019 at 16:21
  • \$\begingroup\$ @Beefster, is my explicit prohibition of that insufficient? My first rule is that you can't use a built-in or imported compression function. \$\endgroup\$
    – dfeuer
    Mar 20, 2019 at 16:42
  • \$\begingroup\$ That sounds a lot more interesting than it actually is. There's a reason "do X without Y" questions have fallen out of favor. Compression challenges are hard to write. At the very least, you need some exploitable pattern common to a class of strings. This simply isn't the case in the linked text. \$\endgroup\$
    – Beefster
    Mar 20, 2019 at 19:29
  • \$\begingroup\$ Even without using built-ins the best answer will use some variant of Huffman coding that fits in 2000 bytes. LZ77 is also pretty easy to implement and works well on text. \$\endgroup\$
    – Beefster
    Mar 20, 2019 at 19:44
-3
\$\begingroup\$

Output an alphabet suite

A successor to the ŋarâþ crîþ alphabet challenge.

Outputting the alphabet song with as few letters as possible was too easy, but what about outputting many of them?

Your challenge is to write as many programs as you can, with no two programs sharing any Unicode codepoints, and each program outputting the names of the letters of the alphabet (or the glyphs of some other kind of phonetic script) used by a different language. For instance, one program can output

a bee cee dee e eff gee aitch i jay kay el em en o pee cue ar ess tee u vee double-u ex wye zed

and another program can output

a be ce de e efe ge hache i jota ka ele eme ene eñe o pe cu erre ese te u uve uve doble equis ye zeta

Notes:

  • For a given language, there will probably be some leeway in what you can output.
  • Unlike in the previous challenge, you don't need to worry about any particular punctuation. You should at least separate each letter name with whitespace.
  • You must output the names of the letters, not the letters themselves (so A B C... is invalid), unless the letters are literally pronounced so in the language in question.
  • If a language uses both capital and lowercase letters, then you may output the letter names in either case. If it uses only one of them, then you must output the alphabet in that case.
  • You must use a different language's alphabet for each program, but you are allowed to use the same script in the context of different languages.
  • Constructed languages are allowed, as long as they predate the challenge.
  • You may use different programming languages for each program. Or the same.
  • Standard loopholes are forbidden.

TODO:

  • is the requirement against sharing any codepoints too strict?
\$\endgroup\$
1
  • 2
    \$\begingroup\$ I haven't downvoted you, but suspect that the major reason that you're getting downvoted is that it's totally unclear what outputs are valid or not, and skimming the edges of that is where most of the byte savings are going to come from in a code-golf. That said, I don't think this is code golf, despite having the tag. You'll probably find that, when any golfing aspect is removed, the strings to print are more or less irrelevant, so you might as well use a fixed, objective set of strings instead of the ones you have. \$\endgroup\$ May 13, 2019 at 16:24
-3
\$\begingroup\$

add two numbers in string representation

Idea:

Given two strings representing non-negative integers in base 10, return the string corresponding to their sum - without any explicit arithmetic operations. This means you have to implement incrementing (probably with a lookup and indexing) and carrying (probably with iteration or recursion) on your own. Comparisons and boolean operations are allowed.

Examples:

"1" + "1" = "2"
"5" + "6" = "11"
"0" + "8" = "8"

I/O:

Write a function or program which takes the two strings in a way you want to.
Output, print or return the solution in whatever way you want.

Ah, and also don't forget that this is code-golf, so shortest answer in bytes will win. Also, all standard loophole rules and so on apply (you should know from all the other challenges!)


Sandbox

This challenge changed, evolved and got compressed during discussion with Adám starting from here (feel free to review the edits and chat of this post on how we got here)

Tags for cgcc post:

\$\endgroup\$
5
  • 9
    \$\begingroup\$ This is still "Do X without Y", and Y is not always clear-cut. What counts as an "explicit arithmetic operation" in lambda calculus? \$\endgroup\$ Jul 25, 2019 at 15:22
  • \$\begingroup\$ @PeterTaylor my english is not the best in the world and also i am not a pro in thins like loopholes or coding terminus around maths. you have any idea how to propose this or what kind of operations to prohibit? I would just come up with explicite "+" "-" "*" and "/" operations directly on the string representations (also to exklude languages which can handle interpreting strings as numbers). But are there furter operations I forget? \$\endgroup\$
    – pixma140
    Jul 26, 2019 at 5:43
  • 7
    \$\begingroup\$ I don't think it can be fixed. \$\endgroup\$ Jul 26, 2019 at 5:53
  • \$\begingroup\$ I agree this can't be defined objectively. The only way I can see this working is if the output was required to include the steps of calculation so that it's no longer an non-observable requirement. That would probably involve specifying a particular approach to implement though. I can't guess whether such a restriction would make the challenge interesting, but I suspect it would not. \$\endgroup\$ Jul 28, 2019 at 18:58
  • \$\begingroup\$ Guess then I will better not post this question outside of the sandbox.. But thanks to you all so far! :) \$\endgroup\$
    – pixma140
    Jul 29, 2019 at 5:41
-3
\$\begingroup\$

The goal is to make a program that is compilable in as many languages as possible.

  • The program must be compilable with a specific compiler version and compiler parameters without any errors.
  • The program may result in an error when run.
  • The source code must not be empty or whitespace.
\$\endgroup\$
5
  • 1
    \$\begingroup\$ This is somewhat similar in spirit but not the same. This probably is a duplicate of something, strictly or less so, but that's the first thing that came to mind \$\endgroup\$ Aug 27, 2019 at 7:48
  • 2
    \$\begingroup\$ A null program is compilable in most(if not all) languages. (Including specific compilers of C(in IOCCC).) \$\endgroup\$
    – user85052
    Aug 27, 2019 at 10:15
  • \$\begingroup\$ @A_ I've added an additional rule. \$\endgroup\$
    – user11909
    Aug 27, 2019 at 10:58
  • 3
    \$\begingroup\$ As-is, this will be closed as Too Broad, since there's no "thing" for the program to do. Have a look at the polyglot tag and see what others have done. \$\endgroup\$ Aug 27, 2019 at 14:25
  • \$\begingroup\$ Define "compile". \$\endgroup\$ Aug 28, 2019 at 23:23
-3
\$\begingroup\$

Writing a WebCrawler

Challenge

Design a web crawler that recursively extracts all the hyperlinks from the HTML of the web page and does the same for every hyperlinked page it finds. The webcrawler must store the hyperlinks in a separate file

How The WebCrawler Works

First the webcrawler should download the HTML file of the URL the user inputted.

Second the webcrawler will copy every single hyperlink embedded in the hyperlink and paste it into an output text file. The best general way to do this based on my experience is to have the webcrawler iteratively search through the HTML file for an "a href" tag. Be careful about what kind of hyperlinks are embedded in those tags. Sometimes only the subdomain directories of a complete hyperlink are embedded in this

For example: https://en.wikipedia.org/wiki/Toyota may simply have an a href tag in the HTML file of a webpage as: "/wiki/Toyota"

After extracting all the hyperlinks of the first webpage, visit all the hyperlinks found on the base webpage starting from the the first hyperlink found and repeat all the steps above. The only exception to doing this is obviously if the hyperlink fails to lead to an HTML page.

Input

The program must accept only one URL as input.

Output

A text file that lists every hyperlink that it finds. Note:

Your webcrawler must avoid revisiting webpages it has already crawled. This can cause the crawler get trapped in a "circular link loop" where it continously visits the same pages endlessly.

Note:

Special consideration will be given to submissions that prove they are capable of crawling deep web websites, including those with the .onion sites.

\$\endgroup\$
-3
\$\begingroup\$

Create a "Transpiler"

for the purpose of this challenge, a transpiler is any program that takes valid source code from one language as input and produces a program valid in another language that performs the same actions. Calling the original languages interpreter is not banned.

Posts should start with "SRCLANG to DSTLANG in LANG; X bytes" as a heading.

Here's an example post:

Shell to Ruby in Ruby; 41 bytes

puts'`bash #{Data}`
__END__
'+STDIN.read

Here we use the somewhat obscure Data constant to embed arbitrary data in the program. this has the advantage of never having to escape anything.

Each "triple" of source, destination, and working language represents its own category, as this challenge varies greatly in difficulty depending on the languages used.

\$\endgroup\$
5
  • \$\begingroup\$ What is the winning criterion? Are there requirements for the languages used? \$\endgroup\$ Nov 6, 2020 at 23:09
  • \$\begingroup\$ @RedwolfPrograms lowest byte count, as usual. I guess no strict subsets as well, so you can't say cat is a sh to bash transpiler \$\endgroup\$
    – binarycat
    Nov 6, 2020 at 23:24
  • \$\begingroup\$ How would this be consistently graded? I don't get how this is fair to all answers. \$\endgroup\$
    – Razetime
    Nov 7, 2020 at 3:35
  • \$\begingroup\$ Is g++ a C++ to x86 assembly transpiler? "this challenge varies greatly in difficulty depending on the languages used" I'd say it varies in difficulty way too much. \$\endgroup\$ Nov 7, 2020 at 7:08
  • \$\begingroup\$ @thedefault. Yes, but it's far from trivial. As for variation, like I said, each "triple" of languages forms it's own category. If it's necessary to have 1 winner, I guess it could be popularity-contest. \$\endgroup\$
    – binarycat
    Nov 8, 2020 at 21:35
-3
\$\begingroup\$

I have the following code. Help me make it code shorter.

new Promise(r=>r(URL.createObjectURL(new Blob(['<h1>Example</h1>'],{type:'text/html'})))).then(u=>open(u)&&setTimeout(t=>URL.revokeObjectURL(u),2e3))

The Catch:

  • This has to be in JavaScript
  • It cannot contain semicolons
  • It must be a "one-liner"
  • It must have the same steps as the code above:
    1. Create a blob URL from a blob
    2. Open a browser window of the blob URL
    3. Revoke the blob URL

Extras

  • The winner will be decided by the shortest amount of bytes
  • If you try this in another language, you will still get an upvote
\$\endgroup\$
-3
\$\begingroup\$

Most digits of Pi in a hundred bytes

\$\endgroup\$
3
  • 4
    \$\begingroup\$ It's likely possible to output infinitely many. \$\endgroup\$ Jan 19, 2021 at 3:09
  • \$\begingroup\$ @thedefault. how? \$\endgroup\$
    – someone
    Jan 20, 2021 at 0:46
  • 2
    \$\begingroup\$ By using one of the many known formulas for pi. And if you do not use a formula for pi, you're compressing random digits (it's possible to store around 240 digits like this). codegolf.stackexchange.com/q/47808 has multiple answers below 100 bytes. \$\endgroup\$ Jan 20, 2021 at 1:52
-3
\$\begingroup\$

Reinvent math

The task is simple. Define the basic operators (+, -, *, /) without using them directly.

Also banned:

  • any add-assign (+=) and its equivalents
  • basically anything intended to be used as a basic arithmetic operation

Program should consist of at least 4 binary functions, one for each operation. they may call other functions defined in your program, including each other. The types of the arguments to the function may be any types that the basic arithmetic operators work on, except for types that are less than 3 bits in size.

Shortest code wins

\$\endgroup\$
17
  • \$\begingroup\$ Thank you for using the sandbox. Have you considered stating the required argument domain? And how should one answer? Using for functions/programs with the total length being the score? Can the four share code? \$\endgroup\$
    – Adám
    Feb 8, 2021 at 19:35
  • \$\begingroup\$ Also, what does "using them directly" mean? Does that mean we can't use those four symbols or their equivalents in whatever language we use? And do we implement them for integers or floating-point numbers? \$\endgroup\$
    – user
    Feb 8, 2021 at 19:43
  • 1
    \$\begingroup\$ If our language allows e.g. using _plus_ instead of +, is that allowed? \$\endgroup\$
    – Adám
    Feb 8, 2021 at 19:45
  • \$\begingroup\$ @user I feel like it it's fairly clear what "using them directly" means. I can't really think of an alternative interpretation. Any numeric type which the basic operators work on will do. For most c-derived languages, this will be floats and ints. \$\endgroup\$
    – binarycat
    Feb 8, 2021 at 19:54
  • \$\begingroup\$ @binarycat It's not clear to me - I can't tell if you're talking about those four specific symbols or the equivalent operators in the answer's language (if there is an equivalent operator). Also, could you add to the draft that any numeric type will do? \$\endgroup\$
    – user
    Feb 8, 2021 at 19:57
  • 1
    \$\begingroup\$ Are we allowed to use the basic operators in each others' definitions, e.g. plus(x,y)=x--y? \$\endgroup\$
    – Adám
    Feb 8, 2021 at 20:15
  • \$\begingroup\$ @Adám Ideally, the operator will behave the same as the builtin, but if that's not possible due to restrictions in the language, that's ok. Also, no _plus_ wouln't be allowed. That is still using the basic operator of addition. \$\endgroup\$
    – binarycat
    Feb 8, 2021 at 20:19
  • \$\begingroup\$ @binarycat OK, that's useful information (i.e. it should be included in the challenge specification). \$\endgroup\$
    – Adám
    Feb 8, 2021 at 20:29
  • \$\begingroup\$ Are we allowed to use the corresponding operations in a different language than the one we're answering in, i.e. to call out? \$\endgroup\$
    – Adám
    Feb 8, 2021 at 20:31
  • \$\begingroup\$ Pro-tip: I note that you have never posted any challenges. restricted-source challenges are notoriously difficult to get right. I'm not saying this is a bad challenge, not at all, but I highly recommend posting a few well-received standard code-golf challenges before attempting a restricted-source one. \$\endgroup\$
    – Adám
    Feb 8, 2021 at 20:33
  • \$\begingroup\$ @Adám the post has been updated to reflect the fact that the answer is no \$\endgroup\$
    – binarycat
    Feb 8, 2021 at 20:34
  • \$\begingroup\$ @Adám It's really not restricted source, just the "no using a builtin that does exactly what the challange says" loophole. \$\endgroup\$
    – binarycat
    Feb 8, 2021 at 20:36
  • 5
    \$\begingroup\$ This is a textbook example of a "do X without Y" challenge and simply isn't considered interesting on this site. \$\endgroup\$
    – Beefster
    Feb 8, 2021 at 20:48
  • 2
    \$\begingroup\$ @binarycat You seem very convinced that this isn't do-X-without-Y. I'd be very interested in hearing why you think so, especially considering that your text literally says "Define [=do] the basic operators (+, -, *, /) [=X] without using them directly [=Y]." \$\endgroup\$
    – Adám
    Feb 8, 2021 at 21:47
  • 1
    \$\begingroup\$ Essentially a duplicate of Add without addition, as the same techniques can be used to define all four operators. \$\endgroup\$
    – Bubbler
    Feb 8, 2021 at 22:54
-3
\$\begingroup\$

Enumerate all possible IPv4 addresses

Title might make the challenge hard, but it's easy.

You have to print all the possible IPv4 addresses from 0.0.0.0 to 255.255.255.255

Standard loopholes apply, no internet usage for this

Tags: ,,

\$\endgroup\$
2
-3
\$\begingroup\$

Google search

Challenge is very simple, you have to get a string as input and then launch the default web browser, and search for that string in Google.

Input string will have only characters a-zA-Z

Google search URL is google.com/search?q=querystring

Standard loopholes apply, Internet connection allowed, but only to google.com domain

Tags: ,


Author note: challenge title sucks, please improve it!

\$\endgroup\$
7
  • 1
    \$\begingroup\$ I suspect on many (older) systems the notion of a default browser does not exist. In addition, I think there are many other escape characters. Of course, you could allow the answers to fail - but without the encoding requirements this is probably a dupe of some old basic internet challenge. \$\endgroup\$ Feb 20, 2021 at 18:08
  • 1
    \$\begingroup\$ Also, %20 is not the right escape sequence for a + \$\endgroup\$
    – pxeger
    Feb 20, 2021 at 19:00
  • \$\begingroup\$ @FryAmTheEggman The first one is not really an issue, if the programming language doesn't have the thing then it can't have an answer. \$\endgroup\$
    – DELETE_ME
    Feb 24, 2021 at 3:55
  • \$\begingroup\$ For the challenge: it's best to specify which characters might appear in the input. \$\endgroup\$
    – DELETE_ME
    Feb 24, 2021 at 3:56
  • \$\begingroup\$ @FryAmTheEggman,user202729 edited, now input will only have a-zA-Z \$\endgroup\$
    – Wasif
    Feb 24, 2021 at 17:30
  • \$\begingroup\$ Most languages can't launch a browser. Also, there are dozens like this already, \$\endgroup\$
    – emanresu A
    Feb 25, 2021 at 4:04
  • \$\begingroup\$ Sorry, I missed your edit earlier. I think if you want to go ahead with this you need to define what the "default browser" is, and what to do if it isn't present. Depending on how you define it, this may not be a dupe, but I imagine you will have some trouble with different systems defining it differently. \$\endgroup\$ Mar 3, 2021 at 19:03
-3
\$\begingroup\$

Reverse error quine

,

Based on this

Write a quine that prints it own source code in reverse, but to STDERR.

Penalties

  • +200 using other files I.E. reverse.txt
  • +150 internet usage
  • +100 reading own source code

Rules

  • Minimum length of source is 2 bytes

  • Standard loopholes apply

, shortest code wins

\$\endgroup\$
6
  • 3
    \$\begingroup\$ As a reverse error quine, it will probably just be basically the same as a plain error quine, but with the creative solutions using syntax errors not valid. The things with penalties should probablly just be disallowed or someone will just do sh, 6 bytes + 20 penalty, tac $0. You can also add [tag:quine] \$\endgroup\$
    – Wezl
    Feb 24, 2021 at 17:45
  • 4
    \$\begingroup\$ But thanks for using the sandbox! \$\endgroup\$
    – Wezl
    Feb 24, 2021 at 17:46
  • \$\begingroup\$ Why the rule No palindromes? Aside from Stack Cats, there are pretty much no languages that print a palindromic error. \$\endgroup\$
    – emanresu A
    Feb 25, 2021 at 4:07
  • \$\begingroup\$ Changed the rules: 1) Increased penalty (None will not now dare to read own source code) 2) Palindromes allowed 3) Added the tag quine \$\endgroup\$
    – user101036
    Feb 25, 2021 at 7:45
  • \$\begingroup\$ Penalty in code golf is discouraged by itself, just like bonuses. Accessing the internet/other files/the source file itself to get the desired output is already considered a standard loophole, so you should just say they're not allowed, and remove the penalties altogether. \$\endgroup\$
    – Bubbler
    Feb 25, 2021 at 8:06
  • \$\begingroup\$ Also, another thing to avoid: using old challenges as a model. \$\endgroup\$
    – Bubbler
    Feb 25, 2021 at 8:11
-3
\$\begingroup\$

“Simple” Programming Homework


Your friend has been caught sleeping in class again! As punishment, his computer science teacher has assigned him homework, knowing that he will not be able to solve it due to not having paid any attention.

The assignment seems deceiving simple at first; all that is required is to output the string:

John Doe

Unfortunately, the teacher is intent on making the simple assignment much more difficult. Since your friend was not listening when the teacher explained the concept of strings and numbers, the teacher forbids him from using any number character (0-9) or the quotes (", ', `).

Can you help your friend solve this problem with the shortest code possible, and save his computer science grade in the process?

Try to find the shortest code in each language!

Note: it is encouraged to try to solve this problem in languages where string/character literals exist but cannot be used due to the restrictions (most mainstream languages are like this, e.g. C++).

\$\endgroup\$
5
  • \$\begingroup\$ Better leaving it here for a while (and ask in chat often) to see if people mostly agree that what "literal" means is obvious. (see, bash have echo John Doe and BF has +++something+++., and most languages doesn't have a formal specification to define English names for the components of the language) \$\endgroup\$
    – DELETE_ME
    Feb 27, 2021 at 12:18
  • \$\begingroup\$ Other than that (huge) point it is clear enough. [please review other sandbox posts] \$\endgroup\$
    – DELETE_ME
    Feb 27, 2021 at 12:19
  • \$\begingroup\$ @user202729 Ask which chat? \$\endgroup\$
    – user101295
    Feb 27, 2021 at 22:14
  • \$\begingroup\$ @user202729 I thought this would be interesting for most languages that do use quotes for string and character literals like C, but I do see how it might be too easy in some languages. \$\endgroup\$
    – user101295
    Feb 27, 2021 at 22:54
  • 1
    \$\begingroup\$ chat.stackexchange.com/rooms/240/the-nineteenth-byte \$\endgroup\$
    – DELETE_ME
    Feb 28, 2021 at 6:13
-3
\$\begingroup\$

Geometry Dash Clone in a weird Way?

Try to make a functional clone of Geometry Dash in the shortest time.

How GD Works.

  • You have a cube. In the clone, it can be as small as you want, but no bigger than 2x2.
  • You have to jump over spikes. The key to do this is (preferably) the up arrow key, but can be any option you want (simply tell me in your answer what key is it.
  • If you touch the spikes, the screen says "Game Over." and exits in 3 seconds.
  • There are blocks! You can jump on them, but touching them from the left side results in the same thing that happens if you touch the spikes.
  • A song plays in the background. How you do this is up to you.

Rules:

  1. 3 Extra points for working forwards and backwards.
  2. Must have the letter a 5-7 times and no q at all!
  3. Allows ascii art type output and text input (standard input)!

Sandbox Questions

How is this even going to work?

\$\endgroup\$
3
  • \$\begingroup\$ Welcome to codegolf! I don’t really recommand to compare how fast submit time after question release, since there maybe someone out there already holding an answer, and it also really timezone dependent. \$\endgroup\$
    – okie
    Dec 2, 2021 at 5:41
  • \$\begingroup\$ But it could be one of the code-golf problem, and allowing ascii art type output and text input (standard input) could allow more language to compete. \$\endgroup\$
    – okie
    Dec 2, 2021 at 5:42
  • \$\begingroup\$ also the flawless limit is kinda weird, extra point for certain language is not suggested, if you still want to give extra point, you may want to say how much extra point is. \$\endgroup\$
    – okie
    Dec 2, 2021 at 5:48
-3
\$\begingroup\$

Get Floor of N ^ (3 / 2)

Your task is very simple:

Get The Floor of N ^ (3 / 2)

OEIS

This is Code Golf so the winner wins

Test Cases

0 => 0
1 => 1
2 => 2
3 => 5
4 => 8
5 => 11
10 => 31
13 => 46
27 => 140
33 => 189
49 => 343
68 => 560
89 => 839
98 => 970
100 => 1000
136 => 1586
256 => 4096
500 => 11180
147385 => 56582212

Meta

  • Any feedback?
\$\endgroup\$
-3
\$\begingroup\$

Who Loses The number guessing game?

You are playing a number guessing game. You know everyone's guesses, and who won, and want to figure out who was in last place.

Task

Your task is to take a dictionary of guesses as input, along with the name of the winner. You should then return the name of the player whose guess was the farthest from the winner's, or if there are multiple, the lowest.

A input:

[{"Joe": 800, "Mama": 1000, "Biden": 1200}, "Joe"]

Means that the aproxximate score winner is Joe, The next is Mama, Mama is greater than Joe and Mama is greater than Biden.

So the loser is Biden.

All guesses are guaranteed to be unique

Test cases

[{"A": 100, "B": 200, "C": 300}, "A"] => "C"
[{"Hello": 200, "World": 201}, "World"] => "Hello"
[{"Blah": 210, "Bruh": 984, "Boo": 314}, "Boo"] => "Bruh"
[{"A": 6, "B": 7, "C": 666, "D": 1000}, "C"] => "A"
[{"AC": 100, "BE": 200, "CE": 300}, "B"] => "CE"

Meta

  • Any feedback?

  • Dupe?

\$\endgroup\$
1
  • \$\begingroup\$ What's the point of having this weird input format? Why not just take and return indices? \$\endgroup\$
    – ophact
    Jan 23, 2022 at 10:36
-3
\$\begingroup\$

Convert decimal to unary in fewest regex codes

Your task is to Convert decimal to undary in fewest regex codes

Every regex code is substitution mode.

The regex code counts the regex code, without test string and Substitution code

A example

^2, |11
^3, |111
^4, |1111
...
\|, <empty>

This scores infinity, But don't try this.

Rules

  • Your score is always non-infinity

  • Any flavor is allowed.

  • Your score is the number of regex codes

  • every length of regex code is non-infinite

Meta

  • Any feedback?
\$\endgroup\$
1
  • 2
    \$\begingroup\$ Can you add an explanation of what exactly a "regex code" is? \$\endgroup\$
    – AnttiP
    Jan 23, 2022 at 17:30
-3
\$\begingroup\$

Nth Eights Challenge

Inputs:

There are 2 inputs: The amount of eights to be used in the calculation, and the number to solve for.

What to solve:

The program needs to insert operators in between each eight, so when the newly created equation is calculated, the answer is the number that was trying to be solved for. When the equation is calculated, there is no operator priority.

Rules:

The only operators allowed are:

+
-
*
/
(And parentheses)

You may insert multiple operators between each number. No extra numbers are allowed. There must be an operator inserted in between each 8. The answer must be displayed when the program finishes.

Examples:

#User inputs
Amount of eights: 4
Solve for: 15

#Answer
8+8-8/8
#User inputs
Amount of eights: 4
Solve for: 10

#Answer
(8+8)/8+8

Winning Criteria:

The winning criteria is for the program written in the least amount of characters.

\$\endgroup\$
3
  • \$\begingroup\$ 0. What is winning criteria for this question? Code-golf or fastest code? 1. What operators are allowed? May I insert multiple operators between two 8s or may concatenation two 8s without any operator? 2. Is operator priority considered? 3. How fast should it be? Define by time usage on specified (batch of) testcases? Or defined by algorithm time complexity? 4. Language specified challenges are generally unwelcome on this site. \$\endgroup\$
    – tsh
    Jan 27, 2022 at 8:56
  • \$\begingroup\$ Related, related. \$\endgroup\$
    – Dingus
    Jan 29, 2022 at 1:35
  • \$\begingroup\$ Do you mean "characters" or "bytes"? \$\endgroup\$
    – ophact
    Jan 31, 2022 at 12:46
-3
\$\begingroup\$

Get the Nth line

Challenge

Let's have a file f and a number n. Your task is to get the nth line from the file.

Constrains

  • file f exists and has at least n lines
  • you can index lines from 0 or 1, whichever you prefer

Example

  • input: n = 2 (indexing from 1) and content of file f is:
foo
bar
baz
  • output: bar

Rules

\$\endgroup\$
2
  • 2
    \$\begingroup\$ I thought the entire point of this sandbox was to get feedback. Down-votes without any comment is the complete opposite. \$\endgroup\$
    – matusf
    Feb 18, 2022 at 15:28
  • 1
    \$\begingroup\$ I think the downvotes here are just because it's not a very interesting challenge. There are no comments because there's nothing actually wrong with your post, so no feedback to really give, but people just don't think it's interesting for code-golf. You could post it and I don't think it would get closed or anything, but it wouldn't get many upvotes. Thank you for using the sandbox nonetheless. \$\endgroup\$
    – pxeger
    Feb 19, 2022 at 9:35
-3
\$\begingroup\$

Knight mover

Your task is to move a chess knight between the points B and E.

A chess knight moves in an L shaped pattern, like so:

.X.X.
X...X
..B..
X...X
.X.X.

The Xs mark where the knight in position B can move.

There may be other chess pieces on the board, blocking the knight's movement, but for clarity, you will only be notified of where you cannot go by # characters. You cannot land on these marked spaces, but you can go over them. You also cannot go outside of the board.

Your goal is to find how many turns N are needed to go from B to E, or return -1 if it can't be done.

Input & Output

  • You are given 2 integers W and H giving the width and height of the board
  • For the next H lines, you are given a row of the board, containing the characters B, E, . and #
  • You are allowed to take in the input as a WxH board as a list of strings or a character matrix

Test case

3 2
..E
B..
->
1


5 5
B...E
..#..
.....
.....
.....
->
4


7 5
B..###.
####.##
...###E
..#.#.#
.#..#..
->
4


8 8
....#...
....##..
..E..#..
#...##..
.###....
........
........
.....B..
->
6

This is code-golf, so shortest code wins!

Credits to this puzzle

\$\endgroup\$
-3
\$\begingroup\$

Game of GO

Go is an abstract strategy board game for two players, in which the aim is to surround more territory than the opponent.

Given a board (where some stones are already added) and a list of moves to be executed next, check whether the moves are valid and (if they are valid) execute them.

After executing all moves in the list the expected output is either not valid if at least one of the moves is invalid, or the new state of the board after all moves were executed.

Rules of Go:

  • Two players place stones of their color (by turns)
  • If a stone is completely surrounded by stones of the other player (or by the edge of the field) this stone is beaten and is removed from the board
  • If stones of the same color are placed next to each other they build a group
  • If the group is completely surrounded by stones of the other player (or by the edge of the fields) this group is beaten and all of its stones are removed from the board
  • A stone can be placed on every free field on the board except for:

A position in which it would be completely surrounded by the stones of the other player (no suicidal moves allowed). Except this move beats some other stones which leads to it not being surrounded anymore

A position that would create the same board that was there before the other player made his move (to prevent an infinite loop of killing stones) which is named KO-rule (see a test case for an example)

  • Points (which are not important for this puzzle) are made by empty fields that are surrounded by the stones of a player or by enemy stones that are beaten

For a more detailed description please visit here

Input & Output

  • You are first given an integer S for the size of the field (the field is a square of S×S)
  • You are then given an integer M for the number of moves that are to be made on the board
  • You are then given a line of the board where . is an empty field, B is a field with a black stone and W is a field with a white stone on it (each line contains S characters) for the next S lines
  • You are then given a move that is described by the player color, and the position (separated by a space character)
  • Output the expected output, else output any character you want
  • You are allowed to output the board as a matrix/list
  • You may assume the initial board state in the input is always valid
  • You are allowed to take in the input as a list/array of lines and moves

Testcases

5
5
.....
.....
.....
.....
.....
B 2 2
W 2 3
B 3 2
W 3 4
B 4 3
->
.....
.....
..BW.
..B.W
...B.


5
7
BB...
B....
.....
...W.
.....
B 3 2
W 0 2
B 3 4
W 2 0
B 2 3
W 1 1
B 4 3
->
..W..
.W...
W..B.
..B.B
...B.


5
1
.....
.....
..B..
.....
.....
B 2 2
->
0


5
5
.BW..
BW...
.W...
.....
.....
B 3 4
W 4 4
B 3 3
W 2 0
B 0 0
->
0


5
3
..B..
.B.B.
.WBW.
.BW..
.....
B 3 3
W 1 2
B 2 2
->
0


5
7
.B...
BW...
WB..W
...W.
...BW
B 3 4
W 0 2
B 0 3
W 0 0
B 1 2
W 0 1
B 1 0
->
...B.
B.B..
WB..W
...WB
...B.

This is code-golf, so shortest code wins!

Credits to this puzzle

\$\endgroup\$
-3
\$\begingroup\$

Beaker drawing

Your task is to output the following beaker with the volume n:

_
 %      %
%       %
%       %
%       %
%       %
%%%%%%%%%

You are the fill n spaces of the beaker above, so n=5 looks like this

_
 %      %
%       %
%       %
%       %
%-----  %
%%%%%%%%%

Even though this defies the law of physics, you are to output the beaker with the liquid of n volume. The volume of the beaker is 35. The first 4 layers have a volume of 7 and the top has a layer of 6, and the _ represents an additional volume of 1 if the beaker overspills.

Test cases

34
->
_
 %------%
%-------%
%-------%
%-------%
%-------%
%%%%%%%%%

35
->
-
 %------%
%-------%
%-------%
%-------%
%-------%
%%%%%%%%%
(Note the `_` becomes a `-`)

15
->
_
 %      %
%       %
%-      %
%-------%
%-------%
%%%%%%%%%

You may assume n is positive (can be 0)

You may assume the beaker can overspill

You may perform the "flood fill" from left to right bottom to top or right to left bottom to top.

This is code-golf, so shortest code wins!

\$\endgroup\$
-3
\$\begingroup\$

Play an audio file

Challenge

Your challenge is simple: play an audio file at a given path. Your program will take the file path as input and will play it once and quit.

To make this harder, however, you are not allowed to use external libraries, but modules that are part of your language's standard library (such as ctypes below) are allowed.

Rules

  • Standard loopholes are forbidden.
  • You may assume (a) specific operating system(s) and/or (a) specific file format(s).
  • You may assume an absolute path.
  • You do not have to hear the sound every time; you are not expected to unmute muted speakers, and you can play through whichever audio device is the most convenient. However, it must be possible to hear it every time you run it with certain settings. A window such as Control Panel -> Sound -> Playback on Windows must always be able to "show" the sound being played under at least one audio device. You are allowed to play the file under a different device each run.
  • Your program must be able to play at least one of the audio file formats listed on Wikipedia. Other formats are allowed, as long as one of the formats listed there is supported.
  • Outputting any content to any stream, file, etc. is allowed, but the sound must be played.
  • Please explain your answer. This is not necessary, but it makes it easier for others to understand.
  • Languages newer than the question are allowed. This means you could create your own language where it would be trivial to do this, but don't expect any upvotes.
  • This is , so shortest code in bytes wins!

Reference implementaion (ungolfed, Python 3, Windows only, .wav only)

# -*- coding: utf_8 -*-

from ctypes import windll

winmm = windll.winmm
audio_file = input('Audio file path: ').encode('utf_8')

winmm.PlaySound(audio_file, 0, 131072)

Golfed reference implementation

import ctypes;ctypes.windll.winmm.PlaySoundW(input(),0,131072)
\$\endgroup\$
6
  • \$\begingroup\$ "To make this harder, however, you are not allowed to use external libraries."...and then you use a library in the reference implementation? \$\endgroup\$ Feb 25, 2022 at 19:29
  • \$\begingroup\$ Does "external libraries" mean libraries not coming with the standard library of the language of choice, or all libraries for that language? \$\endgroup\$
    – Ginger
    Feb 25, 2022 at 19:34
  • \$\begingroup\$ I said external libraries, not libraries in general. ctypes is built-in, so it's not an external library. \$\endgroup\$
    – Makonede
    Feb 25, 2022 at 19:35
  • \$\begingroup\$ @Makonede But winmm is not built-in. \$\endgroup\$
    – wizzwizz4
    Feb 26, 2022 at 0:51
  • \$\begingroup\$ @wizzwizz4 It is in Windows. \$\endgroup\$
    – Makonede
    Feb 26, 2022 at 1:20
  • \$\begingroup\$ @Makonede “External libraries” is unclear, then. External to what? Can I make raw calls to the hardware interface, and say that those particular drivers are part of my operating system and so not external? etc, etc.. We already have rules and conventions about all of this; trying to forbid “external libraries” won't make it more fun. \$\endgroup\$
    – wizzwizz4
    Feb 26, 2022 at 1:28
-3
\$\begingroup\$

Visualize tag progress

Task is pretty simple. Given non-negative positive integers 0 ≤ s ≤ 1000 and 0 ≤ a ≤ 200, your code should draw following progress bars.

Examples

When s ≤ 100 or a ≤ 20:

Input:15 12
Output: 
15/100 score
++++++------------------------------------
12/20 answers
+++++++++++++++++++++++++-----------------

Input:3 1
Output: 
3/100 score
+-----------------------------------------
1/20 answers
------------------------------------------
  
Input:85 35
Output: 
85/100 score
+++++++++++++++++++++++++++++++++++-------
35/20 answers
++++++++++++++++++++++++++++++++++++++++++

When (s > 100 and a > 20) and (s ≤ 400 or a ≤ 80):

Input:156 43
Output: 
156/400 score
++++++++++++++++--------------------------
43/80 answers
++++++++++++++++++++++--------------------
  
Input:666 66
Output: 
666/400 score
++++++++++++++++++++++++++++++++++++++++++
66/80 answers
++++++++++++++++++++++++++++++++++--------

When (s > 400 and a > 80) and (s ≤ 1000 and a ≤ 200):

Input:999 85
Output: 
999/1000 score
+++++++++++++++++++++++++++++++++++++++++-
85/200 answers
+++++++++++++++++-------------------------

Input:666 194
Output: 
666/1000 score
+++++++++++++++++++++++++++---------------
194/200 answers
++++++++++++++++++++++++++++++++++++++++--

The number of +'s in each bar is equal to the value of a or s divided by its max value (max values for s are 100, 400, 1000 and for a are 20, 80, 100, the choice of max values ​​depends on the ranges in which the values ​​of a and s fall.), multiplied by 42 and rounded down. This number cannot be more than 42.
The number of -'s is equal to 42 minus the number of +'s.

End etc. Trailing spaces are allowed. Additional newlines are not allowed.

This is a code-golf challenge so the shortest solution wins.

Meta

I realized that I myself got confused in my task :) ... so this task will be in completion until this text is deleted.

\$\endgroup\$
3
  • \$\begingroup\$ "progress bars are built according to the same rules" - what are those rules? Please describe them, so that we don't need to infer them from examples. \$\endgroup\$
    – pajonk
    Mar 2, 2022 at 7:14
  • \$\begingroup\$ Why should we have to "output nothing" when s>1000 and a>100? The challenge would, in my opinion, be much better if we were allowed to assume that s<=1000 and a<=100. \$\endgroup\$
    – ophact
    Mar 2, 2022 at 9:12
  • \$\begingroup\$ Please, describe the rules governing drawing the bars. Also, "s = 666 and a = 66" appears twice with two different outputs. \$\endgroup\$
    – pajonk
    Mar 3, 2022 at 7:32

You must log in to answer this question.

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