barf
88
NS.py
|
@ -10,7 +10,7 @@ from serial import Serial, SerialException
|
||||||
from serial.tools import list_ports
|
from serial.tools import list_ports
|
||||||
from time import sleep
|
from time import sleep
|
||||||
|
|
||||||
from pygame import Surface, Color
|
from pygame import Surface, Color, mixer
|
||||||
from pygame.event import clear
|
from pygame.event import clear
|
||||||
from pygame.mixer import Sound
|
from pygame.mixer import Sound
|
||||||
from pygame.image import load, fromstring
|
from pygame.image import load, fromstring
|
||||||
|
@ -43,6 +43,7 @@ class NS(Game, Animation):
|
||||||
FRONT = 300
|
FRONT = 300
|
||||||
STEP = .4
|
STEP = .4
|
||||||
IDLE_TIMEOUT = 60000 * 5
|
IDLE_TIMEOUT = 60000 * 5
|
||||||
|
CHANNEL_COUNT = 8
|
||||||
|
|
||||||
def __init__(self):
|
def __init__(self):
|
||||||
Game.__init__(self)
|
Game.__init__(self)
|
||||||
|
@ -58,6 +59,7 @@ class NS(Game, Animation):
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
Animation.__init__(self, self)
|
Animation.__init__(self, self)
|
||||||
|
mixer.init(44100, -16, self.CHANNEL_COUNT, 4096)
|
||||||
self.load_sfx()
|
self.load_sfx()
|
||||||
self.subscribe(self.respond, KEYDOWN)
|
self.subscribe(self.respond, KEYDOWN)
|
||||||
self.subscribe(self.respond, KEYUP)
|
self.subscribe(self.respond, KEYUP)
|
||||||
|
@ -107,6 +109,7 @@ class NS(Game, Animation):
|
||||||
name = self.get_configuration("input", "arduino-port")
|
name = self.get_configuration("input", "arduino-port")
|
||||||
try:
|
try:
|
||||||
transmission = self.serial_reader.readline().strip()
|
transmission = self.serial_reader.readline().strip()
|
||||||
|
print transmission
|
||||||
except SerialException:
|
except SerialException:
|
||||||
print "Serial not ready... passing..."
|
print "Serial not ready... passing..."
|
||||||
transmission = ""
|
transmission = ""
|
||||||
|
@ -114,6 +117,7 @@ class NS(Game, Animation):
|
||||||
try:
|
try:
|
||||||
self.serial_data = int(transmission, 2)
|
self.serial_data = int(transmission, 2)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
print "Value error checking four digit serial transmission"
|
||||||
self.handle_garbage(transmission)
|
self.handle_garbage(transmission)
|
||||||
self.reset_arduino()
|
self.reset_arduino()
|
||||||
self.idle_elapsed = 0
|
self.idle_elapsed = 0
|
||||||
|
@ -121,6 +125,7 @@ class NS(Game, Animation):
|
||||||
try:
|
try:
|
||||||
int(transmission, 2)
|
int(transmission, 2)
|
||||||
except ValueError:
|
except ValueError:
|
||||||
|
print "Received a non-four digit serial transmission"
|
||||||
self.handle_garbage(transmission)
|
self.handle_garbage(transmission)
|
||||||
else:
|
else:
|
||||||
self.serial_data = 0
|
self.serial_data = 0
|
||||||
|
@ -265,13 +270,13 @@ class Meter(GameChild):
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
GameChild.__init__(self, parent)
|
GameChild.__init__(self, parent)
|
||||||
|
|
||||||
def setup(self, background, rect, indent, color, units):
|
def setup(self, background, rect, indent, color, units, path):
|
||||||
self.background = background
|
self.background = background
|
||||||
self.rect = rect
|
self.rect = rect
|
||||||
self.icons = []
|
self.icons = []
|
||||||
x = rect.left + indent
|
x = rect.left + indent
|
||||||
base = get_color_swapped_surface(
|
base = get_color_swapped_surface(
|
||||||
load(self.get_resource("HUD_circle.png")).convert_alpha(),
|
load(self.get_resource(path)).convert_alpha(),
|
||||||
(0, 0, 0), color)
|
(0, 0, 0), color)
|
||||||
while x <= self.rect.right - base.get_width() - self.SPACING:
|
while x <= self.rect.right - base.get_width() - self.SPACING:
|
||||||
icon = Sprite(self)
|
icon = Sprite(self)
|
||||||
|
@ -416,7 +421,7 @@ class Title(GameChild):
|
||||||
# self.first_pressed = False
|
# self.first_pressed = False
|
||||||
# self.first_pressed_elapsed = 0
|
# self.first_pressed_elapsed = 0
|
||||||
# self.buttons[0].unhide()
|
# self.buttons[0].unhide()
|
||||||
self.border.update()
|
self.border.update()
|
||||||
self.text.update()
|
self.text.update()
|
||||||
self.draw_scores()
|
self.draw_scores()
|
||||||
for button in self.buttons:
|
for button in self.buttons:
|
||||||
|
@ -539,6 +544,11 @@ class Introduction(Animation):
|
||||||
|
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
Animation.__init__(self, parent)
|
Animation.__init__(self, parent)
|
||||||
|
self.words = []
|
||||||
|
for word in "hey you lizard slime bag show me you can scrape".split(" "):
|
||||||
|
font = Font(self.get_resource(Dialogue.FONT_PATH), 96)
|
||||||
|
sprite = RainbowSprite(self, font.render(word, True, (255, 0, 0)), 30)
|
||||||
|
self.words.append(sprite)
|
||||||
self.tony = load(self.get_resource("Big_Tony.png")).convert()
|
self.tony = load(self.get_resource("Big_Tony.png")).convert()
|
||||||
self.skateboard = Sprite(self)
|
self.skateboard = Sprite(self)
|
||||||
self.skateboard.load_from_path(self.get_resource("Introduction_skateboard.png"), True)
|
self.skateboard.load_from_path(self.get_resource("Introduction_skateboard.png"), True)
|
||||||
|
@ -551,7 +561,7 @@ class Introduction(Animation):
|
||||||
self.tony_avatar = load(self.get_resource("Introduction_tony_avatar.png")).convert()
|
self.tony_avatar = load(self.get_resource("Introduction_tony_avatar.png")).convert()
|
||||||
self.advance_prompt = AdvancePrompt(self)
|
self.advance_prompt = AdvancePrompt(self)
|
||||||
self.skip_prompt = SkipPrompt(self, self.start_wipe)
|
self.skip_prompt = SkipPrompt(self, self.start_wipe)
|
||||||
self.register(self.start, self.move_board, self.take_board)
|
self.register(self.start, self.move_board, self.take_board, self.speak)
|
||||||
|
|
||||||
def reset(self):
|
def reset(self):
|
||||||
self.deactivate()
|
self.deactivate()
|
||||||
|
@ -561,8 +571,12 @@ class Introduction(Animation):
|
||||||
self.skateboard.hide()
|
self.skateboard.hide()
|
||||||
self.text_index = 0
|
self.text_index = 0
|
||||||
self.tutorial_index = 0
|
self.tutorial_index = 0
|
||||||
|
self.words_index = 0
|
||||||
self.advance_prompt.reset()
|
self.advance_prompt.reset()
|
||||||
self.skip_prompt.reset()
|
self.skip_prompt.reset()
|
||||||
|
for word in self.words:
|
||||||
|
word.location.center = self.get_display_surface().get_rect().centerx, 100
|
||||||
|
word.hide()
|
||||||
|
|
||||||
def deactivate(self):
|
def deactivate(self):
|
||||||
self.active = False
|
self.active = False
|
||||||
|
@ -570,8 +584,18 @@ class Introduction(Animation):
|
||||||
def activate(self):
|
def activate(self):
|
||||||
self.active = True
|
self.active = True
|
||||||
self.play(self.start, delay=3000, play_once=True)
|
self.play(self.start, delay=3000, play_once=True)
|
||||||
|
self.words[0].unhide()
|
||||||
|
self.play(self.speak)
|
||||||
# self.get_game().platform.unpress()
|
# self.get_game().platform.unpress()
|
||||||
|
|
||||||
|
def speak(self):
|
||||||
|
for ii in xrange(self.words_index + 1):
|
||||||
|
self.words[ii].move(0, 12)
|
||||||
|
if ii == self.words_index and self.words[ii].location.bottom > self.get_display_surface().get_rect().bottom - 40:
|
||||||
|
if self.words_index < len(self.words) - 1:
|
||||||
|
self.words_index += 1
|
||||||
|
self.words[self.words_index].unhide()
|
||||||
|
|
||||||
def start(self):
|
def start(self):
|
||||||
self.advance_prompt.cancel_first_press()
|
self.advance_prompt.cancel_first_press()
|
||||||
dialogue = self.get_game().dialogue
|
dialogue = self.get_game().dialogue
|
||||||
|
@ -620,7 +644,7 @@ class Introduction(Animation):
|
||||||
def update(self):
|
def update(self):
|
||||||
if self.active:
|
if self.active:
|
||||||
Animation.update(self)
|
Animation.update(self)
|
||||||
dialogue = self.get_game().dialogue
|
# dialogue = self.get_game().dialogue
|
||||||
wipe = self.get_game().wipe
|
wipe = self.get_game().wipe
|
||||||
if not wipe.is_playing() and not self.is_playing(self.start) and not self.text_index == 2:
|
if not wipe.is_playing() and not self.is_playing(self.start) and not self.text_index == 2:
|
||||||
if self.advance_prompt.check_first_press():
|
if self.advance_prompt.check_first_press():
|
||||||
|
@ -648,27 +672,30 @@ class Introduction(Animation):
|
||||||
self.start_wipe()
|
self.start_wipe()
|
||||||
# self.get_game().platform.unpress()
|
# self.get_game().platform.unpress()
|
||||||
self.advance_prompt.cancel_first_press()
|
self.advance_prompt.cancel_first_press()
|
||||||
elif self.text_index == 2:
|
elif not wipe.is_playing() and self.text_index == 2:
|
||||||
platform = self.get_game().platform
|
platform = self.get_game().platform
|
||||||
if platform.get_edge_pressed() == self.TUTORIAL_MOVES[self.tutorial_index]:
|
if platform.get_edge_pressed() == self.TUTORIAL_MOVES[self.tutorial_index]:
|
||||||
self.tutorial_index += 1
|
self.tutorial_index += 1
|
||||||
self.get_game().sfx["land_0"].play()
|
self.get_game().sfx["land_0"].play()
|
||||||
if self.tutorial_index == len(self.TUTORIAL_MOVES):
|
if self.tutorial_index == len(self.TUTORIAL_MOVES):
|
||||||
self.text_index += 1
|
# self.text_index += 1
|
||||||
self.advance_prompt.cancel_first_press()
|
# self.advance_prompt.cancel_first_press()
|
||||||
platform.set_glowing([])
|
platform.set_glowing([])
|
||||||
dialogue.show_text(self.TEXT[self.text_index])
|
self.start_wipe()
|
||||||
|
# dialogue.show_text(self.TEXT[self.text_index])
|
||||||
else:
|
else:
|
||||||
platform.set_glowing(platform.get_buttons_from_edges(
|
platform.set_glowing(platform.get_buttons_from_edges(
|
||||||
[self.TUTORIAL_MOVES[self.tutorial_index]]))
|
[self.TUTORIAL_MOVES[self.tutorial_index]]))
|
||||||
self.get_display_surface().blit(self.tony, (0, 0))
|
self.get_display_surface().blit(self.tony, (0, 0))
|
||||||
self.slime_bag.update()
|
self.slime_bag.update()
|
||||||
self.skateboard.update()
|
self.skateboard.update()
|
||||||
|
for word in self.words:
|
||||||
|
word.update()
|
||||||
self.get_game().platform.update()
|
self.get_game().platform.update()
|
||||||
self.get_game().dialogue.update()
|
# self.get_game().dialogue.update()
|
||||||
if not wipe.is_playing() and not self.is_playing(self.start) and \
|
# if not wipe.is_playing() and not self.is_playing(self.start) and \
|
||||||
not self.text_index == 2:
|
# not self.text_index == 2:
|
||||||
self.advance_prompt.update()
|
# self.advance_prompt.update()
|
||||||
if not wipe.is_playing() and not self.text_index == 2:
|
if not wipe.is_playing() and not self.text_index == 2:
|
||||||
self.skip_prompt.update()
|
self.skip_prompt.update()
|
||||||
|
|
||||||
|
@ -1146,7 +1173,7 @@ class Chemtrails(Sprite):
|
||||||
if not boss.is_playing(boss.show_introduction_dialogue):
|
if not boss.is_playing(boss.show_introduction_dialogue):
|
||||||
self.timer.update()
|
self.timer.update()
|
||||||
self.life.update()
|
self.life.update()
|
||||||
self.boys.update()
|
# self.boys.update()
|
||||||
|
|
||||||
def attack(self):
|
def attack(self):
|
||||||
boss = self.get_game().boss
|
boss = self.get_game().boss
|
||||||
|
@ -1216,7 +1243,7 @@ class Timer(Meter):
|
||||||
rect = background.get_rect()
|
rect = background.get_rect()
|
||||||
rect.bottomright = dsr.right - 6, dsr.bottom - 4
|
rect.bottomright = dsr.right - 6, dsr.bottom - 4
|
||||||
self.setup(background, rect, 53, (0, 0, 255),
|
self.setup(background, rect, 53, (0, 0, 255),
|
||||||
self.get_configuration("time", "timer-start-time"))
|
self.get_configuration("time", "timer-start-time"), "scrapeIcons/scrapeIcons_07.png")
|
||||||
|
|
||||||
def add_time(self, amount):
|
def add_time(self, amount):
|
||||||
self.change(amount)
|
self.change(amount)
|
||||||
|
@ -1233,7 +1260,7 @@ class Life(Meter):
|
||||||
background = load(self.get_resource("HUD_health.png")).convert()
|
background = load(self.get_resource("HUD_health.png")).convert()
|
||||||
rect = background.get_rect()
|
rect = background.get_rect()
|
||||||
rect.bottomleft = 172, dsr.bottom - 4
|
rect.bottomleft = 172, dsr.bottom - 4
|
||||||
self.setup(background, rect, 70, (255, 0, 0), 3)
|
self.setup(background, rect, 70, (255, 0, 0), 3, "scrapeIcons/scrapeIcons_03.png")
|
||||||
|
|
||||||
def decrease(self):
|
def decrease(self):
|
||||||
self.get_game().sfx["hurt"].play()
|
self.get_game().sfx["hurt"].play()
|
||||||
|
@ -1252,7 +1279,7 @@ class Boys(Meter):
|
||||||
background = load(self.get_resource("HUD_lives.png")).convert()
|
background = load(self.get_resource("HUD_lives.png")).convert()
|
||||||
rect = background.get_rect()
|
rect = background.get_rect()
|
||||||
rect.bottomleft = 6, dsr.bottom - 4
|
rect.bottomleft = 6, dsr.bottom - 4
|
||||||
self.setup(background, rect, 60, (0, 255, 0), 3)
|
self.setup(background, rect, 60, (0, 255, 0), 3, "scrapeIcons/scrapeIcons_01.png")
|
||||||
|
|
||||||
|
|
||||||
class Boss(Animation):
|
class Boss(Animation):
|
||||||
|
@ -1355,7 +1382,8 @@ class Boss(Animation):
|
||||||
|
|
||||||
def combo(self):
|
def combo(self):
|
||||||
self.queue = None
|
self.queue = None
|
||||||
self.get_game().reset_arduino()
|
if self.get_game().serial_enabled():
|
||||||
|
self.get_game().reset_arduino()
|
||||||
self.play(self.brandish, delay=2500, play_once=True)
|
self.play(self.brandish, delay=2500, play_once=True)
|
||||||
|
|
||||||
def brandish(self):
|
def brandish(self):
|
||||||
|
@ -1798,10 +1826,24 @@ class Health(Meter):
|
||||||
def __init__(self, parent):
|
def __init__(self, parent):
|
||||||
Meter.__init__(self, parent)
|
Meter.__init__(self, parent)
|
||||||
dsr = self.get_display_surface().get_rect()
|
dsr = self.get_display_surface().get_rect()
|
||||||
background = load(self.get_resource("HUD_boss.png")).convert()
|
self.background = load(self.get_resource("HUD_boss.png")).convert()
|
||||||
rect = background.get_rect()
|
self.rect = self.background.get_rect()
|
||||||
rect.midtop = dsr.centerx, self.OFFSET
|
self.rect.midtop = dsr.centerx, self.OFFSET
|
||||||
self.setup(background, rect, 52, (255, 0, 255), 100)
|
|
||||||
|
def setup(self):
|
||||||
|
level_index = self.get_game().boss.level_index
|
||||||
|
if level_index == 0:
|
||||||
|
icon_index = 22
|
||||||
|
elif level_index == 1:
|
||||||
|
icon_index = 17
|
||||||
|
elif level_index == 2:
|
||||||
|
icon_index = 19
|
||||||
|
Meter.setup(self, self.background, self.rect, 52, (255, 0, 255), 100,
|
||||||
|
"scrapeIcons/scrapeIcons_%i.png" % icon_index)
|
||||||
|
|
||||||
|
def reset(self):
|
||||||
|
self.setup()
|
||||||
|
Meter.reset(self)
|
||||||
|
|
||||||
def decrease(self, damage):
|
def decrease(self, damage):
|
||||||
self.change(-damage)
|
self.change(-damage)
|
||||||
|
|
|
@ -32,8 +32,8 @@ def move_to_executable():
|
||||||
if is_python_3():
|
if is_python_3():
|
||||||
launch_alternative(["python2", "python2.7", "python2.6"])
|
launch_alternative(["python2", "python2.7", "python2.6"])
|
||||||
|
|
||||||
if maxint >> 33:
|
# if maxint >> 33:
|
||||||
launch_alternative(["python-32", "python2-32", "python2.7-32", "python2.6-32"])
|
# launch_alternative(["python-32", "python2-32", "python2.7-32", "python2.6-32"])
|
||||||
|
|
||||||
if not can_import("pygame"):
|
if not can_import("pygame"):
|
||||||
launch_alternative(["python2.7", "python2.6"])
|
launch_alternative(["python2.7", "python2.6"])
|
||||||
|
|
2
lib/pgfw
|
@ -1 +1 @@
|
||||||
Subproject commit 41b4df6326afbad64aa5dc00ac5d3dc854e8096f
|
Subproject commit 498755ef0e4cadfe3784363e5eb0ec1aff016631
|
Before Width: | Height: | Size: 1.9 KiB After Width: | Height: | Size: 383 B |
Before Width: | Height: | Size: 4.2 KiB After Width: | Height: | Size: 2.4 KiB |
|
@ -15,22 +15,6 @@
|
||||||
171204
|
171204
|
||||||
256769
|
256769
|
||||||
312561
|
312561
|
||||||
242763
|
137266
|
||||||
230604
|
125811
|
||||||
234298
|
127948
|
||||||
335281
|
|
||||||
156682
|
|
||||||
234931
|
|
||||||
184682
|
|
||||||
237113
|
|
||||||
254185
|
|
||||||
209634
|
|
||||||
150791
|
|
||||||
200320
|
|
||||||
148060
|
|
||||||
159544
|
|
||||||
193185
|
|
||||||
246109
|
|
||||||
171802
|
|
||||||
150366
|
|
||||||
248085
|
|
||||||
|
|
After Width: | Height: | Size: 172 B |
After Width: | Height: | Size: 174 B |
After Width: | Height: | Size: 165 B |
After Width: | Height: | Size: 141 B |
After Width: | Height: | Size: 147 B |
After Width: | Height: | Size: 166 B |
After Width: | Height: | Size: 168 B |
After Width: | Height: | Size: 161 B |
After Width: | Height: | Size: 168 B |
After Width: | Height: | Size: 165 B |
After Width: | Height: | Size: 157 B |
After Width: | Height: | Size: 129 B |
After Width: | Height: | Size: 137 B |
After Width: | Height: | Size: 168 B |
After Width: | Height: | Size: 162 B |
After Width: | Height: | Size: 166 B |
After Width: | Height: | Size: 169 B |
After Width: | Height: | Size: 172 B |
After Width: | Height: | Size: 176 B |
After Width: | Height: | Size: 145 B |
After Width: | Height: | Size: 4.4 KiB |
After Width: | Height: | Size: 5.1 KiB |
|
@ -0,0 +1,137 @@
|
||||||
|
// Generally, you should use "unsigned long" for variables that hold time
|
||||||
|
// The value will quickly become too large for an int to store
|
||||||
|
unsigned long previousMillis = 0; // will store last time LED was updated
|
||||||
|
|
||||||
|
// constants won't change:
|
||||||
|
const long interval = 500; // interval at which to blink (milliseconds)
|
||||||
|
|
||||||
|
int pushButton1 = 2;
|
||||||
|
int pushButton2 = 4;
|
||||||
|
int pushButton3 = 6;
|
||||||
|
int pushButton4 = 11;
|
||||||
|
|
||||||
|
int buttons[4] = {
|
||||||
|
pushButton1,
|
||||||
|
pushButton2,
|
||||||
|
pushButton3,
|
||||||
|
pushButton4
|
||||||
|
};
|
||||||
|
|
||||||
|
void setup() {
|
||||||
|
// set the digital pin as output:
|
||||||
|
Serial.begin(9600);
|
||||||
|
pinMode(pushButton1, OUTPUT);
|
||||||
|
digitalWrite(pushButton1, LOW);
|
||||||
|
pinMode(pushButton2, INPUT_PULLUP);
|
||||||
|
pinMode(pushButton3, INPUT_PULLUP);
|
||||||
|
pinMode(pushButton4, INPUT_PULLUP);
|
||||||
|
}
|
||||||
|
|
||||||
|
bool testConnection2(int A, int B) {
|
||||||
|
for (int i = 0; i < 4; i++) {
|
||||||
|
if (i == A) {
|
||||||
|
pinMode(buttons[i], OUTPUT);
|
||||||
|
digitalWrite(buttons[i], LOW);
|
||||||
|
} else {
|
||||||
|
// digitalWrite(buttons[i], HIGH);
|
||||||
|
pinMode(buttons[i], INPUT_PULLUP);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// delay(10);
|
||||||
|
|
||||||
|
if (!digitalRead(buttons[B])) {
|
||||||
|
return true;
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
bool testConnection(int A, int B) {
|
||||||
|
return testConnection2(A, B) && testConnection2(B, A);
|
||||||
|
}
|
||||||
|
|
||||||
|
// int lastNumber = -1;
|
||||||
|
|
||||||
|
void loop() {
|
||||||
|
|
||||||
|
if (testConnection(0, 1)) {
|
||||||
|
// if (lastNumber != 01) {
|
||||||
|
// lastNumber = 01;
|
||||||
|
Serial.println("0011");
|
||||||
|
// }
|
||||||
|
} else if (testConnection(0, 2)) {
|
||||||
|
// if (lastNumber != 02) {
|
||||||
|
// lastNumber = 02;
|
||||||
|
Serial.println("0101");
|
||||||
|
// }
|
||||||
|
} else if (testConnection(0, 3)) {
|
||||||
|
// if (lastNumber != 03) {
|
||||||
|
// lastNumber = 03;
|
||||||
|
Serial.println("1001");
|
||||||
|
// }
|
||||||
|
} else if (testConnection(1, 2)) {
|
||||||
|
// if (lastNumber != 12) {
|
||||||
|
// lastNumber = 12;
|
||||||
|
Serial.println("0110");
|
||||||
|
// }
|
||||||
|
} else if (testConnection(1, 3)) {
|
||||||
|
// if (lastNumber != 13) {
|
||||||
|
// lastNumber = 13;
|
||||||
|
Serial.println("1010");
|
||||||
|
// }
|
||||||
|
} else if (testConnection(2, 3)) {
|
||||||
|
// if (lastNumber != 23) {
|
||||||
|
// lastNumber = 23;
|
||||||
|
Serial.println("1100");
|
||||||
|
// }
|
||||||
|
// } else {
|
||||||
|
// if (lastNumber != 0) {
|
||||||
|
// lastNumber = 0;
|
||||||
|
// Serial.println("0000");
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
|
||||||
|
for (int ii = 0; ii < 4; ii++)
|
||||||
|
{
|
||||||
|
for (int jj = 0; jj < 4; jj++)
|
||||||
|
{
|
||||||
|
if (jj == ii)
|
||||||
|
{
|
||||||
|
pinMode(buttons[jj], OUTPUT);
|
||||||
|
digitalWrite(buttons[jj], LOW);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
pinMode(buttons[jj], INPUT_PULLUP);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
for (int jj = ii; jj < 4; jj++)
|
||||||
|
{
|
||||||
|
if (!(ii == jj) && !digitalRead(buttons[jj]))
|
||||||
|
{
|
||||||
|
for (int kk = 3; kk >= 0; kk--)
|
||||||
|
{
|
||||||
|
if (kk == ii || kk == jj)
|
||||||
|
{
|
||||||
|
Serial.print(1);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
Serial.print(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Serial.print("\n");
|
||||||
|
received_input = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// if (received_input)
|
||||||
|
// {
|
||||||
|
// break;
|
||||||
|
// }
|
||||||
|
}
|
||||||
|
*/
|