Hello
After reading about " Simon Says " projects here in this forum.
I wonder if I can write some codes with a minimal hardware in mind as 08M2 chip and 2 led, and 2 buttons
I know the original game from Hasbro, and Milton & Bradley with 4 buttons, and most the users projects were about this original game.
This is a working version, assembled on the AXE091 from Picaxe, use only 224 bytes.
The sequence lookup is set at 15 (0~14), and can be increase easily.
Also included a basic circuit diagram.
the hardware:
1 x 08M2
1 x Piezo Module 5v
2 x Led (on Board)
2 x Tactile Switches (on Board)
Enjoy the game.
After reading about " Simon Says " projects here in this forum.
I wonder if I can write some codes with a minimal hardware in mind as 08M2 chip and 2 led, and 2 buttons
I know the original game from Hasbro, and Milton & Bradley with 4 buttons, and most the users projects were about this original game.
This is a working version, assembled on the AXE091 from Picaxe, use only 224 bytes.
The sequence lookup is set at 15 (0~14), and can be increase easily.
Also included a basic circuit diagram.
the hardware:
1 x 08M2
1 x Piezo Module 5v
2 x Led (on Board)
2 x Tactile Switches (on Board)
Enjoy the game.
Code:
; Minimal SIMON SAYS , for 08m2 2 led 2 buttons
; project build on AXE091 Dev Board
; Memory used 224 out of 2048 bytes
#picaxe 08M2
#no_data
Symbol k = b0
symbol i = b1
symbol j = b2
symbol sw1=pinc.3
symbol sw2=pinc.4
main:
k=0
; Intro Sound
gosub IntroSound
pause 1000
; Starting loop------------------------
do while k < 15 ;lookup array 1,2 limit 0~14
for i=0 to k
gosub Lookup1 'lookup1 array
pause 800
gosub DisplaySound
next i
; key input ------------------------------
for j=0 to k
do while sw1=0 and sw2=0 ;wait for key
loop
if sw1=1 then
b4=1
elseif sw2=1 then b4=2
endif
gosub Lookup2 'lookup2 array
gosub DisplaySound
;fail section
if b5<>b4 then
gosub FailSound
pause 1000
goto main ; restart
endif
do while sw1=1 or sw2=1 ; wait for key release
loop
next j
inc k
loop
;Win final
high c.1,c.2
gosub IntroSound
low c.1,c.2
pause 200
high c.1,c.2
gosub IntroSound
low c.1,c.2
end
Lookup1:; 0 to 14 simon entry
lookup i,(1,2,1,2,2,1,1,1,2,2,1,2,1,2,2),b5
return
Lookup2:; 0 to 14 key entry
lookup j,(1,2,1,2,2,1,1,1,2,2,1,2,1,2,2),b5
return
DisplaySound:
select case b5
case = 1
sound c.0,(100,10): high c.1 : pause 200
case = 2
sound c.0,(100,10): high c.2 : pause 200
end select
low c.1 ,c.2
return
IntroSound: ; Intro and Win sound
for i=10 to 100 step 10
sound c.0,(i,10): pause 10
next i
return
FailSound:
for i=100 to 10 step -10
sound c.0,(i,10): pause 20
next i
return
[\CODE]
[ATTACH type="full" alt="25495"]25495[/ATTACH]