Herzlich Willkommen im einzigen (deutschsprachigem) Picaxe-Forum.

Der Ursprung dieses Forum reicht bis in das Jahr 2008 zurück

Hardware

SENSO mit der 14M2 - Simon fragt ...

 von BoomBoomMagic , 28.01.2019 11:50

Habe jetzt mal einen Thread aus einem meiner anderen Bastelseiten portiert.
Vielleicht ist es ja von Interesse :roll:


Als ich wieder einmal so überlegte was man denn noch so schönes mit der Picaxe realisieren könnte ,
und was es denn früher , sprich : so in den 70er / 80er Jahre an elektronische Spielereien gab, kam
ich auf das berühmte Spiel : SENSO der Firma MB




Kurz überlegt , ..... es sollte eigentlich nicht so schwer sein das Spiel umzusetzen ......

Am liebsten wäre mir die 08M als Controller gewesen, aber um nicht zu viel abspecken zu müssen ,
habe ich mich dann am Ende doch für die 14M entschieden.


Wir benötigen wie folgt :

4 x LED ( blau , grün , gelb , rot )
1x Rundenzähler
4x Taster für die 4 Farben
1x Taster für den Start

Das ergibt dann 5x Ausgänge und 5x Eingänge
Da bietet sich die 14M ja förmlich an.



Als Schaltplan sehe das dann wie folgt aus :




Der zugehörige Quellcode wäre dann also wie folgt :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
 

symbol Taster =b0' ( W0 )
symbol Waiting =b1
symbol Zufallszahl =w1' (b2 + b3 )
symbol LED_Nummer =b4' ( W2 )
symbol Position =b5
symbol Wert =b6' ( W3 )
symbol Note =b7
symbol Zaehler =b8' ( W4 )
symbol W =b9
symbol Ww =b10' ( W5 )
symbol Tempo =w6' ( b12 + b13 )
 
goto Neustart
 
Start:
' Geschwindigkeit auf 0.5s
Tempo=500
 
main:
' Rundenzähler um 1 erhöhen
pause 250
pulsout 0,255
Taster=0
Zaehler=1

' Zufallszahlen ermitteln
goto Zufallszahlen_errechnen
los:

' Chip macht die Vorgabe
for W=1 to Zaehler
Position=79+W
peek Position,Wert
goto Play_
weiter:
pause Tempo
next W

' Spieler muss Vorgabe wiederholen
for W=1 to Zaehler
Position=79+W
peek Position,Wert
 
' warten auf Tasterdruck
nochmal:
Taster=pins
if Taster=0 then nochmal

' Tasterpins umrechnen
Taster=Taster+2/2
if Taster=5 then
Taster=4
endif

 
' wenn Spieler falsch gedrückt = Spielende
if Taster<>Wert then Play_Verloren
goto Play_
weiter2:
Taster=0
next W
pause 500

' Vorgaben bis zu 10 pro Durchgang erhöhen
' wenn geschafft = nächste Runde
inc Zaehler
if Zaehler<11 then los

'----------------------------
' nächste Runde
Waiting=24
LED_Nummer=1
 
for Note=1 to 120 step 5
 
sound 5,(Note,4)
high LED_Nummer
pause Waiting
low LED_Nummer

dec Waiting
if LED_Nummer<4 then
inc LED_Nummer
else
LED_Nummer=1
endif

next Note

for b11=1 to 4
let pins=%00011110
pause 10
let pins=0
pause 10
next b11

Tempo=Tempo/2
if Tempo<10 then
Tempo=10
endif

goto main
 
'----------------------------
Play_:
if Wert=1 then
Note=20
endif
if Wert=2 then
Note=38
endif
if Wert=3 then
Note=52
endif
If Wert=4 then
Note=74
endif
high Wert:sound 5,(Note,35):low Wert
pause 10
branch Taster,(weiter,weiter2,weiter2,weiter2,weiter2)
 
'----------------------------
Zufallszahlen_errechnen:
for Position=1 to 10
erneut:
random Zufallszahl
w5=Zufallszahl // 4+1
if b9=w5 then erneut
b9=w5
Wert=79+Position
poke Wert,b9
next Position
goto los
'---------------------------
Play_Verloren:
for Ww=1 to 15
low 2,4: high 1,3
sound 5,(4,6)
low 1,3:high 2,4
sound 5,(1,6)
next Ww
let pins=0
'--------------------------
Neustart:
nochmal2:
Taster=pins
inc Zufallszahl
if Taster<>16 then nochmal2
goto Start
 

 



Weitere Informationen findet man z.B. bei http://de.wikipedia.org/wiki/Senso_%28Spiel%29hierrüber.
Das Spiel muss also am Ende nicht unbedingt die klassische Bauform haben.
Es gilt lediglich 4 farbliche Felder mit zugehörigen Tastern anzubieten.


