본문으로 건너뛰기

미니 프로젝트

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

결과​

이 프로그램은 당신이 만드는 첫번째 게임입니다 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