Computer >> 컴퓨터 >  >> 프로그래밍 >> C++

C++로 N개의 주사위 굴리기 에뮬레이트하는 프로그램

이 글에서는 N개의 주사위 굴리기를 에뮬레이트하는 C++ 코드를 소개합니다. 핵심 원리는 간단합니다. 1부터 6 사이의 난수를 생성하면 그것이 곧 주사위를 한 번 굴린 결과가 되는 것입니다.

동작 원리

C++ 표준 라이브러리의 rand() 함수는 임의의 정수를 반환합니다. 여기에 나머지 연산자(%)를 활용하여 rand() % 6 + 1을 계산하면, 결과값은 항상 1~6 범위 안에 있게 됩니다. 이 값이 바로 하나의 주사위 눈이 됩니다. 사용자가 입력한 개수(N)만큼 반복하면 N개의 주사위를 동시에 굴린 것과 같은 효과를 얻을 수 있습니다.

알고리즘

시작
    변수 n 선언
    n 입력받기
    i = 0 부터 n-1 까지 반복
        rand() % 6 + 1 로 난수 생성
        생성된 값 출력
    반복 끝
종료

예제 코드

#include <iostream>
using namespace std;
int main(int argc, char **argv) {
    cout << "주사위 개수를 입력하세요: ";
    int n;
    cin >> n;
    cout << "주사위 눈의 값: ";
    for (int i = 0; i < n; i++)
        cout << (rand() % 6) + 1 << " ";
}

코드 설명

먼저 사용자로부터 굴릴 주사위의 개수를 입력받아 변수 n에 저장합니다. 이후 for 반복문을 통해 n번 반복하면서 매번 (rand() % 6) + 1 연산으로 1~6 사이의 난수를 만들어 화면에 출력합니다.

실행 결과

주사위 개수를 입력하세요: 7
주사위 눈의 값: 2 5 4 2 6 2 5

참고 사항

rand()는 프로그램을 실행할 때마다 같은 순서의 난수가 생성되는 의사 난수(pseudo-random number)입니다. 실행할 때마다 다른 결과를 얻으려면 <cstdlib> 헤더와 <ctime> 헤더를 포함한 뒤, 프로그램 시작 부분에서 srand(time(0));를 호출하여 시드(seed)를 현재 시간으로 설정해 주는 것이 좋습니다.