카테고리 없음

Ai 개인 과제 업 다운 게임

rlarudals 2024. 7. 2. 21:11

오늘은 어제 다 못한 업 다운 게임을 계속 진행

  1. 플레이어와 컴퓨터가 참여하는 업다운 게임을 만드세요.
  2. 프로그램은 다음과 같은 기능을 포함해야 합니다.
    • 컴퓨터는 1부터 100 사이의 랜덤한 숫자를 생성합니다.
    • - 작성방법 : import로 random module 불러오기, 컴퓨터가 임의로 생성할 변수 random_number의 범위 설정
    • 플레이어는 숫자를 입력하고, 입력한 숫자와 컴퓨터의 숫자를 비교하여 "업" 또는 "다운" 힌트를 제공합니다.
    • - 작성방법 : input 이용(while 문 밖에 쓰면 반복이 되지 않기에 while 문 안에 작성), m_num 을 변수로 지정하고 조건문 투입
    • 플레이어가 컴퓨터의 숫자를 정확히 맞히면 시도한 횟수를 알려줍니다.
    • - 작성방법 : 게임을 시작하면 시도한 횟수가 0이므로 i = 0으로 변수 설정, if / elif 조건문에 각 조건에 따라 시도한 횟수를 알수있게 print(f '{i} 회 진행하였습니다') 작성 이때 i = i+1(i+=1 과 동일)을 통해 시도 횟수가 게임 진행 중에는 초기화가 안되게 작성
    • 플레이어가 숫자를 맞힐 때까지 위 과정을 반복합니다.
    • - 작성방법 : 플레이어가 정답을 맞추면 break을 이용해 종료

추가 도전 과제:

1.플레이어가 입력한 숫자가 범위를 벗어날 경우, 적절한 안내 메시지를 출력하여 유효한 범위 내의 숫자를 입력하도록유도하세요. - 작성방법 : 조건문을 통해 0보다 작은숫자나 100보다 큰 숫자를 input 할 경우 안되게 설정

2. 플레이어가 게임을 반복하고 싶을 경우, 게임 재시작 여부를 묻고 그에 따라 게임을 초기화하거나 종료하는 기능을 추가하세요. - 작성방법 : 맨처음에 input에 int(정수)로 설정하였기 때문에 문자를 input 하면 에러 발생 그래서 또다른 while 문을 만들고 문자를 input하면 조건이 완료되게 설정

3. 게임이 종료될 때 플레이어의 최고 시도 횟수를 기록하고, 다음 게임에서 이를 표시하는 기능을 구현하세요.

- 작성방법 : 유일하게 아직 제대로 구현이 안되는 기술이다. 물론 그 게임내에서 최고 기록이 표시는 되지만

1게임을 완료하고 재시작을 하면 다시 초기화가 됨. 이거는 내일 까지 노력해야겠다.

import random

i = 0
random_number = random.randint(1, 100)

def num_game(max_record=0) :
    i = 0
    random_number = random.randint(1, 100)

    if max_record != 0:
        print(f'최고 기록 {max_record} 회')

    # while = 맞출때까지 반복

    while True:
        m_num = int(input('숫자 입력'))
        i = i+1
        if random_number == int(m_num):
            print('정답입니다')
            print(f'{i} 회 진행하였습니다')
            min(max_record or i,i)
            break
        elif 0 > m_num or 100 < m_num :
            print("잘못된 결과값 입니다.")
            print(f'{i} 회 진행하였습니다')
        elif random_number >= m_num and m_num:
            print("업")
            print(f'{i} 회 진행하였습니다')
        elif random_number <= m_num and m_num:
            print("다운")
            print(f'{i} 회 진행하였습니다')



    while True:
        restart_1 = input('재시작 및 종료를 하려면 reset,Yes 또는 NO를 입력하세요')
        if restart_1 == "NO":
            print("게임을 종료합니다")
            print(f'{i} 회 진행하였습니다')
            break
    # 게임 리셋 및 재시작
        elif restart_1 == "reset" or restart_1 == "Yes":
            print("게임을 다시 시작하겠습니다.")
            num_game(max_record)
            i = 0

num_game()