- 고전 보드게임 부루마블을 만들어보자.
- PC와 대결구도(AI라고 써놨지만 자동 학습기능은 없다.), 회원가입, 로그인, Thread 활용하기.
- Java Swing, Thread 활용, mairaDB연동
- User와 AI 간에 역할을 번갈아 주는 것이 어려움.
- 영역에 도착할 때마다 화면을 새로 띄워야함.
- 보드영역(Border Center), 우측 AI,User 정보영역 (Border East)을 계속 재생성 시켰음.
- 소스 코드는 첨부파일 참고
1. DB 설계
area > 부루마블 보드, 각 영역 정보
member > 회원과 PC의 정보
2. UI 설계 및 구현
- 로그인, 회원가입 페이지 지원
- 상대는 AI 이며 정해진 로직으로 수행한다
AI 로직
- 파란색 영역이 AI의 영역
- 땅을 사면서 주택만 건설함
- KTX로 이동시 무조건 시작 위치로 이동
- 나머지는 User의 행동과 같다.
- 주사위는 1~6까지 랜덤수로 나옴
- 기본 자금은 1억으로 시작
- 빨강색 영역은 User, 파랑색 영역은 AI
- 기부금 영역에 들어오면, 100만~1000만까지 랜덤하게 기부하며
기부된 상태로 다시 들어오면, 그 돈을 받아간다.
- 비트코인 영역에 들어오면, 2턴 쉰다.
- KTX 영역에 들어오면, 원하는 위치로 입력해서 들어갈 수 있다.
(단 그 영역을 사거나 팔 수 없음)
- 상대방 영역에 들어왔는데 돈이 없는 경우, 자동으로 비싼 땅 순으로 판다.
- 처음 위치를 지나면 200만원을 지원한다.
- 땅도 없고 돈도 없으면 패배
- 승리, 패배는 구현 안하기로 함.(로그인,회원가입도 사실 필요 없음)
3. DB 쿼리 추가
-- 회원
CREATE TABLE member (
id VARCHAR(10) NOT NULL, -- 아이디
pwd VARCHAR(10) NOT NULL, -- 비밀번호
winCnt INTEGER NOT NULL, -- 승리횟수
loseCnt INTEGER NOT NULL, -- 패배횟수
money INTEGER NOT NULL, -- 돈
restCnt INTEGER NOT NULL, -- 쉬는턴
areaNo VARCHAR(10) NOT NULL -- 지역번호
);
-- 회원 기본키
CREATE UNIQUE INDEX PK_member
ON member ( -- 회원
id ASC -- 아이디
);
-- 회원
ALTER TABLE member
ADD
CONSTRAINT PK_member -- 회원 기본키
PRIMARY KEY (
id -- 아이디
);
-- 새 테이블
CREATE TABLE area (
areaNo VARCHAR(10) NOT NULL, -- 지역번호
areaName VARCHAR(10) NOT NULL, -- 이름
areaPrice INTEGER NOT NULL, -- 가격
areaHost VARCHAR(10) NOT NULL, -- 주인
areaBuild VARCHAR(10) NOT NULL, -- 건물
areaUser VARCHAR(10) NOT NULL, -- 유저위치
areaAI VARCHAR(10) NOT NULL, -- AI위치
areaTurn VARCHAR(10) NOT NULL -- 현재턴
);
-- 새 테이블 기본키
CREATE UNIQUE INDEX PK_area
ON area ( -- 새 테이블
areaNo ASC -- 지역번호
);
-- 새 테이블
ALTER TABLE area
ADD
CONSTRAINT PK_area -- 새 테이블 기본키
PRIMARY KEY (
areaNo -- 지역번호
);
-- 회원
ALTER TABLE member
ADD
CONSTRAINT FK_area_TO_member -- 새 테이블 -> 회원
FOREIGN KEY (
areaNo -- 지역번호
)
REFERENCES area ( -- 새 테이블
areaNo -- 지역번호
);