# 기획 기간 (19.06.10 ~ 19.06.19) 9일

# 기획안 발표 : 19.06.20

# 주제 : KAGGLE 주택 가격 예측

 

@ 표지, 목차

@ 주제 소개

이번 분석 프로젝트에서는 Kaggle이라는 예측 모델 및 분석 대회 플랫폼에서 진행되고 있는 대회 중

주택 가격 예측 이라는 대회에 참여하여 진행하려고 합니다.

기본적으로 주어지는 데이터는 Train데이터와 Test데이터로

Train데이를 가지고 예측 모델을 만들어

Test데이터의 종속변수를 얼마나 예측할 수 있는지를 경쟁하는 대회입니다.

이 대회는 고급 회귀 기법을 사용하여 예측 값을 도출해내야하고

그 예측력으로 얻어진 점수를 실시간 리더보드를 통해 순위를 확인 할 수 있습니다.

데이터 셋으로는 총 79개의 범주형 수치형 등이 섞여있는 독립 변수와

주택 가격인 SalePrice 종속 변수로 이루어져 있습니다.

본격적인 데이터 분석에 앞서

간단하게 수치형 독립변수들을 가지고 단순히 상관계수가 높은 독립변수만 뽑아

회귀분석을 진행해 보았습니다.

단순히 돌려본 회귀분석을 통해 알아낸 바로는

회귀 모델이 유의하고 결정계수가 높긴 하나

전처리도 안했을 뿐더러 수치형으로 되있으나

데이터 설명으론 범주형인 데이터들도 있었습니다.

위와 더불어 다른 여러가지 변수특성들을 고려해가면서

분석을 진행 할 예정이고

데이터 셋의 전처리를 먼저 진행 할 계획입니다.

# 최종 웹 프로젝트 제작 기간 (19.04.22 ~ 19.05.01) 9일

# 최종 웹 프로젝트 발표 : 19.05.02

# 주제 : 블랙잭 게임 프로그래밍

 

@ 표지, 목차

@ 특징 소개

블랙잭 게임 특성상 사행성이라는 이미지를 없애기 위해

배팅 기능을 없애고 다른 기능을 구상해 보았습니다.

기본적인 게임으론 다소 재미가 떨어져

승부욕을 자극하기 위해 연승기록 기능을 추가 하게 되었습니다.

 

@ 시연

실시간 플레이는 실제 발표 중에 진행하였습니다.

실제 플레이 화면을 예시로 스크린샷을 보여드리겠습니다.

실제 웹 상에서는 Hit버튼을 누르면 카드가 위에서 차례대로 날라오고

딜러 카드 한장을 뒤집혀 진채로 날라옵니다.

모든 카드들은 랜덤이며

다음 스크린샷은 여러 결과들을 보여드리기 위해

엄청 나오기 희박한 결과물들을 보여드립니다.

@ 구조 및 알고리즘

웹 상에 게임 버튼은 총 3개로

Share 버튼을 누르게 되면 딜러 두장 플레이어 두장 카드를 나눠주며 게임을 시작하게 되고

플레이어가 Hit버튼을 누를 때 마다 한장씩 추가로 받게 됩니다.

만약 플레이어의 현재 카드가 21이 넘지 않는다는 조건 하에 Stand 버튼을 누르게 되면

자동적으로 딜러는 17이상이 될때까지 카드를 받게 되고

최종적으로 숫자를 비교하여 웹상 가운데 결과를 보여주게 됩니다.

먼저 웹이 작동 되면 52장의 카드 중 게임에 사용할 16장의 카드를 뽑아 페이지 상 안보이는 공간에 불러옵니다.

다음 캡쳐는 카드를 셔플하는 알고리즘과 Share버튼을 눌렀을 때 보여지는 애니메이션 코드입니다.

다음은 HIT 버튼의 알고리즘입니다.

HIT버튼을 누를때마다 자동적으로 숫자가 계산되며

빨간색 줄로 표시 된 곳은

뽑은 카드 중 ACE를 1로 계산할지 11로 계산 할지

판별해주는 알고리즘입니다.

기본적으로 ACE는 11로 계산 하되 자신의 카드가 21이 넘어갈 시

만약 자신의 카드 숫자 값중 11이라는 존재 한다면 그 갯수 만큼 10을 빼는 구조 입니다.

다음은 STAND 버튼 알고리즘입니다.

STAND버튼을 누르면 게임이 종료 되면서 자동적으로 딜러 카드가 17이상이 될때까지 뽑아야하기 때문에

HIT버튼과 ACE 판별하는 알고리즘은 비슷하지만

계산 부분은 다른것을 확인 할 수 있습니다.

다음은 SHARE 버튼으로 현재 연승 횟수를 다음 페이지로 넘기는 알고리즘을 가지고 있습니다.

다음은 게임의 승패 결과를 판별해내는 알고리즘입니다.

위의 승패 판별결과로 딜러가 승리하게 되면 자동적으로 프롬프트창을 띄워 플레이어의 ID를 받도록 만들었습니다.

