Fizzbuzz work in progress, at this point we're just printing numbers 1 - 99
This commit is contained in:
parent
9b8971653d
commit
5c87830392
|
@ -0,0 +1,109 @@
|
|||
This program is supposed to end up to be "FizzBuzz" written in Brainfuck
|
||||
|
||||
Print the numbers from 1 to 100 but for multiples of three print "Fizz"
|
||||
instead of the number and for the multiples of five print "Buzz"
|
||||
|
||||
When numbers are both multiples of three and five print "FizzBuzz"
|
||||
|
||||
################################################################################
|
||||
###
|
||||
|
||||
+++++ +++++ c0 : Set up the counter to a value of 10
|
||||
[
|
||||
>> +++++ +++++ c2 : Increment the cell by 10
|
||||
<< - c0 : Decrement the cell by 1
|
||||
]
|
||||
|
||||
At this point cell 2 is 100; datapointer is now at cell 0
|
||||
|
||||
################################################################################
|
||||
###
|
||||
|
||||
+++++ +++++ c0 : Set cell 0 to the ASCII \n character
|
||||
|
||||
> c1
|
||||
+++++ +++++ c1
|
||||
+++++ +++++ c1
|
||||
+++++ +++++ c1
|
||||
++ c1 : Set cell 2 to the ASCII ' ' character
|
||||
|
||||
################################################################################
|
||||
|
||||
################################################################################
|
||||
###
|
||||
>> c3
|
||||
|
||||
+++++ +++++ c3 : Set the value to 10
|
||||
|
||||
[
|
||||
> +++++ c4 : Increment by five
|
||||
< - c3 : Decrement the counter
|
||||
]
|
||||
|
||||
> - c4 : Decrement c4 from 50 for 49 (ascii "1")
|
||||
: this will be used as the offset for
|
||||
: printing
|
||||
|
||||
################################################################################
|
||||
### Start the loop through 1 to 10 and print
|
||||
<<< .. c1 : Jump to cell one to print two leading spaces
|
||||
>>> . c4 : Print '1'
|
||||
|
||||
< +++++ +++ c3 : Set a counter to 8 to get 1 through 9 printed
|
||||
|
||||
[
|
||||
<<< . c0 : Jump to and print cell 0 (\n)
|
||||
> .. c1 : Print two leading spaces
|
||||
>>> + . c4 : Increment cell 4 and print it
|
||||
< - c3 : Decrement cell 3
|
||||
]
|
||||
|
||||
> ----- ---- c4 : Bring cell four back to ascii '0'
|
||||
|
||||
|
||||
<<<< . c0 : Print a newline after the last 9
|
||||
|
||||
|
||||
################################################################################
|
||||
### Start the loop through 100
|
||||
|
||||
>>>>> +++++ +++++ c5 : Set cell five to the ASCII '1'
|
||||
+++++ +++++
|
||||
+++++ +++++
|
||||
+++++ +++++
|
||||
+++++ ++++
|
||||
|
||||
<< c3
|
||||
+++++ +++++ c3 : Pre-seed the counter with 10
|
||||
|
||||
|
||||
[
|
||||
-
|
||||
<<< c0 : Jumping to cell zero just to give myself a clean slate
|
||||
|
||||
|
||||
>>>>>> +++++ +++++ c6 : Set cell 6 to our nested loop counter
|
||||
[
|
||||
- c6 : Decrement counter by one
|
||||
<<<<< . c1 : Print a leading space
|
||||
>>>> c5
|
||||
.
|
||||
> c6
|
||||
|
||||
<< . + c4 : Print our last digit and increment it
|
||||
>> c6
|
||||
|
||||
<<<<<< . c0 : Jump to cell zero to print a newline
|
||||
>>>>>> c6
|
||||
]
|
||||
|
||||
< + c5 : Increment second digit column in c5
|
||||
> c6
|
||||
|
||||
<< ----- ----- c4 : Clear our last digit printer column
|
||||
>>
|
||||
|
||||
<<<<<< c0
|
||||
|
||||
>>> c3
|
||||
]
|
Loading…
Reference in New Issue