#include <LedControl.h>
LedControl lc1=LedControl(26,25,24,4);
LedControl lc2=LedControl(26,25,3,4);
LedControl lc3=LedControl(26,25,2,4);
byte nockanda_number[10][8]=
{
{B00011000,B00111100,B01100110,B01100110,B01100110,B01100110,B00111100,B00011000},//0
//{B00011000,B00111000,B01111000,B00011000,B00011000,B00011000,B00011000,B01111110}, //1
{B01111110,B00011000,B00011000,B00011000,B00011000,B01111000,B00111000,B00011000},
{B00111100,B01111110,B01000110,B00001100,B00011000,B00110000,B01100000,B01111110}, //2
{B00111100,B01111110,B01100110,B00001110,B00001100,B01000110,B01111110,B00111100}, //3
{B00010000,B00100000,B01001000,B01001000,B01111110,B00001000,B00001000,B00001000}, //4
{B01111110,B01100000,B01100000,B00111100,B00000110,B00000110,B01111110,B01111110}, //5
{B00011100,B00110000,B01100000,B01111110,B01111110,B01000010,B01111110,B00111100}, //6
{B00111100,B01111110,B01000110,B00000110,B00001100,B00011000,B00110000,B00100000}, //7
{B00111100,B01000010,B01000010,B01111110,B00111100,B01000010,B01000010,B00111100}, //8
{B00111100,B01111110,B01000010,B01111110,B00111110,B00000010,B00000010,B00111100} //9
};
byte win1[8]={B01001001,B01001001,B01001001,B01001001,B01011101,B01110111,B01110111,B00100010};
byte win2[8]={B10001111,B10000110,B10000110,B10000110,B10000110,B00000110,B00000110,B00001111};
byte win3[8]={B01100000,B01010000,B01001000,B01001000,B01000100,B01000100,B01000010,B01000001};
byte win4[8]={B10001000,B10001000,B10001000,B10001000,B10001000,B10001000,B10000000,B10001000};
byte lose1[8]={B10000000,B10000000,B10000000,B10000000,B10000000,B10000000,B10000000,B11111111};
byte lose2[8]={B00111100,B01000010,B10000001,B10000001,B10000001,B10000001,B01000010,B00111100};
byte lose3[8]={B00111100,B01000010,B01000000,B00110000,B00001100,B00000010,B01000010,B00111100};
byte lose4[8]={B11111111,B10000000,B10000000,B11111111,B11111111,B10000000,B10000000,B11111111};
byte draw1[8]={B01111000,B01000100,B01000010,B01000010,B01000010,B01000010,B01000100,B01111000};
byte draw2[8]={B01111100,B01000010,B01000010,B01111100,B01010000,B01001000,B01000100,B01000010};
byte draw3[8]={B00111100,B01000010,B01000010,B01000010,B01111110,B01000010,B01000010,B01000010};
byte draw4[8]={B10000001,B10000001,B10000001,B10011001,B10100101,B10100101,B10100101,B01000010};
byte soju1[8]={B00111100,B01000010,B01000000,B00110000,B00001100,B00000010,B01000010,B00111100};
byte soju2[8]={B00111100,B01000010,B01000010,B01000010,B01000010,B01000010,B01000010,B00111100};
byte soju3[8]={B01111110,B00011000,B00011000,B00011000,B00011000,B01011000,B01011000,B01111000};
byte soju4[8]={B01000010,B01000010,B01000010,B01000010,B01000010,B01000010,B01000010,B00111100};
byte beer1[8]={B01111000,B01000100,B01000100,B01111000,B01000100,B01000010,B01000010,B01111100};
byte beer2[8]={B01111110,B01000000,B01000000,B01111110,B01000000,B01000000,B01000000,B01111110};
byte beer3[8]={B01111110,B01000000,B01000000,B01111110,B01000000,B01000000,B01000000,B01111110};
byte beer4[8]={B01111000,B01000100,B01000100,B01111000,B01010000,B01001000,B01000100,B01000010};
byte M11[8]={B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000};
byte M12[8]={B10000001,B11000011,B10100101,B10011001,B10011001,B10000001,B10000001,B10000001};
byte M13[8]={B01111110,B00011000,B00011000,B00011000,B00011000,B01111000,B00111000,B00011000};
byte M14[8]={B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000};
byte M21[8]={B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000};
byte M22[8]={B10000001,B11000011,B10100101,B10011001,B10011001,B10000001,B10000001,B10000001};
byte M23[8]={B01111110,B00000110,B00001110,B00011100,B00111000,B01110000,B01100000,B01111110};
byte M24[8]={B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000};
byte M31[8]={B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000};
byte M32[8]={B10000001,B11000011,B10100101,B10011001,B10011001,B10000001,B10000001,B10000001};
byte M33[8]={B01111110,B00000010,B00000010,B01111110,B01111110,B00000010,B00000010,B01111110};
byte M34[8]={B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000,B00000000};
void disp_dot1(int temp1){
//첫번째자리
for(int j=0;j<8;j++){
lc1.setRow(0,j,nockanda_number[temp1/1000][j]);
}
//두번째자리
for(int j=0;j<8;j++){
lc1.setRow(1,j,nockanda_number[(temp1%1000)/100][j]);
}
//세번째자리
for(int j=0;j<8;j++){
lc1.setRow(2,j,nockanda_number[(temp1%100)/10][j]);
}
//네번째자리
for(int j=0;j<8;j++){
lc1.setRow(3,j,nockanda_number[temp1%10][j]);
}
}
void disp_dot2(int temp2){
//첫번째자리
for(int j=0;j<8;j++){
lc2.setRow(0,j,nockanda_number[temp2/1000][j]);
}
//두번째자리
for(int j=0;j<8;j++){
lc2.setRow(1,j,nockanda_number[(temp2%1000)/100][j]);
}
//세번째자리
for(int j=0;j<8;j++){
lc2.setRow(2,j,nockanda_number[(temp2%100)/10][j]);
}
//네번째자리
for(int j=0;j<8;j++){
lc2.setRow(3,j,nockanda_number[temp2%10][j]);
}
}
void disp_dot3(int temp3){
//첫번째자리
for(int j=0;j<8;j++){
lc2.setRow(0,j,nockanda_number[temp3/1000][j]);
}
//두번째자리
for(int j=0;j<8;j++){
lc2.setRow(1,j,nockanda_number[(temp3%1000)/100][j]);
}
//세번째자리
for(int j=0;j<8;j++){
lc2.setRow(2,j,nockanda_number[(temp3%100)/10][j]);
}
//네번째자리
for(int j=0;j<8;j++){
lc2.setRow(3,j,nockanda_number[temp3%10][j]);
}
}
void turn_on_led1(byte* win1, byte* win2, byte* win3, byte* win4, LedControl lc1){
for(int ii=0; ii<8; ii++)
{
lc1.setRow(0,ii,win1[ii]);
lc1.setRow(1,ii,win2[ii]);
lc1.setRow(2,ii,win3[ii]);
lc1.setRow(3,ii,win4[ii]);
}
}
void turn_on_led2(byte* lose1, byte* lose2, byte* lose3, byte* lose4, LedControl lc1){
for(int ii=0; ii<8; ii++)
{
lc1.setRow(0,ii,lose1[ii]);
lc1.setRow(1,ii,lose2[ii]);
lc1.setRow(2,ii,lose3[ii]);
lc1.setRow(3,ii,lose4[ii]);
}
}
void turn_on_led3(byte* lose1, byte* lose2, byte* lose3, byte* lose4, LedControl lc2){
for(int ii=0; ii<8; ii++)
{
lc2.setRow(0,ii,lose1[ii]);
lc2.setRow(1,ii,lose2[ii]);
lc2.setRow(2,ii,lose3[ii]);
lc2.setRow(3,ii,lose4[ii]);
}
}
void turn_on_led4(byte* win1, byte* win2, byte* win3, byte* win4, LedControl lc2){
for(int ii=0; ii<8; ii++)
{
lc2.setRow(0,ii,win1[ii]);
lc2.setRow(1,ii,win2[ii]);
lc2.setRow(2,ii,win3[ii]);
lc2.setRow(3,ii,win4[ii]);
}
}
void turn_on_led5(byte* soju1, byte* soju2, byte* soju3, byte* soju4, LedControl lc3){
for(int ii=0; ii<8; ii++)
{
lc3.setRow(0,ii,soju1[ii]);
lc3.setRow(1,ii,soju2[ii]);
lc3.setRow(2,ii,soju3[ii]);
lc3.setRow(3,ii,soju4[ii]);
}
}
void turn_on_led6(byte* beer1, byte* beer2, byte* beer3, byte* beer4, LedControl lc3){
for(int ii=0; ii<8; ii++)
{
lc3.setRow(0,ii,beer1[ii]);
lc3.setRow(1,ii,beer2[ii]);
lc3.setRow(2,ii,beer3[ii]);
lc3.setRow(3,ii,beer4[ii]);
}
}
void turn_on_led7(byte* draw1, byte* draw2, byte* draw3, byte* draw4, LedControl lc1){
for(int ii=0; ii<8; ii++)
{
lc1.setRow(0,ii,draw1[ii]);
lc1.setRow(1,ii,draw2[ii]);
lc1.setRow(2,ii,draw3[ii]);
lc1.setRow(3,ii,draw4[ii]);
}
}
void turn_on_led8(byte* M11, byte* M12, byte* M13, byte* M14, LedControl lc3){
for(int ii=0; ii<8; ii++)
{
lc3.setRow(0,ii,M11[ii]);
lc3.setRow(1,ii,M12[ii]);
lc3.setRow(2,ii,M13[ii]);
lc3.setRow(3,ii,M14[ii]);
}
}
void turn_on_led9(byte* M21, byte* M22, byte* M23, byte* M24, LedControl lc3){
for(int ii=0; ii<8; ii++)
{
lc3.setRow(0,ii,M21[ii]);
lc3.setRow(1,ii,M22[ii]);
lc3.setRow(2,ii,M23[ii]);
lc3.setRow(3,ii,M24[ii]);
}
}
void turn_on_led10(byte* M31, byte* M32, byte* M33, byte* M34, LedControl lc3){
for(int ii=0; ii<8; ii++)
{
lc3.setRow(0,ii,M31[ii]);
lc3.setRow(1,ii,M32[ii]);
lc3.setRow(2,ii,M33[ii]);
lc3.setRow(3,ii,M34[ii]);
}
}
#define MAX 17
int button[16] = { 30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45 }; // 택트 스위치 연결 핀번호
int modebutton[3] = {27,28,29}; //모드 선택
int LED_R = 6; // 빨간색
int LED_B1 = 7; // 파란색1
int LED_B2 = 8; // 파란색2
int LED_B3 = 9; // 파란색3
int LED_B4 = 10; // 파란색4
int LED_B5 = 11; // 파란색5
int LED_B6 = 12; // 파란색6
int LED_B7 = 13; // 파란색7
int LED_B8 = 14; // 파란색8
int LED_B9 = 15; // 파란색9
int LED_B10 = 16; // 파란색10
int LED_B11 = 17; // 파란색11
int LED_B12 = 18; // 파란색12
int LED_B13 = 19; // 파란색13
int LED_B14 = 20; // 파란색14
int LED_B15 = 21; // 파란색15
int LED_B16 = 22; // 파란색16
int answer[MAX]; // 정답 기억 배열
int record[MAX]; // 사용자의 입력
int nLed = 0; // 문제 번호
int tLed = 0; // 현재 문제에서 맞추는 중인 위치
int x; // 랜덤변수
int T; // 문제 수
int p1_score=0;
int p2_score=0;
int tmp, cnt;
int flag; // 정답(1) 오답(0), 종료(-1)
void setup()
{
Serial.begin(9600);
pinMode(button[0], INPUT_PULLUP);
pinMode(button[1], INPUT_PULLUP);
pinMode(button[2], INPUT_PULLUP);
pinMode(button[3], INPUT_PULLUP);
pinMode(button[4], INPUT_PULLUP);
pinMode(button[5], INPUT_PULLUP);
pinMode(button[6], INPUT_PULLUP);
pinMode(button[7], INPUT_PULLUP);
pinMode(button[8], INPUT_PULLUP);
pinMode(button[9], INPUT_PULLUP);
pinMode(button[10], INPUT_PULLUP);
pinMode(button[11], INPUT_PULLUP);
pinMode(button[12], INPUT_PULLUP);
pinMode(button[13], INPUT_PULLUP);
pinMode(button[14], INPUT_PULLUP);
pinMode(button[15], INPUT_PULLUP);
pinMode(modebutton[0], INPUT_PULLUP);
pinMode(modebutton[1], INPUT_PULLUP);
pinMode(modebutton[2], INPUT_PULLUP);
pinMode(LED_R, OUTPUT);
pinMode(LED_B1, OUTPUT);
pinMode(LED_B2, OUTPUT);
pinMode(LED_B3, OUTPUT);
pinMode(LED_B4, OUTPUT);
pinMode(LED_B5, OUTPUT);
pinMode(LED_B6, OUTPUT);
pinMode(LED_B7, OUTPUT);
pinMode(LED_B8, OUTPUT);
pinMode(LED_B9, OUTPUT);
pinMode(LED_B10, OUTPUT);
pinMode(LED_B11, OUTPUT);
pinMode(LED_B12, OUTPUT);
pinMode(LED_B13, OUTPUT);
pinMode(LED_B14, OUTPUT);
pinMode(LED_B15, OUTPUT);
pinMode(LED_B16, OUTPUT);
}
void simon()
{
startlight();
truelight(500);
T = MAX; // 문제수
for(int i = 0 ; i <= T; i++)
{
// i번째 테스트 시작
test(i);
// 정답을 입력해주세요.
input(i);
// 비교하고 정답 체크
// 정답 : 녹색 1회 점등
// 오답 : 빨간색 점등
// 게임끝 : 녹색 점등
check(i);
if(flag == 1){
truelight(500);
p1_score++;
disp_dot1(i);
} // 정답 녹색 1회 점등
else if(flag == 0)
{
light(6,500);
endlight(700);// 오답 빨간색
disp_dot1(i-1);
break;
}
if (i == T) light(7,3000);
}
}
void simon2()
{
startlight();
truelight(500);
T = MAX; // 문제수
for(int i = 0 ; i <= T; i++)
{
// i번째 테스트 시작
test(i);
// 정답을 입력해주세요.
input(i);
// 비교하고 정답 체크
// 정답 : 녹색 1회 점등
// 오답 : 빨간색 점등
// 게임끝 : 녹색 점등
check(i);
if(flag == 1){
p2_score++;
truelight(500);
disp_dot2(i);
} // 정답 녹색 1회 점등
else if(flag == 0)
{
light(6,500);
endlight(700);// 오답 빨간색
disp_dot2(i-1);
break;
}
if (i == T) light(7,3000);
}
}
void test(int n)
{
for(int i = 0; i < n; i++)
{
x = random(1,17); // 0~2까지 랜덤
light(x+7,500); // 파란색 등은 7번부터...
answer[i] = x;
}
}
void input(int n)
{
cnt = 0;
while(cnt < n)
{
if(digitalRead(button[0]) == LOW)
{
record[cnt] = 0;
light(7,300);
cnt ++;
}
else if(digitalRead(button[1]) == LOW)
{
record[cnt] = 1;
light(8,300);
cnt ++;
}
else if(digitalRead(button[2]) == LOW)
{
record[cnt] = 2;
light(9,300);
cnt ++;
}
else if(digitalRead(button[3]) == LOW)
{
record[cnt] = 3;
light(10,300);
cnt ++;
}
else if(digitalRead(button[4]) == LOW)
{
record[cnt] = 4;
light(11,300);
cnt ++;
}
else if(digitalRead(button[5]) == LOW)
{
record[cnt] = 5;
light(12,300);
cnt ++;
}
else if(digitalRead(button[6]) == LOW)
{
record[cnt] = 6;
light(13,300);
cnt ++;
}
else if(digitalRead(button[7]) == LOW)
{
record[cnt] = 7;
light(14,300);
cnt ++;
}
else if(digitalRead(button[8]) == LOW)
{
record[cnt] = 8;
light(15,300);
cnt ++;
}
else if(digitalRead(button[9]) == LOW)
{
record[cnt] = 9;
light(16,300);
cnt ++;
}
else if(digitalRead(button[10]) == LOW)
{
record[cnt] = 10;
light(17,300);
cnt ++;
}
else if(digitalRead(button[11]) == LOW)
{
record[cnt] = 11;
light(18,300);
cnt ++;
}
else if(digitalRead(button[12]) == LOW)
{
record[cnt] = 12;
light(19,300);
cnt ++;
}
else if(digitalRead(button[13]) == LOW)
{
record[cnt] = 2;
light(20,300);
cnt ++;
}
else if(digitalRead(button[14]) == LOW)
{
record[cnt] = 14;
light(21,300);
cnt ++;
}
else if(digitalRead(button[15]) == LOW)
{
record[cnt] = 15;
light(22,300);
cnt ++;
}
}
}
void check(int n)
{
flag = 1;
for(int i = 0; i < n; i++)
{
if(answer[i] != record[i])
flag = 0;
}
}
void light(int n, int t)
{
digitalWrite(n, HIGH);
delay(t);
digitalWrite(n, LOW);
delay(t);
}
void truelight(int t)
{
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
digitalWrite(19, HIGH);
digitalWrite(20, HIGH);
digitalWrite(21, HIGH);
digitalWrite(22, HIGH);
delay(t);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
digitalWrite(14,LOW);
digitalWrite(15,LOW);
digitalWrite(16,LOW);
digitalWrite(17,LOW);
digitalWrite(18,LOW);
digitalWrite(19,LOW);
digitalWrite(20,LOW);
digitalWrite(21,LOW);
digitalWrite(22,LOW);
delay(t);
}
void endlight(int t)
{
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
digitalWrite(14, HIGH);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
digitalWrite(19, HIGH);
digitalWrite(20, HIGH);
digitalWrite(21, HIGH);
digitalWrite(22, HIGH);
delay(1000);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
delay(t);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
digitalWrite(14,LOW);
delay(t);
digitalWrite(15,LOW);
digitalWrite(16,LOW);
digitalWrite(17,LOW);
digitalWrite(18,LOW);
delay(t);
digitalWrite(19,LOW);
digitalWrite(20,LOW);
digitalWrite(21,LOW);
digitalWrite(22,LOW);
delay(t);
}
void startlight()
{
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
digitalWrite(14,LOW);
digitalWrite(15,LOW);
digitalWrite(16,LOW);
digitalWrite(17,LOW);
digitalWrite(18,LOW);
digitalWrite(19,LOW);
digitalWrite(20,LOW);
digitalWrite(21,LOW);
digitalWrite(22,LOW);
delay(100);
digitalWrite(19, HIGH);
digitalWrite(20, HIGH);
digitalWrite(21, HIGH);
digitalWrite(22, HIGH);
delay(1000);
digitalWrite(15, HIGH);
digitalWrite(16, HIGH);
digitalWrite(17, HIGH);
digitalWrite(18, HIGH);
delay(1000);
digitalWrite(11, HIGH);
digitalWrite(12, HIGH);
digitalWrite(13, HIGH);
digitalWrite(14, HIGH);
delay(1000);
digitalWrite(7, HIGH);
digitalWrite(8, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
delay(1000);
}
void loop()
{
if (digitalRead(modebutton[0]) == LOW){
delay(1000);
modechoice1();
memory();
}
else if (digitalRead(modebutton[1]) == LOW){
delay(1000);
modechoice2();
memory();
}
else if (digitalRead(modebutton[2]) == LOW){
delay(1000);
modechoice3();
treasure();
}
}
void memory(){
simon();
simon2();
if (p1_score>p2_score){
for(int i=0;i<1;i++){
turn_on_led1(win4, win3, win2, win1, lc1);
turn_on_led3(lose4, lose3, lose2, lose1, lc2);
delay(1500);
for(int ii=0; ii<4; ii++){
lc1.clearDisplay(ii);
}
for(int ii=0; ii<4; ii++){
lc2.clearDisplay(ii);
}
delay(1500);
}
}
else if (p1_score<p2_score){
for(int i=0;i<1;i++){
turn_on_led2(lose4, lose3, lose2, lose1, lc1);
turn_on_led4(win4, win3, win2, win1, lc2);
delay(1500);
for(int ii=0; ii<4; ii++){
lc1.clearDisplay(ii);
}
for(int ii=0; ii<4; ii++){
lc2.clearDisplay(ii);
}
delay(1500);
}
}
else{
for(int i=0;i<1;i++){
turn_on_led7(draw4, draw3, draw2, draw1, lc1);
turn_on_led7(draw4, draw3, draw2, draw1, lc2);
delay(1500);
for(int ii=0; ii<4; ii++){
lc1.clearDisplay(ii);
}
for(int ii=0; ii<4; ii++){
lc2.clearDisplay(ii);
}
delay(1500);
}
for(int j=0;j<8;j++){
lc1.setRow(0,j,nockanda_number[3][j]);
}
for(int j=0;j<8;j++){
lc2.setRow(0,j,nockanda_number[3][j]);
}
delay(1000);
for(int j=0;j<8;j++){
lc1.setRow(0,j,nockanda_number[2][j]);
}
for(int j=0;j<8;j++){
lc2.setRow(0,j,nockanda_number[2][j]);
}
delay(1000);
for(int j=0;j<8;j++){
lc1.setRow(0,j,nockanda_number[1][j]);
}
for(int j=0;j<8;j++){
lc2.setRow(0,j,nockanda_number[1][j]);
}
delay(1000);
p1_score = 0;
p2_score = 0;
}
}
void treasure() {
int value;
value= random(1,16);
digitalWrite(7,LOW);
digitalWrite(8,LOW);
digitalWrite(9,LOW);
digitalWrite(10,LOW);
digitalWrite(11,LOW);
digitalWrite(12,LOW);
digitalWrite(13,LOW);
digitalWrite(14,LOW);
digitalWrite(15,LOW);
digitalWrite(16,LOW);
digitalWrite(17,LOW);
digitalWrite(18,LOW);
digitalWrite(19,LOW);
digitalWrite(20,LOW);
digitalWrite(21,LOW);
digitalWrite(22,LOW);
int v = 1;
while(v){
if(value == 1 && !digitalRead(button[0])){
truelight(500);
delay(200);
truelight(500);
treasuredot3();
v=0;
break;
}
else if(value == 2 && !digitalRead(button[1])){
truelight(500);
delay(200);
truelight(500);
treasuredot3();
v=0;
break;
}
else if(value == 3 && !digitalRead(button[2])){
truelight(500);
delay(200);
truelight(500);
treasuredot3();
v = 0;
break;
}
else if(value == 4 && !digitalRead(button[3])){
truelight(500);
treasuredot3();
delay(200);
truelight(500);
v = 0;
break;
}
else if(value == 5 && !digitalRead(button[4])){
truelight(500);
treasuredot3();
delay(200);
truelight(500);
v = 0;
break;
}
else if(value == 6 && !digitalRead(button[5])){
truelight(500);
treasuredot3();
delay(200);
truelight(500);
v = 0;
break;
}
else if(value == 7 && !digitalRead(button[6])){
truelight(500);
treasuredot3();
delay(200);
truelight(500);
v = 0;
break;
}
else if(value == 8 && !digitalRead(button[7])){
truelight(500);
treasuredot3();
delay(200);
truelight(500);
v = 0;
break;
}
else if(value == 9 && !digitalRead(button[8])){
truelight(500);
treasuredot3();
delay(200);
truelight(500);
v = 0;
break;
}
else if(value == 10 && !digitalRead(button[9])){
truelight(500);
treasuredot3();
delay(200);
truelight(500);
v = 0;
break;
}
else if(value == 11 && !digitalRead(button[10])){
truelight(500);
treasuredot3();
delay(200);
truelight(500);
v = 0;
break;
}
else if(value == 12 && !digitalRead(button[11])){
truelight(500);
treasuredot3();
delay(200);
truelight(500);
v = 0;
break;
}
else if(value == 13 && !digitalRead(button[12])){
truelight(500);
treasuredot3();
delay(200);
truelight(500);
v = 0;
break;
}
else if(value == 14 && !digitalRead(button[13])){
truelight(500);
treasuredot3();
delay(200);
truelight(500);
v = 0;
break;
}
else if(value == 15 && !digitalRead(button[14])){
truelight(500);
treasuredot3();
delay(200);
truelight(500);
v = 0;
break;
}
else if(value == 16 && !digitalRead(button[15])){
truelight(500);
treasuredot3();
delay(200);
truelight(500);
v = 0;
break;
}
else{
treasurefail ();
v=1;
}
}
}
void treasurefail (){ //보물찾기 틀렸을때
if(digitalRead(button[0]) == LOW)
{
light(7,300);
}
else if(digitalRead(button[1]) == LOW)
{
light(8,300);
}
else if(digitalRead(button[2]) == LOW)
{
light(9,300);
}
else if(digitalRead(button[3]) == LOW)
{
light(10,300);
}
else if(digitalRead(button[4]) == LOW)
{
light(11,300);
}
else if(digitalRead(button[5]) == LOW)
{
light(12,300);
}
else if(digitalRead(button[6]) == LOW)
{
light(13,300);
}
else if(digitalRead(button[7]) == LOW)
{
light(14,300);
}
else if(digitalRead(button[8]) == LOW)
{
light(15,300);
}
else if(digitalRead(button[9]) == LOW)
{
light(16,300);
}
else if(digitalRead(button[10]) == LOW)
{
light(17,300);
}
else if(digitalRead(button[11]) == LOW)
{
light(18,300);
}
else if(digitalRead(button[12]) == LOW)
{
light(19,300);
}
else if(digitalRead(button[13]) == LOW)
{
light(20,300);
}
else if(digitalRead(button[14]) == LOW)
{
light(21,300);
}
else if(digitalRead(button[15]) == LOW)
{
light(22,300);
}
}
void treasuredot3(){
for(int i=0;i<1;i++){
turn_on_led5(soju4, soju3, soju2, soju1, lc3);
delay(1500);
for(int ii=0; ii<4; ii++){
lc3.clearDisplay(ii);
}
delay(1500);
}
}
void modechoice1(){
for(int i=0;i<1;i++){
turn_on_led8(M14, M13, M12, M11, lc3);
delay(1500);
for(int ii=0; ii<4; ii++){
lc3.clearDisplay(ii);
}
delay(1500);
}
}
void modechoice2(){
for(int i=0;i<1;i++){
turn_on_led9(M24, M23, M22, M21, lc3);
delay(1500);
for(int ii=0; ii<4; ii++){
lc3.clearDisplay(ii);
}
delay(1500);
}
}
void modechoice3(){
for(int i=0;i<1;i++){
turn_on_led10(M34, M33, M32, M31, lc3);
delay(1500);
for(int ii=0; ii<4; ii++){
lc3.clearDisplay(ii);
}
delay(1500);
}
}