첫 번째로 내가 작성하는 언어는 노드 (자바 스크립트)이지만 실제로는 그 뒤에있는 컴퓨터 과학과 코드뿐만 아니라 실제로 수행하는 방법을 찾고 있습니다.
기본적으로 내가 가진 것은 2,000 x 2,000 2 차원 배열입니다 (내 말은 2,000 항목 긴 배열의 모든 항목에 자체 2,000 개 항목이 있다는 의미입니다). 이 배열 안에는 0, 1, 2 3 등의 값이 있습니다. 그것들은 서로 다른 간격을두고 있으며, 각각이 얼마나 공통적으로 나타나는지에 대해서는 서로 다릅니다. 내가 원하는 것은 키, idc 키 / 시드의 길이, 작업을 완료 할 수있는 합리적인 길이를 기반으로이 배열을 생성하는 것입니다. 동일한 키인 경우 동일한 배열을 생성하고 다른 키인 경우 다른 배열을 생성하기를 원합니다. 기본적으로 키를 가져 와서 더 긴 데이터를 생성하지만이 데이터에는 인식 할 수있는 패턴이 나타나지 않습니다.
이것에 대한 내 생각은 배열의 위치를 얻기 위해 여러 상수에 대해 곱하는 일종의 십진수 키를 갖는 것이지만 tbh는 어디에서 시작 해야할지 전혀 모릅니다. 본질적으로 마인 크래프트가 시드를 가져와 맵으로 바꾸는 것과 동일한 시드가 동일한 맵을 다시 생성하는 것과 같습니다.
시드 할 수있는 임의 번호 생성기 (RNG)는 주어진 시드에 대해 동일한 일련의 임의 값을 제공하며 결정 가능한 패턴이 없어야합니다. 불행히도 javascript의 기본 RND는 시드 할 수 없습니다 . 이 SE 게시물에 따라 직접 작성하거나 다른 사람의 .
시드 가능한 RNG가 있으면 각 항목에 대해 먼저 임의의 값을 얻은 다음 임의의 값을 원하는 출력 값으로 변환합니다. 변환을 수행하는 방법에는 여러 가지가 있습니다. 몇 개만 있으면 다음과 같이 할 것입니다 (random_value가 0과 1 사이라고 가정).
if(rand_value <= 70){
output_value = 1;
}
else if(rand_value <= 90){
output_value = 2;
}
else if(rand_value <= 97){
output_value = 3;
}
else {
output_value = 4
}
이것은 각각 1, 2, 3 또는 4를 얻기 위해 70 %, 20 %, 7 % 및 3 %를 제공합니다. 필요에 따라 값을 조정하십시오. 참고 : 출력 값이 많을 경우이를 반영하도록 질문을 편집해야합니다.이 문제를 해결할 수있는 방법은 거대 if else 블록보다 더 깔끔합니다.
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다