Minesweeper

Build image: 
In-game name (NO VISITORS! Must be LEARNER rank or higher!): 
DavidJR
Builder name(s) and current ranks: 
DavidJR: Regular; ubbd8: Regular
Creation location: 
-2828 78 632
Machine Features: 

Most notable features:
Compact Cell Size - Each cell is 8 tall, 8 wide, and 19 deep (not including buttons)
Fast zero spread - Instead of using the preexisting zero spread logic to spread 0's, a separate 3 way AND gate was added to dramatically increase the speed of the 0 spread.
Fast bomb generation - Due to the size of the minesweeper grid being 8x8, the randomizer acts quickly when choosing a bomb. Each bomb is generated every ~4 seconds.
Reveal Function - When the game is lost, the entire grid will reveal all numbers and bombs.
Fast Flag - Instead of having the flag go to the back of the decoder, the flag toggle is directly wired to the decoder lines, which is more compact and faster.
Defect-Free Reset - When the minesweeper is reset, the 7-segment display will not show any erroneous segment pulses.
New, 1.16 instant, infinitely expandable AND gate - In the win detection circuit, the use of the new 1.16 wall behavior yields an AND gate which is infinitely expandable upwards, as well as having instant signal downwards. Circuit Diagram:
Lime (Front) - Cell activation/ 'safe' button. This circuit will display the memory of the cell on the 7-segment display, as well as locking the red circuit, and triggering the circuits for (if applicable) zero spread, win detection, and loss detection.
Red (Front) - Flag button. This circuit triggers the flag, or (F) to appear on the 7-segment display. The secondary functions of this circuit are to lock the green button while the flag is on and to prevent the zero spread from passing through the cell if the flag is on.
Yellow - Memory. This circuit contains a signal strength memory cell to store the value of the cell (0-8,bomb), and only releases the memory into the decoder after the green button has been pressed. The memory begins at 10 SS, and ticks down every time a bomb is generated in the vicinity of that cell. The value of 0 SS represents a bomb.
Orange - Decoder. After the green button is pressed, the memory from the yellow circuit flows into the back of the decoder which decodes the signal strength into 7 segments
Brown - Decoder lines/display. This circuit takes the information from the decoder and sends it to the 7 segments of the display.
Magenta - Reset. This line will reset everything inside the cell, as well as disabling the zero spread network, and resetting all of the I/O.
White - Zero spread. This circuit has one output and one input from the zero spread grid. The output will only turn on if the cell memory is 10 SS (0) and the green button has been pressed. This spreads the zero throughout the grid. The zero spread will stop only on the condition that: the cell memory is not zero or if the flag is activated. The input from the grid will cause the green button to be artificially 'pressed'.
Black - Bomb spread. Every time a bomb is generated, the bomb spread grid will turn on around that bomb. This causes all of the cells around the bomb to tick down in memory. (10SS - 9SS - etc). This is the mechanism that generates all of the numbers in the game.
Green - Bomb set/randomizers. These green lines in the back of the machine will take the SS from the randomizers and decode it into a specific cell. They then output into the bomb spread grid and into the memory of the cell. The randomizers themselves work in two parts. The main randomizer picks the row, and each row has an additional randomizer that picks the cell. Each randomizer is made so that a bomb cannot be generated on the same cell twice, and the main randomizer will only pick a certain row up to 8 times.
Pink - Reveal. These lines in the back will only trigger once the game is lost. It will reveal the entire board by hard-powering the zero spread grid.
Lime (Back) - Win detection. This circuit is an and gate for the entire board. Each input to the and gate is if the cell is 'won'. The cell can be won only if the cell is a bomb and the button has not been pressed, or if the memory of the cell is not 0 SS (bomb) and the button has been pressed, essentially it XORs the bomb and the green button.
Red (Back) - Lose detection. This circuit will only trigger if the memory of the cell is 0 SS (bomb), and the green button has been pressed. It will send a pulse down the lines which will cause the loose light to activate.
Cyan - Difficulty setting and play button. This circuit stores the memory of the difficulty and will cause the main randomizer to fire a specific amount of times in regards to the difficulty chosen. It also will lock the difficulty buttons and play button once the play button has been pressed. It will also lock the play button if the difficulty is set to 0.

How To Use: 

First, choose the difficulty setting with the '+' and '-' buttons in the bottom left cell. Once the desired difficulty has been reached, press the play button. The game will then begin to generate bombs. Each single chime is a bomb that has been generated. The difficulty meter will then act as a loading bar, telling you how many bombs are left to generate. Once it hits zero, you will hear a longer chime, indicating that you can start to play the game. The green button in each cell is used to check the cell, or deem it 'safe'. The red button is for flagging cells that may be bombs. These flags are toggleable. 0 is represented by a -, F for flag, and b for bomb. Once finished, the reset button will clear the entire board for a new game. Wait until the win/lose lights turn off before hitting play again.

Request status: 
Approved