본문내용
1. 응용 논리 회로 (Term Project)
1.1. Baseball 게임
1.1.1. Baseball 게임의 개념
Baseball 게임이란 상대방이 생각한 숫자를 맞추는 게임이다.
상대방이 123이란 숫자를 생각했을 때, 내가 321이라 말하면, 상대방은 1스트라이크 2볼이라 말한다. 이를 반복하여, 숫자를 맞춰가는 게임이다.
게임 시작 시 각 플레이어는 임의의 3자리 숫자를 생각하고, 상대방의 추측 숫자와 자신이 생각한 숫자를 비교하여 스트라이크와 볼의 개수를 알려준다. 스트라이크는 숫자와 자리가 모두 맞는 경우이고, 볼은 숫자는 맞지만 자리가 틀린 경우이다. 이를 통해 상대방은 자신이 생각한 숫자를 점차 맞춰나간다.
선수들은 이 과정을 반복하면서 상대방이 생각한 숫자를 맞히려 노력하며, 먼저 상대방의 숫자를 맞히는 선수가 승리하게 된다.
1.1.2. State Machine Diagram
우선 Reset을 통해 INIT 상태를 만든다. INIT 상태에서는 모두 0이고, P1 LED만 켜지게 한다. go_game1 버튼을 누르면 Baseball 게임, go_game2 버튼을 누르면 Up&Down 게임이 선택되어 진다. 그 다음, 각각의 Start 상태로 가서, 자신이 생각한 숫자를 num_p1, num_p2에 입력한다. 모두 입력이 되면 Decision 상태로 가는데, 여기서 자신이 결정한 숫자를 Decision_p1, Decision_p2라 한다면, 이를 상대방이 생각한 숫자인 num_p2, num_p1과 비교하여 맞지 않으면, 플레이어를 바꾸고, 몇 스트라이크 몇 볼인지 혹은, Up인지 Down인지 결과를 출력한다. 만일, 결과가 일치하면, Win 상태로 넘어간 후, 승리한 플레이어의 LED가 깜박거리게 한다. New_game을 누르면 다시 INIT 상태로 돌아간다. 게임의 목적이 비슷하여 State Machine Diagram은 똑같이 가게 된다.
1.2. Up&Down 게임
1.2.1. Up&Down 게임의 개념
Up&Down 게임은 상대방이 생각한 숫자를 맞추는 게임이다.
게임은 다음과 같이 진행된다. 플레이어1이 숫자를 정하면 플레이어2는 숫자를 추측하여 말한다. 그리고 상대방이 생각한 숫자보다 자신의 숫자가 크면 "Down", 작으면 "Up"이라고 말한다. 이를 반복하여 숫자를 맞추는 것이 게임의 목적이다.
이 게임은 Baseball 게임과 유사한 점이 있지만, 게임 방식이 다르다. Baseball 게임은 상대방이 생각한 숫자를 맞추는데 반해, Up&Down 게임은 상대방이 말한 "Up" 또는 "Down"을 통해 숫자를 점진적으로 맞춰나가는 방식이다.
이처럼 Up&Down 게임은 상대방이 생각한 숫자를 맞추는 과정에서 상대방의 힌트를 활용한다는 점에서 Baseball 게임과 차별화된다.
1.2.2. State Machine Diagram
Up&Down 게임의 State Machine Diagram은 다음과 같다.
우선 Reset을 통해 INIT 상태를 만든다. INIT 상태에서는 모두 0이고, P1 LED만 켜지게 한다. go_game2 버튼을 누르면 Up&Down 게임이 선택되어 START2 상태로 가게 된다.
START2 상태에서는 플레이어 2(P2)가 숫자를 입력하고, 플레이어 1(P1)이 상대방의 숫자를 맞추게 된다. 숫자를 입력하면 DECISION2 상태로 간다.
DECISION2 상태에서는 P1이 입력한 숫자와 P2가 입력한 숫자를 비교하게 된다. 만약 P1의 숫자가 P2의 숫자보다 크다면 Up_led가 켜지고, 반대로 작다면 Down_led가 켜진다. 맞출 경우 WIN 상태로 전환되며, P1의 LED가 깜박거린다.
새로운 게임을 시작하고자 할 경우 new_game 버튼을 누르면 다시 INIT 상태로 돌아가게 된다.
즉, Up&Down 게임의 State Machine Diagram은 INIT, START2, DECISION2, WIN의 상태로 구성되며, 숫자 비교 및 결과 출력을 통해 게임이 진행된다고 볼 수 있다.
2. Schematic Design wi...
...