이 때 연승횟수가 0회일 때를 제외하도록 만들었습니다.

 

@ 실패사례

다음은 실폐사례로

처음 의도는 연승 횟수가 1승 이상일 때만 프롬프트 창이 뜨게 하려고 했습니다.

하지만 0승인 상태에도 계속해서 프롬프트 창이 뜨는 문제가 발생하게 되었습니다.

이러한 문제들을 계속해서 공부한 결과 논리 구조를 변경하여 간단하게 해결 할 수 있었습니다.

문제를 해결하여 더이상 0승 일때는 프롬프트 창이 뜨지 않게 되었습니다.

다음 실패 사례는 ID 중복 문제 입니다.

만약 플레이어가 자신의 기록을 갱신할 경우

같은 ID로 기입하면 다음과 같이 같은 ID로 기록창에 나타나는 현상이 있었습니다.

다음 문제의 해결 방안으로는

애초에 데이터 베이스에서 데이터를 가져올 때

ID를 그룹으로 묶어 가장 높은 연승 횟수만 가져오도록 만들었습니다.

다음 실패 사례는 카드 분배 효과 표현입니다.

처음에 모든 기능은 작동했지만

마지막으로 카드가 날라오는 듯한 표현을 해주기 위해

애니메이션을 넣으려고 했습니다.

ppt 발표 상으로는 카드가 날라가는 효과를 애니메이션으로 표현하였습니다.

이러한 애니메이션 효과를 웹에서 나타내기 위해 날라오는 카드들에 각자 딜레이를 주어

마치 딜러가 한장한장 나눠주는 효과를 나타내었습니다.

# 기획 기간 (19.04.15 ~ 19.04.21) 6일

# 기획안 발표 : 19.04.22

# 주제 : 블랙잭 게임 프로그래밍

 

@ 표지, 목차

 

@ 블랙잭 소개

블랙잭은 카지노에서 가장 점유율이 높고 딜러가 승률이 높은 게임 중 하나 입니다.

블랙잭 게임 특성 상 딜러 혼자서 최대 8인의 플레이어를 상대 할 수 있어 카지노에서 좋아하는 게임입니다.

이번에 만들 프로젝트는 1대 다수가 아닌 컴퓨터가 딜러로 플레이어와 1:1 게임을 할 수 있는

게임 웹페이지를 만들 계획입니다.

블랙잭의 간단한 룰 소개를 하자면

1또는 11로 계산 되는 ACE카드

2~9까지의 카드

10으로 계산 되는 10, J, Q, K카드

4개의 문양들로 총 52장의 카드들로 진행합니다.

점수 계산은 다음과 같이 단순한 덧셈으로 이루어 지며 카드 합이 21에 가까울수록 더 좋은 카드입니다.

만약 21이 넘게 되면 무조건 지게 되므로 조심해야 합니다.

간단한 예시를 보여드리겠습니다.

처음 두장을 뽑으면 14인 상태인데 여기서 한장을 더 받으면 18이 되어 약간 높은 카드가 됩니다.

만약 여기서 플레이어가 욕심을 내어 한장을 더 받게 된다면 다음과 같이 21이 넘게 되어 승부에 상관없이 죽게 됩니다.

조금 더 어려운 예시로 보여드리자면

처음 두장을 ACE카드를 포함해서 받아 계산하면 20이 되지만

다음 카드를 받게 되면 ACE카드는 1로 계산되어 14가 되는 경우 입니다.

 

@ 웹 디자인

다음은 웹 페이지 구상 디자인 입니다.

다음과 같이 딜러와 플레이어 영역으로 나누고 카드를 받을지 그만둘지 버튼을 만들어 볼 계획입니다.

처음 게임을 시작하면

딜러는 한장을 뒤집은 채로 두장을 받고

플레이어는 두 장 모두 오픈 된 채로 받게 됩니다.

이때 Hit버튼을 누를 때 마다 한장씩 더 받게 됩니다.

만약 플레이어가 Stand를 누르면 게임이 종료 되고 딜러는 17 이상이 될 때까지 뽑습니다.

그리고 서로 점수를 계산하여 다음과 같이 결과를 나타내려 합니다.

뿐만아니라 게임 옆에 점수판도 만들어 연승기록들을 원하는 ID로 데이터베이스로 나타내려 합니다.

연승을 하다가 딜러에게 지면 다음과 같이 프롬프트 창을 통해 플레이어의 ID를 받아

데이터베이스에 전송할 예정입니다.

페이지 오른쪽 하단에는 다음과 같이 버튼을 만들어 Admin 페이지도 만들 예정입니다.

어드민 페이지를 누르게 되면 다음과 같이 어드민 페스워드 창이 나타나고 맞는 패스워드를 입력해야

어드민 페이지로 넘어가게 할 예정입니다.

어드민 페이지에서는 점수판에 나타나던 모든 기록들을 수정, 삭제 할 수 있도록 만들 예정입니다.

 

 

+ Recent posts