SlideShare a Scribd company logo
1 of 24
4장 스포츠 시뮬레이션 - 단순축구 박상혁
게임환경 경기장 1		: SoccerPitch 골대 2		: Goal 축구공 1		: SoccerBall 팀 2		: SoccerTeam 필드선수 8	: FieldPlayer 골키퍼 2		: GoalKeeper
축구장
골
축구공
SoccerTeam
최상 지원 지점 계산 팀이 공을 제어하고 있을 때, "좋은 위치"로다른 선수를 보내거나 패스를 하려고 할 때"좋은 위치" 를 결정하는 방법 상대편 경기장 쪽의 샘플링된 위치 지정
최상 지원 지점 계산
SoccerTeam State 골이 들어갈 때 PrepareForKickOff 양 팀 선수가 모두 제 위치에 있을 때 Attacking Defending 팀이 공을 제어할 때 팀이 공을 제어하지 않을 때
FieldPlayer 공격수 or 수비수 실제로는 최상지원지점 계산에서만 쓰인다 공격수만 최상지원지점 이용가능함 '도착하기', '찾기', '추적하기' 등의 조종행동을 하며경기장을 돌아다닌다
FieldPlayer State Msg_SupportAttacker Msg_GoHome Msg_ReceiveBall Msg_PassToMe Msg_Wait GlobalPlayerState 공에 가장 가까이 && 받는 선수가 지정되지 않고 && 골키퍼가 공을 가지고 있지 않음 Wait ReceiveBall 공에 충분히 가까이 감 || 팀이 공을 제어하지 않음 ChaseBall 공이 찰 수 있는 범위에 있을 때 공에 가장 가까이 있지 않을 때 슛,패스를 하고난 뒤 ReturnToHomeRegion KickBall 킥을 시도할 수 없을 때 슛, 패스를 할 수 없을 때 공을 찬 뒤 팀이 제어를 잃음 SupportAttacker Dribble
ChaseBall KickBall 공이 찰 수 있는 범위에 있을 때 ChaseBall 공에 가장 가까이 있지 않을 때 ReturnToHomeRegion
Wait Wait 공에 가장 가까이 && 받는 선수가 지정되지 않고 && 골키퍼가 공을 가지고 있지 않음 ChaseBall
KickBall KickBall 킥을 시도할 수 없을 때 ChaseBall
KickBall KickBall 슛,패스를 하고난 뒤 슛, 패스를 할 수 없을 때 Wait Dribble
GoalKeeper 골키퍼는 필드선수와는 다른 종류의 기술 사용 필드 선수와는 다른 별도의 클래스 움직임 패턴도 다르다 필드 선수와 상태 집합이 다름
GoalKeeper State GlobalKeeperState Msg_GoHome Msg_ReceiveBall PutBallBackInPlay 공을 가로챈 뒤 InterceptBall 골에서 멀고 공에서 가장  가깝지 않을때 패스를 한 뒤 공이 한도 내로 들어오면 TendGoal 정해진 거리  내로 들어오면 골에서 멀고 위협이 없을 때 홈에 가깝거나 상대편이 공을 가지면 ReturnHome
TendGoal PutBallBackInPlay 공이 한도 내로 들어오면 TendGoal InterceptBall 정해진 거리  내로 들어오면 골에서 멀고 위협이 없을 때 ReturnHome
주요 메소드 SoccerTeam::isPassSafeFromAllOpponent 위치 A에서 B까지의 패스가 공의 궤적 어딘가에서상대편 선수에게 가로채기 당할 수 있는가.
주요 메소드 SoccerTeam::CanShoot
추정 및 가정하기 1. 완벽하게 만든 후 바보스럽게 행동하기 ex) CanShoot 에서 무작위 목표 설정 2. 가정과 추정을 통해 오류가 생길 수 있게 하기 가로채기 영역을 원으로 설정 불확실성을 만들기 알고리즘이 쉽고 CPU를 많이 소모하지 않으면 1번. 그렇지 않으면 2번을 통해 복잡도를 줄인다.
끗

More Related Content

Viewers also liked

디즈니
디즈니디즈니
디즈니
yurbong
 
