Python에서 숫자 추측 게임을 만드는 방법은 무엇입니까?

이 기사의 내용을 이미 짐작했을 것입니다. 그리고 아마도 숫자 추측에 익숙하고 Python을 사용하여 빌드하는 방법을 찾고 있을 것입니다.

처음부터 숫자 추측 게임을 만드는 방법을 알아보겠습니다.

숫자 맞추기 게임

게임은 간단합니다. 사용자는 1에서 100 사이에 있는 무작위로 생성된 숫자를 추측해야 합니다. 그게 전부입니다.

게임이 그렇게 간단합니까?

네, 그렇습니다.

하지만, 그 숫자를 추측하기 위해 사용자에게 제공해야 하는 한 가지가 있습니다. 힌트입니다. 현재 추측된 숫자가 정확한 숫자보다 작거나 현재 추측된 숫자가 정확한 숫자보다 크다는 메시지를 사용자에게 제공해야 합니다. 사용자가 가야 할 방향을 알 수 있도록 합니다.

추측할 기회의 최대 수, 범위 증가, 타이머 설정 등과 같은 추가 기능을 추가하여 더 흥미롭게 만들 수 있습니다.

기본 작업 게임을 만드는 것은 필수입니다. 그 후에 논의된 대로 더 많은 기능을 추가할 수 있습니다. 그래서 우리는 이 섹션에서 게임의 기본 버전을 만들 것입니다. 그런 다음 새로운 기능을 추가하기 위해 이동합니다.

맹목적으로 코드를 복사하지 않고 게임을 만들어 보시길 바랍니다. 그래서 먼저 알고리즘을 설명하겠습니다. 직접 코딩하거나 코드를 빠르게 이해하는 데 도움이 됩니다.

숫자 추측 게임을 만드는 알고리즘을 살펴보겠습니다.

연산

코딩 부분으로 이동하기 전에 알고리즘을 이해했는지 확인하십시오.

  • 숫자의 범위를 정의합니다. 기본적으로는 1-100이지만 원하는 대로 변경할 수 있습니다.
  • 위의 범위(1-100)에서 임의의 정수를 생성합니다.
  • 사용자에게 “X에서 Y까지의 숫자를 맞춰보세요”라는 메시지를 표시하여 게임을 시작합니다. 원하는 대로 메시지를 업데이트할 수 있습니다.
  • 사용자가 숫자를 정확하게 추측하기 위해 취한 총 기회 수를 계산하려면 변수를 0으로 초기화하십시오.
  • 무한 루프를 작성하십시오.
    • 사용자에게 숫자를 맞춰보라고 합니다.
    • 현재 추측한 숫자가 무작위로 생성된 숫자와 같으면 원하는 메시지로 사용자를 축하합니다. 예는 “-> 만세! 5단계로 완료했습니다!”
    • 사용자를 축하한 후 루프를 풉니다.
    • 현재 추측한 숫자가 무작위로 생성된 숫자보다 작으면 “-> 당신의 숫자는 난수보다 작습니다”라는 메시지를 사용자에게 주거나 같은 의미의 커스텀 메시지를 준다.
    • 현재 추측한 숫자가 무작위로 생성된 숫자보다 크면 사용자에게 “-> 당신의 숫자는 난수보다 큽니다”라는 메시지를 주거나 같은 의미의 커스텀을 합니다.
    • 마지막으로 사용자가 추측할 확률을 높입니다.
  Otter와 함께 더 나은 온라인 회의 실행

알고리즘을 보고 나면 머릿속에 코드가 떠올랐을 것입니다. 완전한 코드를 얻지 못하더라도 걱정하지 마십시오. 그러나 위의 알고리즘을 이해했는지 확인하십시오.

이제 코드 작업에 손을 댈 때입니다. 더 이상 고민하지 않고 코드에 들어가십시오.

암호

코드를 작성하려고 했습니까?

그렇다면 완료했습니다. 대단해 코드를 확인하고 이해하여 지식에 더 많은 관점을 추가하십시오.

코드를 작성하지 않았더라도 걱정하지 마십시오. 아래 코드를 보고 이해하세요. 더 나은 이해를 위해 조정하고 자신의 방식으로 작성하십시오.

그럼 코드를 봅시다.

import random


class NumberGuessingGame:

    def __init__(self):
        ## define the range
        self.LOWER = 1
        self.HIGHER = 100

    ## method to generate the random number
    def get_random_number(self):
        return random.randint(self.LOWER, self.HIGHER)

    ## game start method
    def start(self):
        ## generating the random number
        random_number = self.get_random_number()

        print(
            f"Guess the randomly generated number from {self.LOWER} to {self.HIGHER}")

        ## heart of the game
        chances = 0
        while True:
            user_number = int(input("Enter the guessed number: "))
            if user_number == random_number:
                print(
                    f"-> Hurray! You got it in {chances + 1} step{'s' if chances > 1 else ''}!")
                break
            elif user_number < random_number:
                print("-> Your number is less than the random number")
            else:
                print("-> Your number is greater than the random number")
            chances += 1

