
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, “번 만에 성공”)