미니 프로젝트
사칙연산 + 수도 맞추기 게임
결과
이 프로그램은 당신이 만드는 첫번째 게임입니다 1번을 누르면 사칙연산 해보기 2번을 누르면 나라별 수도 맞추기 게임을 시작합니다
-
사칙연산 해보기
select(1~2): 1
val1: 10
val2: 20
a + b = 30, a - b = -10, a * b = 200, a / b = 0.5 -
수도 맞추기
select(1~2): 2
한국의 수도는?
정답입니다
처리 알고리즘
- 게임 설명
- 1번 고르면 1번 게임 실행,
2번 고르면 2번 게임 실행 - 실행할 게임의 번호를 입력
- 선택한 게임의 번호에 맞는 게임을 실행
사용할 함수
함수 | 작동 방식 | 실행 결과 |
---|---|---|
def explain_game() | 매개변수 없음, 반환값 없음 | 게임 설명 |
def ns() | 매개변수 없음, 반환값 없음 | 두 값을 입력받아 사칙 연산 후 결과 출력 |
def nm() | 매개변수 없음, 반환값 없음 | 나라의 수도를 물어보고, 정답/오답에 따라 출력하는 함수 |
def sel_2() | 매개변수 있음, 반환값 없음 | n이 1이면 ns() 호출, 2이면 nm() 호출 |
코드 작성해보기
import random
def explain_game():
print('''이 프로그램은 당신이 만드는 첫번째 게임입니다
1번을 누르면 사칙연산 해보기
2번을 누르면 나라별 수도 맞추기 게임을 시작합니다''')
def ns():
first = int(input("첫번째 숫자: "))
second = int(input("두번째 숫자: "))
print("\nfirst + second = ", first + second)
print("first - second = ", first - second)
print("first * second = ", first * second)
print("first / second = ", first / second)
def nm():
countries = ['한국', '미국', '중국', '일본']
capitals = ['서울', '워싱턴', '베이징', '도쿄']
randomNumber = random.randint(0, 3)
selected = int(input("1 ~ 4 까지의 숫자를 입력하세요: "))
for i in range(1, 4):
if selected < 1 or 4 < selected:
print("올바른 숫자가 아닙니다.")
break
print(4 - i,"번의 기회가 있습니다.")
print(countries[selected - 1],"의 수도를 입력하세요 ")
answer = input("")
if capitals[selected - 1] == answer:
print("정답입니다!")
break
else :
print("오답입니다")
def sel_2(select):
if select == 1 :
ns()
elif select == 2 :
nm()
else :
print("1 혹은 2를 입력해 주세요")
# 실제 게임 함수 호출
explain_game() # 1. 게임 설명
sel = int(input("")) # 2. 게임 선택
sel_2(sel) # 3. 게임 실행
실행 결과
이 프로그램은 당신이 만드는 첫번째 게임입니다
1번을 누르면 사칙연산 해보기
2번을 누르면 나라별 수도 맞추기 게임을 시작합니다
1
첫번째 숫자: 8
두번째 숫자: 4
first + second = 12
first - second = 4
first * second = 32
first / second = 2.0
---
이 프로그램은 당신이 만드는 첫번째 게임입니다
1번을 누르면 사칙연산 해보기
2번을 누르면 나라별 수도 맞추기 게임을 시작합니다
2
1 ~ 4 까지의 숫자를 입력하세요: 5
올바른 숫자가 아닙니다.
---
이 프로그램은 당신이 만드는 첫번째 게임입니다
1번을 누르면 사칙연산 해보기
2번을 누르면 나라별 수도 맞추기 게임을 시작합니다
2
1 ~ 4 까지의 숫자를 입력하세요: 3
3 번의 기회가 있습니다.
중국 의 수도를 입력하세요
베이징
정답입니다!
---
이 프로그램은 당신이 만드는 첫번째 게임입니다
1번을 누르면 사칙연산 해보기
2번을 누르면 나라별 수도 맞추기 게임을 시작합니다
2
1 ~ 4 까지의 숫자를 입력하세요: 2
3 번의 기회가 있습니다.
미국 의 수도를 입력하세요
뉴욕
오답입니다
2 번의 기회가 있습니다.
미국 의 수도를 입력하세요
LA
오답입니다
1 번의 기회가 있습니다.
미국 의 수도를 입력하세요
텍사스
오답입니다
---
이 프로그램은 당신이 만드는 첫번째 게임입니다
1번을 누르면 사칙연산 해보기
2번을 누르면 나라별 수도 맞추기 게임을 시작합니다
2
1 ~ 4 까지의 숫자를 입력하세요: 3
3 번의 기회가 있습니다.
중국 의 수도를 입력하세요
서울
오답입니다
2 번의 기회가 있습니다.
중국 의 수도를 입력하세요
미국
오답입니다
1 번의 기회가 있습니다.
중국 의 수도를 입력하세요
일본
오답입니다
---
이 프로그램은 당신이 만드는 첫번째 게임입니다
1번을 누르면 사칙연산 해보기
2번을 누르면 나라별 수도 맞추기 게임을 시작합니다
2
1 ~ 4 까지의 숫자를 입력하세요: 4
3 번의 기회가 있습니다.
일본 의 수도를 입력하세요
도쿄
정답입니다!
미니로또
결과
당신은 우연히 카드를 주었습니다.
당신이 주운 카드에 총 6개의 숫자를 적을 수 있고
이 중 당첨 카드의 수와 2개 이상이 일치하면 1억의 상금을 받습니다. 0~10사이의 숫자 6개를 넣어 보시고
행운을 가져가세요
0~10사이의 수 : 2
0~10사이의 수 : 4
0~10사이의 수 : 8
0~10사이의 수 : 1
0~10사이의 수 : 2
0~10사이의 수 : 1
당첨 카드의 수들 : [9, 6, 4, 3, 7,2]
3 개가 일치합니다. 1억 당첨되었습니다 !
처리 알고리즘
- 0 ~ 10 사이의 6개의 수치로 이루어진 당신의 번호 고르기
- 랜덤값(당첨번호) 생성
- 당첨번호와 당신의 번호 중 몇개가 일치하는지 확인
사용할 모듈 / 함수
함수 | 작동 방식 | 실행 결과 |
---|---|---|
def start() | 매개변수 없음, 반환값 없음 | 시작 멘트 출력 |
def create_num() | 매개변수 없음 | 1 ~ 10 사이의 중복을 허용한 6개의 임의의 수가 저장된 리스트 반환 |
random 모듈 |
- 시작 멘트 출력
- 당첨 숫자 생성
- 주운 카드에 숫자 6개 입력하기
- 당첨 카드의 수 확인하기
- 주운 카드에 적은 숫자와 임의의 숫자를 비교하여 2개 이상 일치하면 당첨
코드 작성해보기
import random
def start():
print('''당신은 우연히 카드를 주었습니다.
당신이 주운 카드에 총 6개의 숫자를 적을 수 있고
이 중 당첨 카드의 수와 2개 이상이 일치하면 1억의 상금을 받습니다.
0~10사이의 숫자 6개를 넣어 보시고
행운을 가져가세요
''')
def create_num():
nums = [];
for i in range(6):
num = random.randint(0, 10)
print("0~10사이의 수", num)
nums.append(num)
return nums
## 게임 시작
start()
yourNumbers = []
for i in range(6):
print(i+1, "번째", end ='')
num = int(input(" 숫자를 입력하세요: "))
if num < 0 or 10 < num:
print("0~10사이의 수를 입력해야 합니다")
break
else:
yourNumbers.append(num)
sum = 0
lotoNumbers = create_num()
for num in yourNumbers:
if num in lotoNumbers:
sum += 1
if sum > 2:
print("당첨입니다!!")
break
print("일치하는 숫자의 개수:", sum)
실행 결과
당신은 우연히 카드를 주었습니다.
당신이 주운 카드에 총 6개의 숫자를 적을 수 있고
이 중 당첨 카드의 수와 2개 이상이 일치하면 1억의 상금을 받습니다.
0~10사이의 숫자 6개를 넣어 보시고
행운을 가져가세요
1 번째 숫자를 입력하세요: 1
2 번째 숫자를 입력하세요: 2
3 번째 숫자를 입력하세요: 3
4 번째 숫자를 입력하세요: 4
5 번째 숫자를 입력하세요: 5
6 번째 숫자를 입력하세요: 6
0~10사이의 수 5
0~10사이의 수 1
0~10사이의 수 3
0~10사이의 수 10
0~10사이의 수 8
0~10사이의 수 5
당첨입니다!!
일치하는 숫자의 개수: 3