Skip to main content
We’ve updated our Terms of Service. A new AI Addendum clarifies how Stack Overflow utilizes AI interactions.
Code Golf

You are not logged in. Your edit will be placed in a queue until it is peer reviewed.

We welcome edits that make the post easier to understand and more valuable for readers. Because community members review edits, please try to make the post substantially better than how you found it, for example, by fixing grammar or adding additional resources and hyperlinks.

Required fields*

Required fields*

Create a bingo card generator

Bingo

Bingo is a numbers game where players match randomly drawn numbers to the numbers on their cards. Each bingo card is a square grid with 25 spaces, and the columns of the grid are labeled with letters such as "B", "I", "N", "G", "O". The letters help to identify the number range in each column, for example, the "B" column may contain numbers 1 to 15.

One of the spaces in the middle of the grid is often a "free" space, and is marked as such. To play the game, each player is given a bingo card with numbers on it. A caller then draws numbers randomly and announces them, and players mark the corresponding numbers on their cards. The first player to match a pre-determined pattern of marked numbers, such as a straight line, all four corners, or a full card, calls out "Bingo!" to win the game. The game continues until one player wins, or multiple players win on the same round. [1]


Challenge

Create a set of n bingo cards that are printed / outputted in sequence separated by one or two empty lines. The center field should be marked as free.

The output should be a 5x5 grid where columns are either separated by a single space, a tab or the grid should be fixed width, and the lines are separated by a single new line.

The randomness must be uniform, i.e. all possible permutations and combinations should be equally likely to occur. All numbers must be unique.

The numbers:

B = 1 - 15
I = 16 - 30
N = 31 - 45
G = 46 - 60
O = 61 - 75

The number n must be taken as input.

Example output for n = 3:

B I N G O
1 16 31 46 61
2 17 32 47 62
3 18 free 48 63
4 19 34 49 64
5 20 35 50 65
B I N G O
6 30 40 53 64
5 20 35 50 70
4 25 free 51 69
7 22 32 52 68
11 23 38 49 67
B I N G O
10 25 40 55 70
11 26 41 56 71
12 27 free 57 73
13 28 43 58 73
14 29 44 59 74

Yes, those were definitely randomly created.


This challenge is based on the fact that I recently had to create 100 Bingo cards. It turned out that this part of the challenge was the easy one. Making it pretty, printable and presentable was the time consuming part.

[1] https://chat.openai.com/chat

Answer*

Draft saved
Draft discarded
Cancel
3
  • \$\begingroup\$ it looks like you don't need to clear the array at all, because you only check for duplicates in the elements you just set \$\endgroup\$ Commented Feb 1, 2023 at 20:29
  • \$\begingroup\$ 225 bytes \$\endgroup\$ Commented Feb 1, 2023 at 20:32
  • \$\begingroup\$ 221 bytes \$\endgroup\$ Commented Feb 11, 2023 at 17:58

AltStyle によって変換されたページ (->オリジナル) /