• 강의
  • 커뮤니티
  • 북마크
GCR

자료실

코딩자료 | 인공주사위

최고관리자
2019.12.05 14:26 50 0

본문

int dicePaterns[7][7] = {
    {0, 0, 0, 0, 0, 0, 1}, // 1
    {0, 0, 1, 1, 0, 0, 0}, // 2
    {0, 0, 1, 1, 0, 0, 1}, // 3
    {1, 0, 1, 1, 0, 1, 0}, // 4
    {1, 0, 1, 1, 0, 1, 1}, // 5
    {1, 1, 1, 1, 1, 1, 0}, // 6
    {0, 0, 0, 0, 0, 0, 0} // BLANK
};

int switchPin = 9;
int blank = 6;

void setup() {
  for (int i = 0; i < 7; i++) {
      pinMode(ledPins[i], OUTPUT);
      digitalWrite(ledPins[i], LOW);
  }
  pinMode(switchPin, INPUT_PULLUP);
  randomSeed(analogRead(0));
}

void loop(){
  if (digitalRead(switchPin) == LOW){
      rolTheDice();
  }
  delay(100);
}


void rolTheDice(){
  int result = 0;
  int lengthOfRol = random(15, 25);
  for (int i = 0; i < lengthOfRol; i++) {
      result = random(0, 6); // result wil be 0 to 5 not 1 to 6
      show(result);
      delay(50 + i * 10);
  }
  for (int j = 0; j < 3; j++) {
      show(blank);
      delay(500);
      show(result);
      delay(500);
  }
}

void show(int result){
  for (int i = 0; i < 7; i++){
      digitalWrite(ledPins[i], dicePaterns[result][i]);
  }
}

댓글목록 0

등록된 댓글이 없습니다.