최첨단 뽑기 기계
새로운 고객사 주식회사 왕뽑기를 만나 보자.
최근 기술이 발달함에 따라 뽑기 기계 회사도 제품에 CPU를 넣어서 매출액도 늘리고, 네트워크로 재고 조사도 하고, 고객 만족도도 집계하려 한다.
그 회사가 뽑기 기계 전문 회사다 보니 우리에게 도움을 요청했다.
☕ 사무실 옆자리에서 들려온 이야기
위의 다이어그램은 상태 다이어그램으로 동그라미를
상태
, 화살표는
상태 전환
을 나타낸다.
동그라미 친 부분은 전부 상태(state)를 나타내는 것으로 예를 들면 ‘동전 없음’은 뽑기 기계의 시작 상태로, 각 상태는 기계가 어떤 식으로 설정되어 있는지를 나타낸다.
그 설정에 따라
특정한 방법으로 작동하고, 한 상태에서 다른 상태로 전환하려면 어떤 행동이 필요하다.
상태는 ‘동전 없음’, ‘동전 있음’, ‘알맹이 판매’, ‘알맹이 매진’ 4가지로 이루어져 있고, 행동은 ‘동전 투입’, ‘동전 반환’, ‘손잡이 돌림’, ‘알맹이 내보냄’ 4가지로 이루어져 있다.
하지만
알맹이를 꺼낼 때 남아 있는 알맹이가 몇 개인지 확인한 다음 조건에 따라서 다음 상태로 넘어가야 한다.
남아 있는 알맹이 개수를 알아야 하고, 사용자가 엉뚱한 행동을 할 수 있다는 사실
도 기억해야 한다.
상태 기계 기초 지식 알아보기
상태 다이어그램을 코드로 변경하여 상태 기계를 구현하는 방법을 알아 본다.
우선 상태들을 모아 본다.
현재 상태를 저장하는 인스턴스 변수를 만들고 각 상태의 값을 정의한다.