# 3.7 무작위 수(Random)

무작위 수(또는 램덤)을 활용하는 것은 단순히 한번의 함수호출이라서 지금까지 내용을 잘 숙지해 따라온 사람에게는 하나도 어려울 것이 없다. 그래서, 이번 장에서는 단순하면서 재미있는 게임하나를 무작위 수 기능을 활용해 만들어 보자.

게임제목은 "내 마음 속의 숫자를 맞춰봐!" 이고, 컴퓨터가 1\~50까지의 무작위 수 하나를 생각할 것이고, 우리는 그 수가 무엇인지 최대한 적은 회수의 시도 안에 맞추면 되는 것이다. 게임의 흥미를 높히기 위해 우리가 정답을 맞추기 위해 시도한 답변숫자가 정답에 얼마나 가까운지에 대한 힌트를 지속적으로 주도록 만들었다.

{% tabs %}
{% tab title="실행결과" %}

<figure><img src="https://1991069597-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnDUP8xZ7pbezrK2wo5dX%2Fuploads%2FuRtmHop7tgM0AixspQDt%2Fimage.png?alt=media&#x26;token=1050db26-9f19-4c3e-8deb-7d048e8480d1" alt="" width="311"><figcaption></figcaption></figure>
{% endtab %}

{% tab title="블록코딩" %}

<figure><img src="https://1991069597-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2FnDUP8xZ7pbezrK2wo5dX%2Fuploads%2FN6Bhy2RK8TYKT5G2kijn%2F%E1%84%8B%E1%85%A6%E1%86%AB%E1%84%90%E1%85%B3%E1%84%85%E1%85%B5%20%E1%84%87%E1%85%B3%E1%86%AF%E1%84%85%E1%85%A9%E1%86%A8.png?alt=media&#x26;token=498993b0-2807-4d9c-868e-652a5f0dbca4" alt=""><figcaption></figcaption></figure>
{% endtab %}

{% tab title="엔트리-파이썬" %}

<pre class="language-python" data-line-numbers><code class="lang-python"># 엔트리봇 오브젝트의 파이선 코드
import Entry

com_num = 0
my_num = 0
<strong>try_total = 0
</strong>
def when_start():
    com_num = random.randint(1, 50)
    
    while True:
        Entry.input("마음 속으로 1부터 50까지의 수를 생각했으니, 한번 맞춰봐! 몇 번만에 맞출 수 있을까?")
        my_num = Entry.answer()
        try_total += 1
        
        if my_num == com_num:
            Entry.print("Bingo! " + try_total + " 번 만에 찾아냈군!")
            Entry.stop_code("all")
        else:
            if my_num &#x3C; com_num:
                Entry.print(my_num + " 보단 더 높은 수야")
            else:
                Entry.print(my_num + " 보단 더 낮은 수야")
            Entry.wait_for_sec(2)
</code></pre>

{% endtab %}
{% endtabs %}

:1234: 9번 라인에서 무작위 수를 만드는 randint 함수를 사용하였다. 해당 함수는 random이라는 모듈(또는 라이브러리) 안에 존재하기 때문에 오리지널 파이썬이라면 해당 모듈을 불러드려야 하기 때문에 import random 이란 코드가 코드 맨 상단에 추가되어야 함에도 불구하고, 엔트리-파이썬에서는 이러한 import 하는 과정없이도 해당함수를 직접 호출하여 사용하고 있다. *함수에 넘겨질 값은 어떤 수부터 어떤 수까지의 사이의 무작위 수 인지를 정확히 요청하기 위해 1\~50 사이의 숫자란 의미로, ranint(1, 50)의 시작과 마지막 값, 두 값을 함수의 인자값(아규먼트)들로서 넘겼다.*

:1234: 14번 라인에서 try\_total += 1 이라는 구문에서 낯선 연산자 '+=' 가 등장했는데, 사실은 이 연산의 사용은 이전 장의 리스트 사용예제에서 총합계를 구하는 식에서 이전 합계에 현재 값을 누적해 더해가는 코드와 동일한 코드이다. 따라서, 그 예제처럼 **try\_total = try\_total + 1 이라고 적어도 동일하게 동작하고, 이 코드를 간소화해서 try\_total += 1 이렇게 적어도 동일한 의미가 된다. 즉, 이전의 try\_total값에서 연속적으로 1씩 더해나가라는 의미**가 된다.

그밖에 나머지 코드들은 이미 배운 것으로 크게 이해에 어려운 것이 없을 것으로 예상되어, 추가적인 설명은 필요 없을 것 같고, 이제 이 게임을 더 재미있게 발전시켜 보는 것은 여러분의 과제로 남겨본다.&#x20;
