Language/Python

[ Python ] 동전 던지기 게임 프로그램

곽수진 2021. 8. 26. 02:07
반응형
랜덤으로 동전을 던겨 결과를 확인하는 동전 던지기 게임 프로그램을 작성해보자.

 

import turtle
import random

screen = turtle.Screen()
front = "front.gif"
back = "back.gif"

screen.addshape(front)
screen.addshape(back)

t1=turtle.Turtle()
coin = random.randint(0,1)

if coin == 0:
    t1.shape(front)
    t1.stamp()
else:
    t1.shape(back)
    t1.stamp()

동전 back 이미지 결과값

 

동전 front 이미지 결과값

 

 


 

 

사용자가 동전의 앞/뒷면을 맞추는 프로그램을 작성해보자.
동전은 3개가 출력되고, 3개 중 두개 이상의 면과 사용자의 입력이 일치하면 성공, 틀리면 실패를 출력함

 

import turtle,random
scr1 = turtle.Screen() #scr1 객체를 생성한다.(캔버스를 의미함)
s=turtle.textinput("","동전이 앞인가요? 뒤인가요?(앞/뒤 중 입력하세요)")
front="front.gif"
back="back.gif"
scr1.addshape(front) #경로와 확장자를 포함한 이미지파일문자열을 shape으로 추가해 거북이 모양을 이미지로 사용할 수 있게 한다.
scr1.addshape(back)
t1 = turtle.Turtle()
coin1 = random.randint(0,1) #0은 동전의 앞면, 1은 동전의 뒷면을 의미한다.
t1.up() #turtle이 움직일 때 선을 그리지 않도록 펜을 들어주는 역할을 한다.

if (s!='앞' or s!='뒤'):
    t1.goto(0,0)
    t1.write("잘못 입력되었습니다.", False, "center", ("", 25, "bold"))

if (s=='앞' or s=='뒤'):
    t1.clear()
    t1.goto(-150,0)
    coin1 = random.randint(0,1)
    if coin1 == 0:
     t1.shape(front) #해당 이미지 파일 문자열로 모양을 설정한다.
    else:
     t1.shape(back)
    t1.stamp() #화면에 동전 이미지를 남기기 위해서 사용한다.

    t1.goto(150,0)
    coin2 = random.randint(0,1)
    if coin2 == 0:
     t1.shape(front)
    else:
     t1.shape(back)
    t1.stamp()

    t1.goto(450,0)
    coin3 = random.randint(0,1)
    if coin3 == 0:
     t1.shape(front)
    else:
     t1.shape(back)
    t1.stamp()

t1.hideturtle() # 성공, 실패, 잘못 입력됨 결과값을 알려줄 때 turtle 포인터를 제거하기 위해 사용한다.
t1.goto(0,300)
if s=='앞':
    if (coin1 == 0 and coin2 == 0 and coin3 == 1) or (coin1 == 0 and coin2 == 1 and coin3 == 0) or (coin1 == 1 and coin2 == 0 and coin3 == 0) or (coin1 == 0 and coin2 == 0 and coin3 == 0):
     t1.write("성공", False, "center", ("", 25, "bold"))
    else:
     t1.write("실패", False, "center", ("", 25, "bold"))
elif s=='뒤':
    if (coin1 == 1 and coin2 == 1 and coin3 == 0) or (coin1 == 1 and coin2 == 0 and coin3 == 1) or (coin1 == 0 and coin2 == 1 and coin3 == 1) or (coin1 == 1 and coin2 == 1 and coin3 == 1):
     t1.write("성공", False, "center", ("", 25, "bold"))
    else:
     t1.write("실패", False, "center", ("", 25, "bold"))

 

사용자가 '앞'을 입력한 결과값 모습

 

사용자가 '앞'을 입력한 결과값 모습
사용자가 '뒤'를 입력한 결과값 모습

 

사용자가 '뒤'를 입력한 결과값 모습

 

사용자가 앞/뒤가 아닌 다른 말을 입력했을 경우 결과값 모습

 

▶ 이미지 경로

→ 절대 경로 : d:\\사진명.gif(확장자)

→ 상대 경로 : 폴더명/사진명.gif(확장자)

★ 위 코드에서 사진명.gif만 적어둔 이유는 코드가 저장된 곳과 사진이 저장된 폴더가 일치하기 때문 ★

.Screen() : 터틀 그래픽이 그림을 그릴 수 있는 캔버스를 의미

▶ .addshape() : 경로와 확장자를 포함한 이미지파일문자열을 shape으로 추가

.stamp() : 화면에 이미지를 사라지지 않고 남겨둠

.hideturtle() : turtle포인터를 제거

.write("출력 글자", 그래픽 움직임 유/무, "글씨 위치", ("글꼴", 글씨 크기, "글씨 효과"))

→ 그래픽 움직임 유/무 : true 입력시 메시지를 출력하고 그래픽이 움직임, false 입력시 그래픽이 움직이지 않음

→ 글씨 위치 : center, right, left 

→ 글꼴 : Arial, Consolas, 궁서체 등등

→ 글씨 크기 : 숫자로 변경

→ 글씨 효과 : bold, italic, underline 등등

 

 


 

 

동전 2개를 던져 같은 면이 나오면 '성공' 다른 면이 나오면 '실패'를 상단에 출력하는 프로그램을 작성해보자.

 

import turtle, random
scr1=turtle.Screen()
front="front.gif"
back="back.gif"
scr1.addshape(front)
scr1.addshape(back)
t1=turtle.Turtle()
coin1=random.randint(0,1) #0은 앞면, 1은 뒷면
t1.up() #turtle이 움직일 때 선을 그리지 않도록 하기 위함
t1.goto(-150,0)
if coin1 == 0:
    t1.shape(front)
else:
    t1.shape(back)
t1.stamp() #화면에 동전 이미지를 남기기 위해 사용

t1.goto(150,0)
coin2=random.randint(0,1)
if coin2 == 0:
    t1.shape(front)
else:
    t1.shape(back)
t1.stamp()

t1.hideturtle()
t1.goto(0,150)
if coin1 == coin2:
    t1.write("성공", False, "center", ("",20,"bold"))
else:
    t1.write("실패", False, "center", ("",20,"bold"))

 

결과값 출력 모습

 

결과값 출력 모습

 

반응형