## instantiating and starting the game
numberGuessingGame = NumberGuessingGame()
numberGuessingGame.start()

코드에서 이해할 수 있는 것이 있습니다.

  • 범위는 클래스 메서드에서 사용할 수 있도록 __init__ 메서드 내부에 정의됩니다.
  • 앱 전체에서 그에 따라 변경되는 한 곳에서 쉽게 변경할 수 있습니다.
  • “관심 분리”의 원칙에 따라 난수를 생성하는 별도의 방법이 있습니다. 여기에서 우리의 방법은 코드가 거의 없지만 앞으로 늘어날 수 있습니다.
  • 마지막으로 게임과 관련된 모든 메서드가 클래스 안에 상주하도록 클래스를 사용했습니다. 그리고 다른 앱에서 쉽게 재사용할 수 있습니다.

위에서 논의한 모든 요점은 깨끗한 코드 작성과 관련이 있습니다. X년이 지나도 이해할 수 있는 깨끗한 코드를 작성하려고 노력해야 합니다.

  Linux에서 소프트웨어 RAID를 설정하는 방법

게임의 샘플 출력은 다음과 같습니다.

$ python number_guessing_game.py 
Guess the randomly generated number from 1 to 100
Enter the guessed number: 50
-> Your number is less than the random number
Enter the guessed number: 75
-> Your number is less than the random number
Enter the guessed number: 90
-> Your number is greater than the random number
Enter the guessed number: 85
-> Your number is greater than the random number
Enter the guessed number: 80
-> Hurray! You got it in 5 steps!

위의 코드를 시도하기 위해 Python이 설치되어 있다고 가정합니다.

추가 기능

사용자가 숫자를 추측할 수 있는 최대 확률을 추가할 것입니다. 사용자가 기회의 수 내에서 숫자를 추측하지 않으면 사용자가 집니다.

어떻게 추가합니까?

간단한 2단계 프로세스입니다. 단계를 살펴보겠습니다.

  • 사용자가 숫자를 추측할 수 있는 최대 기회 수를 정의합니다.
  • 입력을 요청하기 전에 사용자에게 기회가 있는지 확인하십시오. 그리고 사용자가 주어진 기회를 벗어나면 게임을 종료합니다.

다음 코드를 추가하면 기능이 완성됩니다.

  • __init__ 메서드 안에 다음 코드를 추가합니다.
self.MAX_CHANCES = 10
  • 사용자가 다음 추측을 입력하기 전에 다음 조건을 추가하십시오.
if chances == self.MAX_CHANCES:
                print("-> Phew! You lost the game. You are out of chances")

이제 정확한 숫자를 추측하지 않고 게임을 해보세요. 다음과 유사한 출력이 표시되어야 합니다.

$ python number_guessing_game.py 
Guess the randomly generated number from 1 to 100. You have 10 chances to guess.
Enter the guessed number: 1
-> Your number is less than the random number
Enter the guessed number: 2
-> Your number is less than the random number
Enter the guessed number: 3
-> Your number is less than the random number
Enter the guessed number: 4
-> Your number is less than the random number
Enter the guessed number: 5
-> Your number is less than the random number
Enter the guessed number: 6
-> Your number is less than the random number
Enter the guessed number: 7
-> Your number is less than the random number
Enter the guessed number: 8
-> Your number is less than the random number
Enter the guessed number: 9
-> Your number is less than the random number
Enter the guessed number: 10
-> Your number is less than the random number
-> Phew! You lost the game. You are out of chances

만세! 게임에 추가 기능을 추가했습니다. 그래도 끝이 아닙니다. 몇 가지 기능을 더 추가하여 사용자에게 더 매력적으로 만들 수 있습니다. 이제 당신의 시간입니다. 더 멋지게 만들어보세요 🙂 .

  아니요, 스마트 미터는 건강에 위험하지 않습니다

결론

우리는 간단한 숫자 추측 게임을 만들었습니다. 이제 당신이 어렸을 때 하던 게임을 생각할 차례입니다. 프로그래밍 언어를 사용하여 만들고 친구들과 공유하십시오. 우리는 대부분의 어린 시절 게임을 디지털화할 수 있습니다.

다음으로 Python IDE 및 온라인 컴파일러를 탐색하여 Python 코드를 실행합니다.

해피코딩 🙂

바이러스성 단어 게임이 충분하지 않다면 Wordle에서 더 잘하는 방법이 있습니다.

기사를 재미있게 읽었습니까? 세상과 함께 나누는 건 어떨까요?