무작위로 블록이 나와야하기때문에 난수가 필요하다.
블록모양이 총 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;
이런식으로 쓰면 된다.
'programming > c , c++' 카테고리의 다른 글
[테트리스개발]에러:위치를 읽는 동안 액세스 위반이 발생했습니다. (0) | 2021.07.18 |
---|---|
[테트리스개발] 콘솔창의 종료문구가 게임보드 중간에 낀 현상 (0) | 2021.07.12 |
[테트리스개발]BOOL WINAPI 반환타입 (0) | 2021.07.11 |
[테트리스개발] 테두리 그리기 (0) | 2021.07.04 |
(c언어) 변수에 대하여 알아야할것 (0) | 2021.05.14 |