programming/c , c++
[테트리스개발]c언어 난수생성
worldint
2021. 7. 12. 02:37
무작위로 블록이 나와야하기때문에 난수가 필요하다.
블록모양이 총 7개니까 배열을 만들어서 모양을 저장해놓구
그중에 하나를 무작위로 선택되어야 한다
그러므로 0~6까지의 7가지 숫자가 나오면되고
rand()함수를 사용해서 만들어줍니다
rand()함수를 사용하면 0~32767범위의 숫자를 반환해준다
int random;
random = rand();
이런식으로 사용하면되고, 나머지 연산을 활용해서 내가필요한 숫자만 나오게해준다
random = rand()%7 이렇게 쓰면 rand()에서 반환된 숫자를 7로나눈 나머지이다.
그러므로 0~6까지의 숫자를 얻을수있다.
이렇게하면 프로그램 실행시 마다 매번 똑같이 반복되는 수를 얻게되므로 난수라고 할수없다
그 이유는 rand()함수의 시드값이 일정하기 때문에다
rand()함수의 시드값을 바꿔주는 함수 srand()라는 함수이고 매개변수에 매순간 바뀌는 시간값을 넣어주면 된다.
srand(time(NULL)); //프로그램 실행시마다 rand에 매번 다른 시드값이 들어간다
int random = 0;
random = rand()%7;
이런식으로 쓰면 된다.