산업 제조
산업용 사물 인터넷 | 산업자재 | 장비 유지 보수 및 수리 | 산업 프로그래밍 |
home  MfgRobots >> 산업 제조 >  >> Manufacturing Technology >> 제조공정

아두이노 듀(Due) 터치스크린으로 만드는 틱택토(Tic-Tac-Toe) 게임

부품 및 소모품

부품수량
아두이노 듀 (Arduino Due)1
2.8인치 TFT LCD 터치스크린 (ILI9341 컨트롤러, 터치 컨트롤러 XPT2046 등)1
점퍼 와이어1세트

소프트웨어

프로젝트 개요

nickthegreek82의 'arduino-touch-tic-tac-toe-game' 프로젝트를 기반으로, 아두이노 듀와 2.8인치 터치스크린 TFT LCD를 이용해 사람 대 컴퓨터 대전이 가능한 틱택토 게임을 구현했습니다. 미니맥스(Minimax) 알고리즘으로 무적에 가까운 AI를 탑재했습니다.

배선 (Wiring)

터치스크린 → 아두이노 듀

터치 핀아두이노 핀
T_IRQ22
T_DO24
T_DIN26
T_CS28
T_CLK30

디스플레이 → 아두이노 듀

디스플레이 핀아두이노 핀
SDO (MISO)A.25 (아날로그 25)
LED (백라이트)3.3V
SCKA.27
SDI (MOSI)A.26
DC9
RESET8
CS10
GNDGND
VCC3.3V

개발 이력

소스 코드 (두 가지 버전)

버전 1: 기본 틱택토 (방어적 AI)

상대방의 2연속을 막고, 자신이 2연속이면 이기는 수를 두며, 그 외엔 랜덤 수를 두는 휴리스틱 AI.


// 주요 구조:
// - 보드 상태: int board[9] (0=빈칸, 1=사람, 2=CPU)
// - 터치 입력으로 사람 수 둠 (playerMove)
// - CPU 수: arduinoMove()에서 휴리스틱으로 결정
// - 승리 판정: checkWinner()에서 8가지 승리 라인 검사
// - 비트맵으로 X(파랑), O(빨강) 그리기
// 전체 코드는 원본 참조 (길이 상 생략)

버전 2: TicTacToe_new (미니맥스 AI - 필승/무승부 보장)

미니맥스 알고리즘으로 최적의 수를 계산해 사람이 이길 수 없음(최적 플레이 시 무승부). 난이도 조절 가능(difficulty 변수로 탐색 깊이 제한).


// 핵심 함수:
// int minimax(int board[9], int player, int depth)
//   - 재귀적으로 모든 가능한 수 탐색, 평가 점수 반환
//   - player: 1(CPU), -1(사람)
//   - depth 제한으로 난이도 조절
// void computerMove(int board[9])
//   - 빈 칸 각각에 대해 minimax 호출, 최고 점수 수 선택
// 터치 좌표 매핑: playerMove()에서 터치 영역 9구역으로 분할 판정
// 전체 코드는 원본 참조

회로도

아두이노 듀(Due) 터치스크린으로 만드는 틱택토(Tic-Tac-Toe) 게임

제조공정

  1. 커스텀 4×4 틱택토 방문카드 PCB – 설계, 제작, 코드 가이드
  2. K30 CO2 센서: 실시간 실내 공기질 모니터링
  3. 1Sheeld와 아두이노로 시각/청각 장애인 간 소통 돕기
  4. 스마트 저금통 만들기: 아두이노 나노로 동전 인식기 제어하기
  5. 아두이노 블루투스로 LED 제어하기 - HC-05 & MIT App Inventor 입문 가이드
  6. DFRobot 정전식 지문 인식 센서 아두이노/ESP8266 연동 가이드
  7. 아두이노 메가와 센서를 활용한 인터랙티브 넥시온 HMI 프로젝트
  8. 아두이노 메가 기반 닌텐도 눙크 컨트롤 6자유도 로봇 암 키트
  9. 아두이노 우노와 이더넷 실드로 정확한 태양광 복사량 측정하기
  10. 컴팩트 아두이노 레이더 시스템: HC-SR04 초음파 센서 & 1.8인치 디스플레이