사용자로부터 두개의 숫자를 입력받아 구구단을 출력하는 프로그램을 만들어 보자. 


예를 들어 사용자가 3과 5를 입력하면, 3단, 4단, 5단을 출력해야 한다.


단 사용자의 입력 순서가 자유로워야 한다. 3과 5를 입력하던 5와 3을 입력하던 같은 결과를 출력해야 한다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include <iostream>
 
int main() {
    int input1, input2, temp = 0;
 
    std::cout << "두 개의 숫자 입력: ";
    std::cin >> input1 >> input2;
 
    if (input1 > input2) {
        input2 = temp;
        input2 = input1;
        input1 = temp;
    }
 
    for (; input1 <= input2; input1++) {
        for (int i = 1; i <= 9; i++) {
            std::cout << input1 << " X " << i << " = " << input1*<< "\n";
        }
        std::cout << "\n\n";
    }
}
cs


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
#include <time.h> //time 사용을 위한 헤더파일
 
int main(int argc, const char * argv[]) {
    int human, computer, option, totalgame = 0, hw = 0, cw = 0, hl = 0, cl = 0, hh = 0, cc = 0;
    srand(time(NULL)); //매번 다른 난수 발생을 위해 시드값 사용 *time을 이용해 시간을 시드값으로 사용
    do { // 게임을 한번 시작 후 종료 트리거 실행을 위해 do while문 사용
        option = 0// 2,147,483,648 이상 입력시 무한루프에 빠지는데 0 초기화값을 주면 루프돌지 않고 종료됨
        std::cout << "계속 할꺼면 1 입력 (0 입력시 종료)";
        std::cin >> option; // 0 입력시 종료하고 그 외 숫자, 문자 입력시 게임 시작
        human = rand() % 6 + 1// 인간 1부터 6까지 난수 발생 후 저장
        computer = rand() % 6 + 1// 컴퓨터 1부터 6까지 난수 발생 후 저장
        if (human>computer) {
            std::cout << human << ":" << computer << " 이세돌 승\n";
            hw += 1, cl += 1// hw - 인간 승, cl - 컴퓨터 배패
        }
        else if (computer>human) {
            std::cout << human << ":" << computer << " 알파고 승\n";
            cw += 1, hl += 1// cw - 컴퓨터 승, hl - 인간 패배
        }
        else {
            std::cout << human << ":" << computer << " 무승부\n";
            hh += 1, cc += 1// hh, cc - 무승부
        }
        totalgame += 1// 총 게임수 계산
    } while (option != 0); // 0 입력시 종료
    std::cout.precision(3); // 승률 소수점 세자리 고정 
    std::cout << "\n이세돌 승:" << hw << " 패:" << hl << " 무:" << hh << " 승률:" << (double)hw / (hl + hh) << "\n";
    std::cout << "\n알파고 승:" << cw << " 패:" << cl << " 무:" << cc << " 승률:" << (double)cw / (cl + cc) << "\n";
    std::cout << "\n총 " << totalgame << "판함\n\n";
    return 0;
}
cs


열심히 주석을 달아놨으니 이해가 안되시면 참고하세요...


주사위 난수출력을 위해 rand() 함수를 사용하는데 매번 다른 난수 출력을 위해선 srand() 함수를 추가해야 합니다.


만약 srand() 함수를 사용하지 않는다면 프로그램 종료 후 재실행시 매번 같은 난수가 출력됩니다.

게임 엔진 유니티 3D는 2005년 출시되어 8년의 세월이 흐른 꽤 오래된 게임엔진입니다.


외국에는 관련 커뮤니티들이 많이 조성되어있지만 우리나라엔 그다지 전문적으로


유니티를 다룬다던가 회원 수가 많다든가 하는 그렇다 할 커뮤니티가 없습니다. 


외국 커뮤니티의 방대한 자료들이나 다양한 정보들이 공유되는것을 보면 부러울 때가 많습니다.


이 때문에 공부나 개발 중에 궁금한 것이 생기면 구글에서 외국 사이트에 검색을 해보곤 하는데


전문적인 분야의 내용을 원어를 해독하며 이해해야 하니 어려움이 굉장히 많습니다.


이번에도 조그마한 게임을 만들어 보다가 아주 간단한 기능을 구현하는데에도 한국 커뮤니티엔 관련 내용이 없고 


질문을 하고 이틀이 지났는데도 답변이 달리지 않았습니다


이벤트가 일어나면 소리를 재생하는  효과음 추가 기능이었는데 이번에도 역시 중국인들의 도움을 빌려 방법을 알아낼 수 있었습니다.



이 글을 보시는 분들은 별거 아닌것 때문에 삽질하고 헤메지 않으셨으면 좋겠습니다..

유니티3D 사운드 추가방법 입니다.



-  BGM 추가하는 방법




맨 먼저 출력할 사운드 파일을 프로젝트에 추가합니다.






BGM을 추가할 오브젝트를 선택한 후 인스펙터 창에서 Add Component를 선택한 후 Audio - Audio Source 를 선택합니다.






오디오 소스 컴포넌트를 추가하게 되면 인스펙터창에 오디오 소스탭이 나타날텐데

빨간 박스쳐둔 Audio Clip 란에 프로젝트탭에서 사운드파일을 끌어다가 두면 BGM이 추가됩

니다. 그 외에 옵션들은 Play on Awake는 이벤트가 일어나지 않아도 자동재생되는 옵션입니

다. Loop는 재생이 끝난 뒤에 반복이 되는 옵션입니다.




이 방법은 간단하지만 효과음등을 재생할때에 한정된 기능만을 제공하니

스크립트에 직접 추가하는 방법을 알아보겠습니다.



- 효과음 추가하는 방법






처음과 마찬가지로 사용할 사운드파일을 프로젝트 탭에 추가합니다.


효과음이 출력될 이벤트가 일어날 스크립트를 열어줍니다.




var 변수명 : AudioClip; 를 선언합니다.




그리고 나서 효과음이 출력될 이벤트 함수에

AudioSource.PlayClipAtPoint(변수명, transform.position); 를 추가합니다.

그런 후 다시 유니티로 돌아오면 선언했던 변수명의 항목이 추가가 될텐데

그 부분에 파일을 끌어다 주면 효과음 추가가 끝난것입니다.







처음 오디오 컴포넌트 추가방법과 스크립트 추가방법을 비교해보며

둘의 차이점을 알아보는것도 좋은 공부방법이 될 것 같습니다.


1
2
3
4
5
6
7
8
9
10
11
12
#include <iostream>
 
int main(){
    int input;
    
    std::cout<<"10진수 정수 입력: ";
    std::cin>>input;
    
    std::cout<<"8진수: "<< std::oct <<input<<"\n";
    std::cout<<"10진수: "<< std::dec <<input<<"\n";
    std::cout<<"16진수: "<< std::hex <<input<<"\n";
}
cs


이런식으로 출력할 변수 앞에 std::oct, std::dec, std::hex 를 붙여주면 된다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
 
int main(){
    int a,result=0;
    
    while(1){
        std::cout<<"입력: ";
        std::cin>>a;
        
        result=a;
        
        for(int i=1; i<a; i++) {
            if (i == a)
                break;
            result*=(a-i);
        }
        std::cout<<result<<"\n";
    }
}
cs


+ Recent posts