Brain_Fuck/pong.bf

128 lines
3.3 KiB
Brainfuck

>
+>
+++++>
>+++++[<++++++>-]
>++++++++[<++++++++>-]
>>+>+>+[+>++[-<+++>]<<]>-[-<+<+>>]
>+>+>+++[+>+[-<++++>]<<]>>
>
>+++++++++[<+++++++++++++>-]
>+>+>+>+[++>[-<++++>]<<]>[-<+>]
++++[>++++<-]>[<++++++++>-]<+>
>+>+>+>+[++>+[-<+++>]<<]>[-<+>]
>
<<<<.>.
<<<<<<<<<<.<<....>.>>>.<<<<.>>>>>>>>>>>>>.<<<<<<<<<<<<<...
>>>>----------
<<.<<.>>.<<.>>>>>>.<<<<<<.>>.<<.>>>.>>>>>>>>>>...
<<<<<<<<<<<.<.>>>.<<<<.>>>>>.<<<<<.>>.<<.>>>.>>>>>>>>>>...
<<<<<<<<<<<
[
.>>>>>.>.>.>.<<<<<<<<<<.>>.<<.>>.<<...
>>>>>>>>>>>>>>[->>+>+<<<]>>>[-<<<+>>>]+<<<<<<<<<-----[->>>>>>>>+<<<<<<<<]>>>>>>>>+++[>-]>
[<<<<<<<<+<<[->>-<<]>>[-<<+>>]<+<[>>>>>>>>>+++++<<<<<<<<-]>
[>>>>>>>>-----<<<<<<<<->]>>>>>>>>->]
<<---[-<<<<<<<<+>>>>>>>>]
<[->+<<<<<<+>>>>>]>[-<+>]<<<<<<-----
[->>>>>>+>>+<<<<<<<<]>>>>>>>+
>--[<->[-]]
<[-<<++++++++++>>]
<[-<<<<<<+>>>>>>]
<<<<<<[->>>>>>+>>+<<<<<<<<]>>>>>>>+
>+++++++++++++++++++[<->[-]]
<[-<<---------->>]
<[-<<<<<<+>>>>>>]
start boundaries check
<<<<<<<<<[->>+>>>>>>>>+<<<<<<<<<<]>>[-<<+>>]
<[->+>>>>>>>>>>>>+<<<<<<<<<<<<<]>[-<+>]
>>>>>>>>+>>>>[->+>+<<]>[-<<<+>>>]
check left boundary
<<+<-------------[>-]>
[
-
copy ball_y to mem3 and paddle_left_y to mem4
<<<<<<<<<<[-<+>>>>>>>>>>+<<<<<<<<<]<[->+<]
<<<[->>>+>>>>>>>>>>>+<<<<<<<<<<<<<<]>>>[-<<<+>>>]
>>>>>>>>>>
if mem3 ge mem4
[->-[>]<<]< (mem3 ends up = mem4 minus men3)
[
then if mem3 ge 31
>>>>+++++[<++++++>-]<+
<[->-[>]<<]<
[then just clean up ->]<
[else set mem0=1 ><<+>-]>
]
>>[-]<<<[-]+<
if mem0 eq 1 (ball hit left paddle)
[
then change direction of the ball
<<++++++++++>>-
>-]>
[< else reset ball_y
>>[-]>>[-]<<<<
<<<<<<[-]<<[-]
+>+++[++>++[-<++++++>]<<]> 117
[->+>+<<]
<++++++++++[->++++<]>+>[-<+>] 158
request a random char (ff 03 01 01 ff 01)
>>.>++.>>[-]+..<<<.>--.
>>->[-]>+>[-]>+>[-]>+>>
read random char (mem6) and set mem1 and mem2 to (mem6 % 4) (in binary)
,[
-
<<<<
[-[<[-<->]<[->+<]+>>-->]>>[-]]<[<]>[-]<<++
>>+>>
]<<-<<-<<->>
set the ball (x and y) directions based on mem1 and mem2
[-<<<++++++++++>>>]<[-<<<++++++++++>>>]
>
]
>>>
]
<<[-]<<[-]<
>>>>>>>[-<<<<<<<+>>>>>>>]
<<<<<<+<-----------------------------------------------[>-]>
[<<<---------->>>->]<<[-]
>[-]>[-]>[-]
end boundaries check
<<<<<<<<<<<<<<<<<.>>>>>.>.>.>.<<<<<<<<<<.>>.<<.>>.>>>>>>>>>>>..<<<<<<<<<<<<<.
move right paddle (computer)
>>>>>>>>>>>>>>>>+<<[
<<<<<<<<<<<<.<.>>>.<<<<.>>>>>.<<<<<.>>.<<.>>>.<<<...
>>>>>>>>>>[-<+>>>>>>>>>+<<<<<<<<]<[->+<]
<<<<[->>>>+>>>>>>>>>>+<<<<<<<<<<<<<<]>>>>[-<<<<+>>>>]
>>>>>>>>>>>>+<<+++++++++++++++<[->-[>]<<]>>>
[-
<<<<<<<<<<<<<<<<----->>>>>>>>>>>>>>>
]>
[-
<<<<<<<<<<<<<<<<+++++>>>>>>>>>>>>>>>>
]<<[-]<[-]
<<<<<<<<<<<<<<<<.<.>>>.<<<<.>>>>>.<<<<<.>>.<<.>>>.>>>>>>>>>>...
>>>-<<[>>>+<<<-]
]>>>[<<<+>>>-]<[-]
move left paddle (user input)
<<<<<.>+.-<<<<<<<<<<<.
>>>>>>>>>>>>>>>,
[,>>+>+>+++[>[-<++++++>]<<]
>[-<<->>]<+<
[----[>-]>[>>+++++>>+<<<<->]<[-]]
>[>>>+++++>+<<<<->]<<[-]]
<<<<<.>.
>>>>>>>>>[<<<<<<<<<<<<<<<<<<<.<<.>>.<<.>>>>>>.<<<<<<.>>.<<.>>>.<<<...>>>>>>>>>>>>>>>>>>>>>[-]]
<<[-<<<<<<<<<<<<<->>>>>>>>>>>>+>]
>[-<<<<<<<<<<<<<<+>>>>>>>>>>>>+>>]
<<[<<<<<<<<<<<<<<<<.<<.>>.<<.>>>>>>.<<<<<<.>>.<<.>>>.>>>>>>>>>>...>>>>>[-]]
<<<<<<<<<<<<<<<<.<.>>>.<<<<.>>>>>.<<<<<.>>.<<.>>>.>>>>>>>>>>...
<<<<<<<<<<<
]