11. 스트라이크! 신나는 야구 게임

【배우기】


random 모듈 알아보기

야구 게임 프로그램

야구 게임 프로그램 코딩 해설

1random 모듈 알아보기

명령어 설명
random.random() 0.0 이상 1.0 미만의 실수를 리턴
random.random()+ 1.0 1.0 이상 2.0 미만의 실수를 리턴
원하는 숫자를 더해 범위를 조절
random.randint(1, 10) 1 이상 10 이하의 정수를 리턴
random.randrange(0, 10, 2) 0 이상 10 미만의 정수 중 2의 배수를 리턴
random.choice([1, 2, 3]) 1, 2, 3 중 하나의 값을 리턴
random.sample(range(1, 47), 6) 1 이상 47 미만의 정수 중 중복 없이 6개 값을 리스트 형식으로 반환
random.shuffle() 전달받은 변수를 임의의 순서대로 섞기

2야구 게임 프로그램

import random


ran_num = [“0”, “0”, “0”]

ran_num[0] = str(random.randint(1, 9))

ran_num[1] = ran_num[0]

ran_num[2] = ran_num[0]

while (ran_num[0] == ran_num[1]):

  ran_num[1] = str(random.randint(1, 9))

while (ran_num[0] == ran_num[2] or ran_num[1] == ran_num[2]):

  ran_num[2] = str(random.randint(1, 9))


count = 0

strike = 0

ball = 0


while (strike<3):

  num = str(input(“숫자 3자리를 입력하세요.: ”))

  strike = 0

  ball = 0

  for i in range(0, 3):

    for j in range(0, 3):

      if(num[i] == str(ran_num[j]) and i == j):

        strike += 1

      elif(num[i] == str(ran_num[j]) and i != j):

        ball += 1

  print(“[“, strike, ”] 스트라이크! [“, ball, ”] 볼!”)

  count += 1

print(count, “번 만에 성공”)

이미지. 이미지. 야구게임이 실행중인 파이썬 화면의 스크린샷.
[실행결과]
이미지. 야구 게임 프로그램 만들기 동영상의 스크린샷

3패턴 그래픽 그리기

#random 함수 불러오기

import random

#ran_num 리스트에 텍스트 0, 0, 0 대입하기

ran_num = [“0”, “0”, “0”]

#ran_num[0]을 1~9사이의 정수로 넣은 후 문자열로 변환하기

ran_num[0] = str(random.randint(1, 9))

#ran_num[1]을 ran_num[0]으로 대입하기

ran_num[1] = ran_num[0]

#ran_num[2]값을 ran_num[0]으로 대입하기

ran_num[2] = ran_num[0]

#ran_num[1]의 값이 ran_num[0]과 달라질 때까지 ran_num[1]의 값에 1~9 사이의 랜덤값 넣기

while (ran_num[0] == ran_num[1]):

  ran_num[1] = str(random.randint(1, 9))

#ran_num[2]의 값이 ran_num[0], ran_num[1]과 달라질 때까지 ran_num[2]의 값에 1~9사이의 랜덤값 넣기

while (ran_num[0] == ran_num[2] or ran_num[1] == ran_num[2]):

  ran_num[2] = str(random.randint(1, 9))

count = 0 #시도 횟수 초기 설정값

strike = 0 #strike 초기 설정값

ball = 0 #ball 초기 설정값

#strike가 3이 될 때까지 반복하기

while (strike<3):

#num변수에 숫자 3자리값을 입력받아 문자열로 변환 후 대입하기

  num = str(input(“숫자 3자리를 입력하세요.: ”))

#아무것도 맞지 않을 경우 strike와 ball 변수 0으로 만들기

  strike = 0

  ball = 0

#i값이 2가 될 때까지 반복하기

  for i in range(0, 3):

#j값이 2가 될 때까지 반복하기

    for j in range(0, 3):

#num변수의 i자리 값과 ran_num 리스트의 j값이 같고, i와 j의 값이 같으면 strike에 1더하기

      if(num[i] == str(ran_num[j]) and i == j):

        strike += 1

#num변수의 i자리 값과 ran_num 리스트의 j값이 같지만, i와 j의 값이 같지 않으면 ball에 1더하기

      elif(num[i] == str(ran_num[j]) and i != j):

        ball += 1

#strike와 ball의 값 출력하기

  print(“[“, strike, ”] 스트라이크! [“, ball, ”] 볼!”)

#시도 횟수에 1 더하기

  count += 1

#strike가 3이 되면 성공 메시지 출력하기

print(count, “번 만에 성공”)