본문으로 건너뛰기

미니 프로젝트

사칙연산 + 수도 맞추기 게임

결과

이 프로그램은 당신이 만드는 첫번째 게임입니다 1번을 누르면 사칙연산 해보기 2번을 누르면 나라별 수도 맞추기 게임을 시작합니다

  1. 사칙연산 해보기

      select(1~2): 1
    val1: 10
    val2: 20
    a + b = 30, a - b = -10, a * b = 200, a / b = 0.5
  2. 수도 맞추기

      select(1~2): 2
    한국의 수도는?
    정답입니다

처리 알고리즘

  1. 게임 설명
  2. 1번 고르면 1번 게임 실행,
    2번 고르면 2번 게임 실행
  3. 실행할 게임의 번호를 입력
  4. 선택한 게임의 번호에 맞는 게임을 실행

사용할 함수

함수작동 방식실행 결과
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억 당첨되었습니다 !


처리 알고리즘

  1. 0 ~ 10 사이의 6개의 수치로 이루어진 당신의 번호 고르기
  2. 랜덤값(당첨번호) 생성
  3. 당첨번호와 당신의 번호 중 몇개가 일치하는지 확인

사용할 모듈 / 함수

함수작동 방식실행 결과
def start()매개변수 없음, 반환값 없음시작 멘트 출력
def create_num()매개변수 없음1 ~ 10 사이의 중복을 허용한 6개의 임의의 수가 저장된 리스트 반환
random 모듈
  1. 시작 멘트 출력
  2. 당첨 숫자 생성
  3. 주운 카드에 숫자 6개 입력하기
  4. 당첨 카드의 수 확인하기
  5. 주운 카드에 적은 숫자와 임의의 숫자를 비교하여 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