게임 (League of legends) 용 시뮬레이터 (기본적으로 테스트 목적으로)를 만들고 싶습니다.
게임의 기초 :
당신은 몇 가지 통계를 가진 영웅이 있습니다 :
- 건강 포인트
- 공격력
- 공격 속도
- 갑옷
- 방어구 관통
- 이동 속도
영웅은 4 가지 기술을 가질 수 있습니다 (각 레벨마다 하나의 스킬 포인트를 얻습니다) (수동으로 대부분 활성화되며 재사용 대기 시간, 데미지, 공격력 / 공격력, 기술 수준) + 수동 기술
적 영웅이나 중립 괴물을 죽일 수 있습니다.
- 건강 포인트
- 공격력
- 공격 속도
- 갑옷
내가하고 싶은 것 :
특정 아이템 또는 특정 스탯 증가로 인해 킬링 파워 / 스피드가 빨라지는지 테스트 할 도구를 만듭니다.
지도 : http://evtron.com/Evtron-Alpha/wp-content/uploads/2011/02/Summoners-Rift.jpg
통계 예 :
- HP : 420
- 광고 : 55
- AttackSpeed : 0.613 (공격 / 초-> 1 / 0.613 초마다 공격)
- 방어구 관통력 : 25
캐릭터는 1 / 공격 속도로 적을 자동 공격하고 공격 피해로 피해를 입 힙니다 (손상을 계산하는 공식이 있지만이 단계에서는 중요하지 않은 것으로 추측됩니다), 일단 죽으면 이동 속도로 다음 단계로 이동합니다 ( 지도에서 캠프, 노란색 두개골을 볼 수 있습니다)
알고리즘에 대해 생각하고있었습니다.
나는 단지 i = 0에서 i = 30000 (counts ms)까지 for를 만들면, 적의 hp와 hp를 확인할 수 있고 모든 ms에서 너무 나쁘다. 그것에 임의의 비트를 넣으려면 1k 반복을 요약 할 수 있어야합니다.
두 번째로, 나는 i = 1에서 30까지만 수행하고 매 초마다 확인하고 마지막 2 초 동안 일어난 일을 확인해야한다고 생각했지만 중립 괴물 중 일부는 큰 수용소에 있습니다 (최대 4 명의 괴물). 이런 식으로 코드가 복잡해지고 복잡해졌습니다.
각 플레이어 / 몬스터마다 스레드를 만들고, 그들이 죽었을 때 조회를 마치고 플레이어의 HP를 줄입니다.
내 질문은 이것이 올바른 방법입니까?
TLDR : 스탯 증가로 인해 캐릭터가 더 빨리 중립 몬스터를 죽일 수있는 게임에 대한 분석 (1k 반복 및 평균 계산)을 생성하는 도구를 만들고 싶습니다.
나는 자바를 선호하지만 atm 나는 알고리즘을 고수하고있다.
@ Karoly S : 그렇습니다, 그것은 나의 잘못입니다.
나는 이것을 연구하고있다 :
각 개체 (플레이어 스킬, 자동 공격, 버프)에서 남은 시간을 확인하고 항상 가장 짧은 시간을 선택하고 last_time을 저장하고 시간을 추가하면 다음 라운드에서 시간을 다음과 같이 계산합니다. 마지막으로)
개체에 남은 시간이 0이면 필요한 모든 작업을 수행합니다.
그것이 효율적인지 아닌지는 모르겠지만, 그것이 최선의 방법입니다.