우글우글[1] (1)
우글우글[1] (1)우글우글[1] (1)
우글우글[1] (1)
enfkclzk00
 

Viewers also liked (11)

final project
final projectfinal project
final project
 
20150920 아이니더스 ppt
20150920 아이니더스 ppt20150920 아이니더스 ppt
20150920 아이니더스 ppt
 
[Stp]"fc서울"
[Stp]"fc서울"[Stp]"fc서울"
[Stp]"fc서울"
 
운동선수 교육 프로그램 소개
운동선수 교육 프로그램 소개운동선수 교육 프로그램 소개
운동선수 교육 프로그램 소개
 
디즈니
디즈니디즈니
디즈니
 
20150307 abcd발표_ux디자이너 실력으로 살아남기
20150307 abcd발표_ux디자이너 실력으로 살아남기20150307 abcd발표_ux디자이너 실력으로 살아남기
20150307 abcd발표_ux디자이너 실력으로 살아남기
 
IoT 기반 융합 서비스 기술 (응용사례)
IoT 기반 융합 서비스 기술 (응용사례)IoT 기반 융합 서비스 기술 (응용사례)
IoT 기반 융합 서비스 기술 (응용사례)
 
IoT(사물인터넷) 제품 및 서비스 동향
IoT(사물인터넷) 제품 및 서비스 동향IoT(사물인터넷) 제품 및 서비스 동향
IoT(사물인터넷) 제품 및 서비스 동향
 
Fc서울 골든골
Fc서울 골든골Fc서울 골든골
Fc서울 골든골
 
우글우글[1] (1)
우글우글[1] (1)우글우글[1] (1)
우글우글[1] (1)
 
SNS마케팅의 기분좋은 알림! 알리다.
SNS마케팅의 기분좋은 알림! 알리다.SNS마케팅의 기분좋은 알림! 알리다.
SNS마케팅의 기분좋은 알림! 알리다.
 

More from SH Park

도메인 주도 설계 - 16 대규모 구조
도메인 주도 설계 - 16 대규모 구조도메인 주도 설계 - 16 대규모 구조
도메인 주도 설계 - 16 대규모 구조
SH Park
 
PrimesIsInP
PrimesIsInPPrimesIsInP
PrimesIsInP
SH Park
 
Introduction to prolog
Introduction to prologIntroduction to prolog
Introduction to prolog
SH Park
 
Apprenticeship patterns chapter4
Apprenticeship patterns chapter4Apprenticeship patterns chapter4
Apprenticeship patterns chapter4
SH Park
 
xunittestpatternchapter15
xunittestpatternchapter15xunittestpatternchapter15
xunittestpatternchapter15
SH Park
 
Design Pattern In Functional Language
Design Pattern In Functional LanguageDesign Pattern In Functional Language
Design Pattern In Functional Language
SH Park
 
5장. 그래프와 트리 (3,4)
5장. 그래프와 트리 (3,4)5장. 그래프와 트리 (3,4)
5장. 그래프와 트리 (3,4)
SH Park
 

More from SH Park (8)

Nodejs_chapter9
Nodejs_chapter9Nodejs_chapter9
Nodejs_chapter9
 
도메인 주도 설계 - 16 대규모 구조
도메인 주도 설계 - 16 대규모 구조도메인 주도 설계 - 16 대규모 구조
도메인 주도 설계 - 16 대규모 구조
 
PrimesIsInP
PrimesIsInPPrimesIsInP
PrimesIsInP
 
Introduction to prolog
Introduction to prologIntroduction to prolog
Introduction to prolog
 
Apprenticeship patterns chapter4
Apprenticeship patterns chapter4Apprenticeship patterns chapter4
Apprenticeship patterns chapter4
 
xunittestpatternchapter15
xunittestpatternchapter15xunittestpatternchapter15
xunittestpatternchapter15
 
Design Pattern In Functional Language
Design Pattern In Functional LanguageDesign Pattern In Functional Language
Design Pattern In Functional Language
 
5장. 그래프와 트리 (3,4)
5장. 그래프와 트리 (3,4)5장. 그래프와 트리 (3,4)
5장. 그래프와 트리 (3,4)
 

