https://globebotter.itch.io/quantum-mechanics-experiment-appGraphics 1024,768

' "Quantum Ainsworth experiment in blitzmax version 01" for us simple folk to understand Quantum theory By Mark Ainsworth

'Quatum Math on off phased 1 bit registers with 3 binary bit numbers from 0 to 7

'

'Quantum Math uses numbers that can be on or off BUT you never know if they are on or off, I'm using 3 variables reg1 reg2 & reg3, I am randomly swithching on off

'

'I am flling an array called list[] with the result of the three quantum variables, then I am displaying the last 5000/3 results in sets of 3

'

'In this experiment Im looking for the Quantum wave in the data, it only displays 5000/3 numbers, so it would be hard to see, but this app should give you enough to create your own experimnent

Global dataview = 1

'these are the 3 quantum memory banks

Global reg1 = 0

Global reg2 = 0

Global reg3 = 0

'tot can be used when looking a decimal

Global tot = 0

' theses three are the random switches to power the quantum maths

Global qq = 0

Global qq2 = 0

Global qq3 = 0

'just display coordinates

Global x = 0

Global y = 0

'list[] stores the results

Global list[100000001]

'count is just a count of how many results have been generated & tells the loop to display the last 5000 results

Global count = 5000

'while loop

While Not KeyHit(KEY_ESCAPE)

Cls

If KeyHit(KEY_SPACE)

dataview = dataview + 1

If dataview > 1 Then dataview = 0

EndIf

' tot add the quantum binary numbers together into decimal, its not used yet

tot = 0

tot = (reg3 *4) + (reg2 *2) + reg1

'display quantum memory, they are always in a state of on off

DrawText "Press ESCAPE to exit PRESS SPACE to switch data views By Mark Ainsworth",20,20

DrawText "Experimnet to Look for a Quantum Wave in the results",20,50

DrawText "binary Quantum Number "+reg3+" "+reg2+" "+reg1+" in decimal = "+tot,100,100

'the switches to randomly turn the quantum registers on off

qq = Rand(1,2)

qq2 = Rand(1,2)

qq3 = Rand(1,2)

If qq = 1 Then q1()

If qq2 = 1 Then q2()

If qq3 = 1 Then q3()

' store results in list[]

If qq = 1 Or qq2 = 1 Or qq3 = 1

count = count + 3

'list[count] = tot

list[count] = reg1

list[count-1] = reg2

list[count-2] = reg3

EndIf

'loop to display the results

x = 0

y = 0

If dataview = 0

For f = count - 5000 To count - 1

DrawText ""+list[f],(x*10)+121,(y*10)+121

x = x + 1

If x = 80

y = y + 1

x = 0

EndIf

Next

EndIf

If dataview = 1

x = 0

y = 500

For f = count - 500 To count - 1

If list[f] = 1 Then y=y-1

If list[f] = 0 Then y=y+1

Plot x,y

x = x + 1

Next

EndIf

'reset results to start if you generate 100000000 results

If count > (100000000 - 1000)

count = 5000

For d = 0 To 100000000

list[d] = 0

Next

EndIf

Flip

Wend

End

'the three functions to keep the quantum numbers running

Function q1()

reg1 = reg1 + 1

If reg1 > 1 Then reg1= 0

End Function

Function q2()

reg2 = reg2 + 1

If reg2 > 1 Then reg2= 0

End Function

Function q3()

reg3 = reg3 + 1

If reg3 > 1 Then reg3= 0

End Function