프로그래밍언어중에 할 수 있는게 프로세싱 밖에 없어서 프로세싱으로 지뢰찾기를 만들고 있는데
다른건 다 그럭저럭 만들었다? 근데 문제가 지뢰 개수가 조정이 안돼.
위에 이미지가 지뢰 다 찾아서 깃발꽂은 이미지고 오른쪽 아래에 깃발 개수가 뜨도록 해놨는데 지뢰찾기 고급이면 지뢰 99개 떠야 하는데 저거 밖에 안됨.
지뢰 지정은
while (countM<100) {//지뢰개수 100개 안될때까지
for (j=0; j<16; j++) {
for (i=0; i<30; i++) {
k=30*j+i;
mineo[k] =floor(random(5));//0부터 4까지 정수중에 무작위로 할당
if (mineo[k]==0) {
countM++;//0나오면 지뢰가 하나 생긴걸로 간주하고 지뢰개수 추가
}
}
}
}
이렇게 했는데 방법의 문제인가,.... 원론적인 해결방법은 480중에서 99개 정수를 선택하는 건데 그걸 어떻게 해야할 지 모르겠어...
처음 시작할 때부터 싸매고 고민한 문제니까 2개월가까이 고민해봤는데 답이 안나와.... 프로세싱 홈페이지 정독하고 국내자료 다 찾아보고 심지어 자바쪽까지 뒤졌는데 어떻게 하면 좋지....
99개 지뢰 박아넣고 셔플하면안됨?
저거 루프 오지게돌아가는데
걍 앞에다 99개채우고 셔플돌려
저거 지뢰 늘어날수록 while문 반복량 오지게 늘어난다
0으로 초기화한다음에 앞에 지뢰 99개 채우고 길가에 널린 셔플알고리즘 하나 적용하면 끝남
아니 저거 저대로써도 설계에러라고. 한 500개중에 지뢰 490개 해보면 컴퓨터 순간 멈출껄
애초에 random(5)도 의미가 없음. 쓸데없이 수행시간 5배로 올라가고
앞에 몰리니까 저렇게 했나본데, 걍 rand 범위를 x * y해서 반복하는게 차라리 더 수십배 빠를거임
ㅇㅇ 그렇게 해도 무방함
아.... 그러면 인덱스 다시지정하는거 부터 고민해야겠네