4장 스포츠 시뮬레이션 - 단순 축구

  • 1. 4장 스포츠 시뮬레이션 - 단순축구 박상혁
  • 2.
  • 3. 게임환경 경기장 1 : SoccerPitch 골대 2 : Goal 축구공 1 : SoccerBall 팀 2 : SoccerTeam 필드선수 8 : FieldPlayer 골키퍼 2 : GoalKeeper
  • 4.
  • 6.
  • 9. 최상 지원 지점 계산 팀이 공을 제어하고 있을 때, "좋은 위치"로다른 선수를 보내거나 패스를 하려고 할 때"좋은 위치" 를 결정하는 방법 상대편 경기장 쪽의 샘플링된 위치 지정
  • 11. SoccerTeam State 골이 들어갈 때 PrepareForKickOff 양 팀 선수가 모두 제 위치에 있을 때 Attacking Defending 팀이 공을 제어할 때 팀이 공을 제어하지 않을 때
  • 12. FieldPlayer 공격수 or 수비수 실제로는 최상지원지점 계산에서만 쓰인다 공격수만 최상지원지점 이용가능함 '도착하기', '찾기', '추적하기' 등의 조종행동을 하며경기장을 돌아다닌다
  • 13. FieldPlayer State Msg_SupportAttacker Msg_GoHome Msg_ReceiveBall Msg_PassToMe Msg_Wait GlobalPlayerState 공에 가장 가까이 && 받는 선수가 지정되지 않고 && 골키퍼가 공을 가지고 있지 않음 Wait ReceiveBall 공에 충분히 가까이 감 || 팀이 공을 제어하지 않음 ChaseBall 공이 찰 수 있는 범위에 있을 때 공에 가장 가까이 있지 않을 때 슛,패스를 하고난 뒤 ReturnToHomeRegion KickBall 킥을 시도할 수 없을 때 슛, 패스를 할 수 없을 때 공을 찬 뒤 팀이 제어를 잃음 SupportAttacker Dribble
  • 14. ChaseBall KickBall 공이 찰 수 있는 범위에 있을 때 ChaseBall 공에 가장 가까이 있지 않을 때 ReturnToHomeRegion
  • 15. Wait Wait 공에 가장 가까이 && 받는 선수가 지정되지 않고 && 골키퍼가 공을 가지고 있지 않음 ChaseBall
  • 16. KickBall KickBall 킥을 시도할 수 없을 때 ChaseBall
  • 17. KickBall KickBall 슛,패스를 하고난 뒤 슛, 패스를 할 수 없을 때 Wait Dribble
  • 18. GoalKeeper 골키퍼는 필드선수와는 다른 종류의 기술 사용 필드 선수와는 다른 별도의 클래스 움직임 패턴도 다르다 필드 선수와 상태 집합이 다름
  • 19. GoalKeeper State GlobalKeeperState Msg_GoHome Msg_ReceiveBall PutBallBackInPlay 공을 가로챈 뒤 InterceptBall 골에서 멀고 공에서 가장 가깝지 않을때 패스를 한 뒤 공이 한도 내로 들어오면 TendGoal 정해진 거리 내로 들어오면 골에서 멀고 위협이 없을 때 홈에 가깝거나 상대편이 공을 가지면 ReturnHome
  • 20. TendGoal PutBallBackInPlay 공이 한도 내로 들어오면 TendGoal InterceptBall 정해진 거리 내로 들어오면 골에서 멀고 위협이 없을 때 ReturnHome
  • 21. 주요 메소드 SoccerTeam::isPassSafeFromAllOpponent 위치 A에서 B까지의 패스가 공의 궤적 어딘가에서상대편 선수에게 가로채기 당할 수 있는가.
  • 23. 추정 및 가정하기 1. 완벽하게 만든 후 바보스럽게 행동하기 ex) CanShoot 에서 무작위 목표 설정 2. 가정과 추정을 통해 오류가 생길 수 있게 하기 가로채기 영역을 원으로 설정 불확실성을 만들기 알고리즘이 쉽고 CPU를 많이 소모하지 않으면 1번. 그렇지 않으면 2번을 통해 복잡도를 줄인다.
  • 24.