Eine weitere Spielvariation die mir beim Spielen selbst in den Sinn kam :
1. Runde macht 4 Farbvorgaben
Je weitere Runde werden sowohl Vorgabentempo , als auch Anzahl der
Farbvorgaben erhöht.
Bedeutet :
1. Runde = 4 Farbvorgaben
10. Runde = 13 Farbvorgaben

Die 10. Runde werden wohl recht wenige dadurch erreichen.


Der zugehörige Quellcode wäre dann also wie folgt :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
 

symbol Taster =b0' ( W0 )
symbol Counter =b1
symbol Zufallszahl =w1' (b2 + b3 )
symbol LED_Nummer =b4' ( W2 )
symbol Position =b5
symbol Wert =b6' ( W3 )
symbol Note =b7
symbol Zaehler =b8' ( W4 )
symbol W =b9
symbol Ww =b10' ( W5 )
symbol xxxx =b11
symbol Tempo =w6' ( b12 + b13 )
 
goto Neustart
 
Start:
' Geschwindigkeit auf 0.5s
Tempo=500
Counter=5
 
'#####################################################
 
main:
' Rundenzähler um 1 erhöhen
pause 500
pulsout 0,255
Taster=0
Zaehler=1
inc Counter

' Zufallszahlen ermitteln
goto Zufallszahlen_errechnen
los:

' Chip macht die Vorgabe
for W=1 to Zaehler
Position=79+W
peek Position,Wert
goto Play_
weiter:
pause Tempo
next W

' Spieler muss Vorgabe wiederholen
for W=1 to Zaehler
Position=79+W
peek Position,Wert
 
' warten auf Tasterdruck
nochmal:
Taster=pins
if Taster=0 then nochmal

' Tasterpins umrechnen
Taster=Taster+2/2
if Taster=5 then
Taster=4
endif

 
' wenn Spieler falsch gedrückt = Spielende
if Taster<>Wert then Play_Verloren
goto Play_
weiter2:
Taster=0
next W
pause 1000

' Vorgaben bis zu 4 pro Durchgang erhöhen
' wenn geschafft = nächste Runde
' pro neuer Runde wird die Vorgabe erhöht
inc Zaehler
if Zaehler<Counter then los

'----------------------------
' nächste Runde
LED_Nummer=1
 
for Note=1 to 120 step 5
 
sound 5,(Note,4)
high LED_Nummer:pause 20:low LED_Nummer

inc LED_Nummer

if LED_Nummer=5 then
LED_Nummer=1
endif

next Note
'-----------------------
for b9=1 to 6
let pins=%00011110
pause 10
let pins=0
pause 10
next b9

Tempo=Tempo/4
if Tempo<10 then
Tempo=10
endif

goto main
 
'#############################################
 
Play_:
if Wert=1 then
Note=20
endif
if Wert=2 then
Note=38
endif
if Wert=3 then
Note=52
endif
If Wert=4 then
Note=74
endif
high Wert:sound 5,(Note,35):low Wert
pause 10
branch Taster,(weiter,weiter2,weiter2,weiter2,weiter2)
 
'----------------------------
Zufallszahlen_errechnen:
for Position=1 to 10
erneut:
random Zufallszahl
w5=Zufallszahl // 4+1
if b9=w5 then erneut
b9=w5
Wert=79+Position
poke Wert,b9
next Position
goto los
'---------------------------
Play_Verloren:
for Ww=1 to 15
low 2,4: high 1,3
sound 5,(4,6)
low 1,3:high 2,4
sound 5,(1,6)
next Ww
let pins=0
'--------------------------
Neustart:
nochmal2:
Taster=pins
inc Zufallszahl
if Taster<>16 then nochmal2
goto Start
 
 

|addpics|nqa-13-308d.jpg,nqa-14-b084.jpg|/addpics|


*** Die Picaxe muß nicht alles können , es reicht wenn sie sagt wo's lang geht ***

BoomBoomMagic
Beiträge: 533
Registriert am: 24.01.2019

Themen Überblick

Betreff Absender Datum
SENSO mit der 14M2 - Simon fragt ... BoomBoomMagic 28.01.2019
 

Picaxe Editor 5.5.5 Download
Update auf Picaxe Editor 5.5.6 Download
Picaxe Editor 6.x.x.x Download
Manual1.pdf        -      Grundwissen Download
Manual2.pdf        -      Befehle Download
Manual3.pdf        -      Beispiele Download


Press [Backspace] for back to Menu


Counter
Xobor Forum Software ©Xobor.de | Forum erstellen
Datenschutz