"파이썬 유치원 (유아반)"의 두 판 사이의 차이

1,141번째 줄: 1,141번째 줄:
print('Hello Python!')
print('Hello Python!')
</source>
</source>
====김매매====
====수준====
구글에 파이썬 예제라고 치면 나오는 첫번째 300문제 다 풀 수 있음
====목표====
1.김매매: 휴대폰 배터리 상태와 온도 알림 어플
2. fps게임할때 화면을 확대해 스코프 없이도 줌을 할수 있는 프로그램(모바일 포함)
3. 버튼 하나로 음악을 재생, 정지를 해 게임 로딩시간을 지루하지 않게 하는 프로그램
4. 휴대폰 게임 할때 버튼 위치를 옮길 수 없을때 임의로 지정한 곳을 터치하면 버튼이 인식되는 어플
왠만하면 모바일로 갈거임
====코드====
#'국민 갓겜 가위바위보를 만들었습니다.'
print('게임을 시작합니다. 시작하려면 아무키나 입력하시고\n 종료하시려면 "종료"를 입력해 주세요')
skill=input()
list=['가위', '바위', '보']
win='제가 이겼군요 하핳'
lose='제가 졌군요ㅠㅠ'
tie='비겼네요 다시'
winc=0
losec=0
tiec=0
scissors=0
rock=0
paper=0
while skill!='종료':
    print('안 내면 진 거 가위바위보')
    skill=input()
    if skill=='가위':
        scissors+=1
        import random
        resurt=random.choice(list)
        print(resurt)
        if resurt=='가위':
            print(tie)
            tiec+=1
            print('\n')
        elif resurt=='바위':
            print(win)
            winc+=1
            print('\n')
        elif resurt=='보':
            print(lose)
            losec+=1
            print('\n')
    elif skill=='바위':
        rock+=1
        import random
        resurt=random.choice(list)
        print(resurt)
        if resurt=='가위':
            print(lose)
            losec+=1
            print('\n')
        elif resurt=='바위':
            print(tie)
            tiec+=1
            print('\n')
        elif resurt=='보':
            print(win)
            winc+=1
            print('\n')
    elif skill=='보':
        paper+=1
        import random
        resurt=random.choice(list)
        print(resurt)
        if resurt=='가위':
            print(win)
            winc+=1
            print('\n')
        elif resurt=='바위':
            print(lose)
            losec+=1
            print('\n')
        elif resurt=='보':
            print(tie)
            tiec+=1
            print('\n')
    else:
        if skill!='종료':
            print('이상한거 내지 말고 재대로 내봐요')
            print('\n')
    continue
print('게임이 종료돠었습니다.')
print('승리 :',winc)
print('패배 :',losec)
print('무승부 :',tiec)
print('\n')
print('가위를 낸 횟수 :',scissors)
print('바위를 낸 횟수 :',rock)
print('보를 낸 횟수 :',paper)
print('수고하셨습니다.')
input('창을 닫으시려면 아무 키나 입력하세요')

2020년 5월 2일 (토) 22:37 판

1 파이썬 유치원

파이썬 유치원은 유튜브 채널 김왼손의 왼손코딩에서 구독자와 함께 진행하는 프로젝트입니다. 프로젝트 기간 동안 스스로 학습하면서 나만의 프로그램을 만들어 봅니다. 파이썬 유치원 1기는 2020년 5월 1일부터 31일까지 한달 동안 진행합니다.

파이썬 유치원에는 강의가 없습니다. 사실 강의만 들어서는 머리에 남는 게 없습니다. 직접 만들어 봐야 합니다. 모든 분야가 그렇겠지만 코딩은 더욱 그렇습니다. 이제 강의는 그만 듣고 직접 만들어 봅시다. 모든 정보는 유튜브와 구글에 있으니까요. 파이썬 유치원에서는 방향과 방법을 함께 고민합니다. 유치원 선생님은 아이가 하고 싶은 대로 자유롭게 두면서 아이가 흥미를 잃지 않게, 다치지 않게 옆에서 도와줍니다. 파이썬 유치원에서의 김왼손은 그런 역할입니다.

파이썬 유치원의 모든 진행 상황은 유튜브 채널 김왼손의 왼손코딩에서 공유합니다. 매주 토요일 저녁 유튜브 라이브에서 어떻게 하고 있는지 함께 살펴보고 어려움이 있다면 함께 고민합니다. 각자의 진행 내용은 제타위키의 파이썬 유치원 문서에서 공유합니다. 진행 내용을 공유하고 서로 의견을 나눌 수 있습니다.

파이썬 유치원 유아반은 파이썬이나 코딩을 배워본 적은 있지만 잘 하지 못하는 분들을 대상으로 합니다.

2 제타위키 사용법

3 유아반 친구들

3.1 김민재

3.1.1 설명

파이참을 이용해 계산기 기능과 디자인, 형태까지 만드는 코드

3.1.2 코드

while True:
    Question = int(input('계산연자를 입력하세요. 1 . +, 2 . -, 3 . *, 4 . / : '))
    # 덧샘식 계산
    if Question == 1:
        plus = int(input('첫번째로 더할수를 입력하세요.'))
        plus2 = int(input('두번째로 더할수를 입력하세요.'))
        print(plus + plus2)
        Question2 = int(input('1.계속, 2.그만 : '))
    # 뺄셈식 계산
    if Question == 2:
        minus = int(input('첫번째로 뺼수를 입력하세요.'))
        minus2 = int(input('두번째로 뺼수를 입력하세요.'))
        print(minus - minus2)
        Question2 = int(input('1.계속, 2.그만 : '))
    # 곱셈식 계산
    if Question == 3:
        times = int(input('첫번째로 곱할수를 입력하세요.'))
        times2 = int(input('두번째로 곱할수를 입력하세요.'))
        print(times * times2)
        Question2 = int(input('1.계속, 2.그만 : '))
    # 나눗셈 계산
    if Question == 4:
        divided = int(input('첫번째로 나눌수를 입력하세요.'))
        divided2 = int(input('두번째로 나눌수를 입력하세요.'))
        print(divided / divided2)
        Question2 = int(input('1.계속, 2.그만 : '))
    #멈추기
    if Question2 == 2:
        break
    #계속하기
    if Question2 == 1:
        continue
    #여기까지 계산기 기능

계속 추가할 예정


3.2 맨탈붕괴

3.2.1 설명

Pygame을 이용해 탐험 게임을 만들어 보고 싶습니다. (더 추가될 예정)

3.2.2 지역

3.2.2.1 쉬움

시작지역

3.2.2.2 중간
3.2.2.3 어려움

3.2.3 상점

상점은 지역마다 1~2개씩 있고, 좀 떨어져 있음. 중간에 방랑상인을 만날 수 있음

3.2.4 무기

바닥에 떨어져 있는 것을 주울 수도 있고, 상점에서도 살 수 있음

3.2.5 자원

숨겨져 있는 곳을 발견해서 랜덤으로 얻음.혹은 특정 몹에게서 얻음.이것들로 상점에서 교환 가능

3.2.6 체크포인트

심각한 부상을 입을 경우,가까이 있는 체크포인트에서 시작 체크포인트는 수동적으로 하며,자원을 소량 얻음

3.2.7 비밀 퀘스트

???

3.2.8 github

https://github.com/animicibal22534/explore/tree/master


3.3 어쭈구저쭈구

3.3.1 설명

텍스트 게임으로 컴퓨터와 턴제로 싸우는게임만들기. 여러가지 직업 파일을 만들고 나는 직업을 선택. (리그 오브 레전드 챔피언 개념) 상대는 랜덤 나와 상대는 체력, 공격력, 주문력, 방어력, 마나 등으로 이루어져있으며 직업에 따라 각각 패시브1개, 스킬5개로 이루어져있음. 상대는 쉬움, 보통, 어려움으로 구성되고 난이도가 높을수록 체력 공격력 등이 높게 시작.

+ 이거 너무 길어질거같습니다;; 게임 시작 설정만 해도 기네요

3.3.2 코드

3.3.2.1 pyght
from random import choice
import Setting
import wizard
import worrior
import condition

jobs = ['마법사', '전사', '암살자']
levels = ['하', '중', '상', '최상']

player_con = []
enemy_con = []

# 플레이어 상태 변수

player_fireturn = 0
player_poisonturn = 0
player_bloodturn = 0
player_thirstyturn = 0
player_recover_up = 0
player_recover_down = 0
player_faintturn = 0

# 적 상태 변수

enemy_fireturn = 0
enemy_poisonturn = 0
enemy_bloodturn = 0
enemy_thirstyturn = 0
enemy_recover_up = 0
enemy_recover_down = 0
enemy_faintturn = 0



# 직업 정하기
print("당신의 직업을 정해주세요. -> 마법사, 전사, 암살자")

while True:
    player_job = input()
    if player_job in jobs:
        print('당신의 직업은 {}입니다.'.format(player_job))
        break
    else:
        print('다시 선택해 주십시오.')

#마법사 전용 변수
if player_job == '마법사':
    player_get_mana = 4
    player_up_wizard_igmagicdefence = 1


enemy_job = random.choice(jobs)
print("적의 직업은 {}입니다.".format(enemy_job))
print('----------------------------------------------------\n')
print("난이도를 정해주세요. -> 하, 중, 상, 최상")

if enemy_job == '마법사':
    enemy_get_mana = 4
    enemy_up_wizard_igmagicdefence = 1

# 난이도 정하기

while True:
    level = input()
    if level in levels:
        print('난이도는 {}입니다.'.format(level))
        break
    else:
        print('다시 선택해 주십시오.')


player, enemy, player_acts, enemy_acts= Setting.set(player_job, enemy_job, level)

enemy_acts.remove('상태확인')

player_att, player_rest, player_check, player_skill1, player_skill2, player_skill3, player_skill4, player_skill5 = Setting.skillset(player_job)
enemy_att, enemy_rest, enemy_check, enemy_skill1, enemy_skill2, enemy_skill3, enemy_skill4, enemy_skill5 = Setting.skillset(enemy_job)

player_first_hp = player['체력']
enemy_first_hp = enemy['체력']

while True:

    enemy['체력'], enemy_faintturn = worrior.att(enemy['체력'], player['공격력'], enemy['방어력'], player['물리관통력'], enemy_faintturn)

    #마법사 패시브
    if player_job == '마법사':
        player['주문력'] += 2
        if player['주문력'] >= 200 and player_up_wizard_igmagicdefence == 1:
            player['마법관통력'] += 15
            player_up_wizard_igmagicdefence -= 1
        if player_get_mana == 0:
            print('안정 발동')
            player['마나'] += 50
            player['주문력'] += 5
            player_get_mana = 3
        else:
            player_get_mana -= 1
        
            
    # 잃은 피해 계산
    player_lost_hp = player_first_hp - player['체력']
    enemy_lost_hp = enemy_first_hp - enemy['체력']

    # 플레이어_화염
    if player_fireturn >= 1:
        if '화염' in player_con:
            pass
        else:
            player_con.append('화염')
    if player_fireturn == 0:
        if '화염' in player_con:
            player_con.remove('화염')
        else:
            pass

    # 플레이어_중독
    if player_poisonturn >= 1:
        if '중독' in player_con:
            pass
        else:
            player_con.append('중독')
    if player_poisonturn == 0:
        if '중독' in player_con:
            player_con.remove('중독')
        else:
            pass

    # 플레이어_출혈
    if player_bloodturn >= 1:
        if '출혈' in player_con:
            pass
        else:
            player_con.append('출혈')
    if player_bloodturn == 0:
        if '출혈' in player_con:
            player_con.remove('출혈')
        else:
            pass

    # 플레이어_갈증
    if player_thirstyturn >= 1:
        if '갈증' in player_con:
            pass
        else:
            player_con.append('갈증')
    if player_thirstyturn == 0:
        if '갈증' in player_con:
            player_con.remove('갈증')
        else:
            pass

    #플레이어_치료증폭:
    if player_recover_up >= 1:
        if '치료증폭' in player_con:
            pass
        else:
            player_con.append('치료증폭')
        player_recover_up -= 1

    #플레이어_치료감소
    if player_recover_down >= 1:
        if '치료감소' in player_con:
            pass
        else:
            player_con.append('치료감소')
        player_recover_down -= 1

    #플레이어_기절
    if player_faintturn >= 1:
        if '기절' in player_con:
            pass
        else:
            player_con.append('기절')
        player_faintturn -= 1

    if '기절' not in player_con:
        while True:
            # 플레이어 선택
            print('다음 것중에 하나를 선택해주세요')
            print(player_acts)
            player_choice = input()
            if player_choice not in player_acts:
                print('다시 선택해 주세요')
            else:
                break

        if player_choice == '공격':
            if player_job == '전사':
                enemy_hp, enemy_faintturn = player_att(enemy['체력'], player['공격력'], enemy['방어력'], player['물리관통력'], enemy_faintturn)
            else:
                enemy['체력'] = player_att(enemy['체력'], player['공격력'], enemy['방어력'], player['물리관통력'])
        if player_choice == '휴식':
            player['체력'], player['마나'] = player_rest(player['체력'], player['마나'], player['체력재생력'], player['마나재생력'], player_con)
        if player_choice == '상태확인':
            player_check(player, player_con)
        if player_job == '마법사':
            if player_choice == '메테오':
                enemy['체력'], player['마나'], enemy_fireturn = player_skill1(enemy['체력'], player['주문력'], enemy['마법저항력'], player['마법관통력'], player['마나'], enemy_fireturn)
                player['주문력'] += 5
            if player_choice == '치유':
                player['체력'], player['방어력'], player['마법저항력'], player['마나'] = player_skill2(player['체력'], player['주문력'], player['방어력'], player['마법저항력'], player['마나'])
                player['주문력'] += 5
            if player_choice == '저주':
                enemy_poisonturn, enemy_thirstyturn, enemy_recover_down, enemy['방어력'], enemy['마법저항력'], player['마나'] = player_skill4(enemy_poisonturn, enemy_thirstyturn, enemy_recover_down, enemy['방어력'], enemy['마법저항력'], player['마나'])
                player['주문력'] += 5
            if player_choice == '파괴':
                enemy['체력'], player['주문력'], player['마나'] = player_skill5(enemy['체력'], enemy_lost_hp, player['주문력'], enemy['마법저항력'], player['마법관통력'], player['마나'])
                player['주문력'] += 5
    else:
        print('플레이어가 기절중입니다!')

    player_lost_hp = player_first_hp - player['체력']
    enemy_lost_hp = enemy_first_hp - enemy['체력']



    # 플레이어_화염
    if player_fireturn >= 1:
        player['체력'], player_fireturn = condition.fire(player['체력'], player_first_hp, player_fireturn)

    # 플레이어_중독
    if player_poisonturn >= 1:
        player['체력'], player_poisonturn = condition.poison(player['체력'], player_lost_hp, player_poisonturn)

    # 플레이어_출혈
    if player_bloodturn >= 1:
        player['체력'], player_bloodturn = condition.blood(player['체력'], player_bloodturn)

    # 플레이어_갈증
    if player_thirstyturn >= 1:
        player['마나'], player_thirstyturn = condition.thirsty(player['마나'], player_thirstyturn)

    # 플레이어_치료증폭
    if player_recover_up == 0:
        if '치료증폭' in player_con:
            player_con.remove('치료증폭')

    # 플레이어_치료감소
    if player_recover_down == 0:
        if '치료감소' in player_con:
            player_con.remove('치료감소')

    # 플레이어_기절
    if player_faintturn == 0:
        if '기절' in player_con:
            player_con.remove('기절')

    if player['체력'] <= 0 or enemy['체력'] <= 0:
        print('게임이 끝났습니다!')
        if player['체력'] <= 0:
            print('----------------------------------------------------\n')
            player_check(player, player_con)
            print('----------------------------------------------------\n')
            print('적이 이겼습니다!')
            break
        else:
            print('적의 스탯 ')
            print('----------------------------------------------------\n')
            print('체력 : {},  마나 : {}'.format(enemy['체력'], enemy['마나']))
            print('공격력 : {},  주문력 : {}'.format(enemy['공격력'], enemy['주문력']))
            print('방어력 : {},  마법저항력 : {}'.format(enemy['방어력'], enemy['마법저항력']))
            print('물리관통력 : {},  마법관통력 : {}'.format(enemy['물리관통력'], enemy['마법관통력']))
            print('체력재생력 : {},  마나재생력 : {}'.format(enemy['체력재생력'], enemy['마나재생력']))
            print('적의 상태 : ', enemy_con)
            print('----------------------------------------------------\n')
            print('당신이 이겼습니다!')
            break

    print('----------------------------------------------------\n')

    #마법사 패시브
    if enemy_job == '마법사':
        enemy['주문력'] += 2
        if enemy['주문력'] >= 200 and enemy_up_wizard_igmagicdefence == 1:
            enemy['마법관통력'] += 15
            enemy_up_wizard_igmagicdefence -= 1
        if enemy_get_mana == 0:
            print('안정 발동')
            enemy['마나'] += 50
            enemy['주문력'] += 5
            enemy_get_mana = 3
        else:
            enemy_get_mana -= 1

    # 적_화염
    if enemy_fireturn >= 1:
        if '화염' in enemy_con:
            pass
        else:
            enemy_con.append('화염')
    if enemy_fireturn == 0:
        if '화염' in enemy_con:
            enemy_con.remove('화염')
        else:
            pass

    # 적_중독
    if enemy_poisonturn >= 1:
        if '중독' in enemy_con:
            pass
        else:
            enemy_con.append('중독')
    if enemy_poisonturn == 0:
        if '중독' in enemy_con:
            enemy_con.remove('중독')
        else:
            pass

    # 적_출혈
    if enemy_bloodturn >= 1:
        if '출혈' in enemy_con:
            pass
        else:
            enemy_con.append('출혈')
    if enemy_bloodturn == 0:
        if '출혈' in enemy_con:
            enemy_con.remove('출혈')
        else:
            pass

    # 적_갈증
    if enemy_thirstyturn >= 1:
        if '갈증' in enemy_con:
            pass
        else:
            enemy_con.append('갈증')
    if enemy_thirstyturn == 0:
        if '갈증' in enemy_con:
            enemy_con.remove('갈증')
        else:
            pass

    #적_치료증폭:
    if enemy_recover_up >= 1:
        if '치료증폭' in enemy_con:
            pass
        else:
            enemy_con.append('치료증폭')
        enemy_recover_up -= 1


    #적_치료감소
    if enemy_recover_down >= 1:
        if '치료감소' in enemy_con:
            pass
        else:
            enemy_con.append('치료감소')
        enemy_recover_down -= 1

    #적_기절
    if enemy_faintturn >= 1:
        if '기절' in enemy_con:
            pass
        else:
            enemy_con.append('기절')
        enemy_faintturn -= 1


    # 적 상태
    print('적의 스탯 ')
    print('체력 : {},  마나 : {}'.format(enemy['체력'], enemy['마나']))
    print('공격력 : {},  주문력 : {}'.format(enemy['공격력'], enemy['주문력']))
    print('방어력 : {},  마법저항력 : {}'.format(enemy['방어력'], enemy['마법저항력']))
    print('물리관통력 : {},  마법관통력 : {}'.format(enemy['물리관통력'], enemy['마법관통력']))
    print('체력재생력 : {},  마나재생력 : {}'.format(enemy['체력재생력'], enemy['마나재생력']))
    print('적의 상태 : ', enemy_con)

    if '기절' not in enemy_con:
        enemy_choice = random.choice(enemy_acts)
        print(enemy_choice)
        if enemy_choice == '공격':
            player['체력'] = enemy_att(player['체력'], enemy['공격력'], player['방어력'], enemy['물리관통력'])
        if enemy_choice == '휴식':
            enemy['체력'], enemy['마나'] = enemy_rest(enemy['체력'], enemy['마나'], enemy['체력재생력'], enemy['마나재생력'], enemy_con)
        if enemy_choice == '상태확인':
            enemy_check(enemy, enemy_con)
        if enemy_job == '마법사':
            if enemy_choice == '메테오':
                player['체력'], enemy['마나'], player_fireturn = enemy_skill1(player['체력'], enemy['주문력'], player['마법저항력'], enemy['마법관통력'], enemy['마나'], player_fireturn)
                enemy['주문력'] += 5
            if enemy_choice == '치유':
                enemy['체력'], enemy['방어력'], enemy['마법저항력'], enemy['마나'] = enemy_skill2(enemy['체력'], enemy['주문력'], enemy['방어력'], enemy['마법저항력'], enemy['마나'])
                enemy['주문력'] += 5
            if enemy_choice == '저주':
                player_poisonturn, player_thirstyturn, player_recover_down, player['방어력'], player['마법저항력'], enemy['마나'] = enemy_skill4(player_poisonturn, player_thirstyturn, player_recover_down, player['방어력'], player['마법저항력'], enemy['마나'])
                enemy['주문력'] += 5
            if enemy_choice == '파괴':
                player['체력'], enemy['주문력'], enemy['마나'] = enemy_skill5(player['체력'], player_lost_hp, enemy['주문력'], player['마법저항력'], enemy['마법관통력'], enemy['마나'])
                enemy['주문력'] += 5

    # 적_화염
    if enemy_fireturn >= 1:
        enemy['체력'], enemy_fireturn = condition.fire(enemy['체력'], enemy_first_hp, enemy_fireturn)

    # 적_중독
    if enemy_poisonturn >= 1:
        enemy['체력'], enemy_poisonturn = condition.poison(enemy['체력'], enemy_lost_hp, enemy_poisonturn)

    # 적_출혈
    if enemy_bloodturn >= 1:
        enemy['체력'], enemy_bloodturn = condition.blood(enemy['체력'], enemy_bloodturn)

    # 적_갈증
    if enemy_thirstyturn >= 1:
        enemy['마나'], enemy_thirstyturn = condition.thirsty(enemy['마나'], enemy_thirstyturn)

    # 적_치료증폭
    if enemy_recover_up == 0:
        if '치료증폭' in enemy_con:
            enemy_con.remove('치료증폭')

    # 적_치료감소
    if enemy_recover_down == 0:
        if '치료감소' in enemy_con:
            enemy_con.remove('치료감소')

    # 적_기절
    if enemy_faintturn == 0:
        if '기절' in enemy_con:
           enemy_con.remove('기절')

    #게임종료
    if player['체력'] <= 0 or enemy['체력'] <= 0:
        print('게임이 끝났습니다!')
        if player['체력'] <= 0:
            print('----------------------------------------------------\n')
            player_check(player, player_con)
            print('----------------------------------------------------\n')
            print('적이 이겼습니다!')
            break
        else:
            print('----------------------------------------------------\n')
            print('적의 스탯 ')
            print('체력 : {},  마나 : {}'.format(enemy['체력'], enemy['마나']))
            print('공격력 : {},  주문력 : {}'.format(enemy['공격력'], enemy['주문력']))
            print('방어력 : {},  마법저항력 : {}'.format(enemy['방어력'], enemy['마법저항력']))
            print('물리관통력 : {},  마법관통력 : {}'.format(enemy['물리관통력'], enemy['마법관통력']))
            print('체력재생력 : {},  마나재생력 : {}'.format(enemy['체력재생력'], enemy['마나재생력']))
            print('적의 상태 : ', enemy_con)
            print('----------------------------------------------------\n')
            print('당신이 이겼습니다!')
            break
    print('----------------------------------------------------\n')
3.3.2.2 condition
# 화염 : 자신의 턴 시작할때마다 자신의 기본체력의 3%만큼 고정피해를 입습니다.

def fire(hp, first_hp, nowturn):
    player_new_hp = hp - int(first_hp /  100 * 3)
    turn = nowturn - 1
    return player_new_hp, turn

# 중독 : 자신의 턴 시작할때마다 자신의 잃은체력의 5%만큼 고정피해를 입습니다.

def poison(hp, lost_hp, nowturn):
    if int(lost_hp /  20) < 0:
        player_new_hp = hp
    else:
        player_new_hp = hp - int(lost_hp /  20)
    turn = nowturn - 1
    return player_new_hp, turn


# 출혈 : 자신의 턴 시작할때마다 자신의 현재체력의 5%만큼 고정피해를 입습니다.

def blood(hp, nowturn):
    player_new_hp = hp - int(hp /  20)
    turn = nowturn - 1
    return player_new_hp, turn


# 갈증 : 자신의 턴 시작할때마다 현재마나의 10%만큼 마나를 잃습니다.

def thirsty(mana, nowturn):
    player_new_mana = mana - int(mana /  10)
    turn = nowturn - 1
    return player_new_mana, turn


# 기절 : 기절에 걸린 적은 자신의 턴에 아무것도 할 수 없습니다.
    

# 침묵 : 걸린 상대는 스킬을 사용할 수 없습니다. (패시브 제외)


# 무장해제 : 걸린 상대는 기본공격을 사용할 수 없습니다.


# 치료감소 : 자신이 받는 모든 회복에 대해서 40%만큼 감소합니다.


# 치료증폭 : 자신이 받는 모든 회복에 대해서 40%만큼 증가합니다.


def recover(hp, mana, con, partjob):
    re_hp = hp
    re_mana = mana
    if '치료감소' in con:
        re_hp = int(re_hp * 0.6)
        re_mana = int(re_mana * 0.6)
    if '치료증폭' in con:
        re_hp = int(re_hp * 1.4)
        re_mana = int(re_mana * 1.4)
    if partjob == 1:
        re_hp = int(re_hp * 1.3)
        re_mana = int(re_mana * 1.3)
    return re_hp, re_mana

# 보호막 : 자신이 입은 피해만큼 흡수해주는 보호막을 생성해줍니다.

보호막하고 무장해제 침묵은 구현하기 어려울것같네요 ㅠ

3.3.2.3 Setting
import wizard
import worrior
import assassin


def set(player_job, enemy_job, level):
    # 플레이어에게 기본 스탯 대입
    if player_job == "마법사":
        print(''' -------------------------------------------------------------------------------
패시브 : \n마법사는 자신의 턴 시작할때마다 2만큼 주문력을 얻습니다. 스킬을 사용하면 5의 주문력을 얻습니다. 주문력이 200이상이 되면 마법관통력을 15만큼얻습니다.\n
메테오 : \n마법사가 적에게 (주문력의 230%)의 피해를 마법피해를 입힙니다. 상대는 2턴동안 '화염'효과를 받습니다.(마나: 60)\n
치유 : \n마법사가 (주문력의 100%) + 120 만큼 회복하고 방어력과 마법저항력을 6만큼 얻습니다. 만약 체력이 750이하라면 (주문력의 180%)만큼 더 회복됩니다. (마나 : 90)\n 
안정 : \n4턴마다 마나를 50 얻습니다. (패시브)\n
저주 : \n상대를 저주하여 4턴동안 '중독', '갈증', '치료감소' 효과를 줍니다. 또한 방어력과 마법저항력을 5만큼 감소시킵니다. (마나 : 120)\n
파괴 : \n상대에게 (주문력의 350% + 상대잃은체력의 25%)만큼 마법피해를 입힙니다. 이 스킬후 마법사는 ('파괴'로 입힌피해량의 5%)만큼 주문력을 얻습니다. (마나 400)\n
-------------------------------------------------------------------------------''')
        a = wizard.wizard
        c = wizard.acts
    elif player_job == "전사":
        print(''' -------------------------------------------------------------------------------
패시브 : \n전사는 적을 기본공격하면 20%확률로 2턴동안 기절시킵니다. \n
의지 : \n자신의 공격력과 방어력을 각각 10, 6만큼 얻습니다. (마나 : 80) \n
강타 : \n상대를 강하게 내리쳐 (공격력의 200%)만큼 물리피해를 입힙니다. 만약 상대가 기절중이라면 (공격력의 150%)만큼 추가 물리피해를 입힙니다. (마나 : 80) \n
재생 : \n전사의 기본회복량은 150% 입니다. (패시브)\n
포효 : \n상대를 3턴동안 기절시킵니다. (마나 : 140)\n
결집 : \n자신의 체력을 (자신 기본체력의 10% + 상대 기본체력의 10%)만큼 회복시킵니다. 또한 방어력과 마법저항력을 15만큼 얻습니다. hp가 700이하면 (공격력의 200%)만큼 더 회복합니다. (마나 : 400)\n
-------------------------------------------------------------------------------''')
        a = worrior.worrior
        c = worrior.acts
    elif player_job == '암살자':
        print(''' -------------------------------------------------------------------------------
패시브 : \n기본공격시 25%확률로 치명타가 터집니다. 치명타는 (공격력의 200%)만큼 물리피해를 줍니다. \n
기습 : \n적에게  (공격력의 150% + 주문력 300%)에 해당하는 물리피해를 입힙니다. 25%확률로 고정피해를 입힙니다. (마나 : 80) \n
암살 : \n만약 상대의 피가 (500 + 주문력의 300%)이하일때 기본공격을 하면 상대가 즉사합니다. (패시브) 칼춤 : 상대에게 '출혈' 효과를 3턴동안 부여합니다.  (마나 : 60) \n
불검 : \n상대에게 4턴동안 '화염', '치료감소' 효과를 부여하고 (공격력의 200% + 상대기본체력의 5%)만큼 물리피해를 줍니다. (마나 : 140) \n
혼돈 : \n4턴 동안 적을 기절시킵니다. 암살자는 공격력과 주문력을 각각 50만큼 얻습니다. (마나 : 360) \n
-------------------------------------------------------------------------------''')
        a = assassin.assassin
        c = assassin.acts
    # 적에게 기본 스탯 대입
    if enemy_job == "마법사":
        b = wizard.enemy_wizard
        d = wizard.enemy_acts
    elif enemy_job == '전사':
        b = worrior.enemy_worrior
        d = worrior.acts
    elif enemy_job == '암살자':
        b = assassin.enemy_assassin
        d = assassin.acts
    return a, b ,c ,d


# 스킬 대입
def skillset(job):
    if job == '마법사':
        return wizard.att, wizard.rest, wizard.check, wizard.meteor, wizard.hill, None, wizard.curse, wizard.destroy
    if job == '전사':
        return worrior.att, worrior.rest, worrior.check, None, None, None, None, None
    if job == '암살자':
        return assassin.att, assassin.rest, assassin.check, None, None, None, None, None
3.3.2.4 wizard
import condition


# 마법사 기본스탯
wizard = {'체력': 2860, '공격력': 142, '주문력': 90, '방어력': 60, '마법저항력': 100, '마나': 400, '물리관통력': 0, '마법관통력': 15, '체력재생력': 10, '마나재생력': 6}
enemy_wizard = {'체력': 2860, '공격력': 142, '주문력': 90, '방어력': 60, '마법저항력': 100, '마나': 400, '물리관통력': 0, '마법관통력': 15, '체력재생력': 10, '마나재생력': 6}

acts = ['공격', '휴식', '상태확인', '메테오', '치유', '저주', '파괴']
enemy_acts = ['공격', '휴식', '상태확인', '메테오', '치유', '저주', '파괴']

def att(enemy_hp, player_attack, enemy_defence, player_ig_defence):
    new_enemy_hp = int(enemy_hp - (player_attack * (1 - (enemy_defence / (enemy_defence  + 100) * (1 - player_ig_defence /100)))))
    return new_enemy_hp

def rest(player_hp, player_mana, player_rehp, player_remana, player_con):
    new_player_plushp, new_player_plusmana = condition.recover(player_rehp * 4, player_remana * 3, player_con, 0)
    new_player_hp = player_hp + new_player_plushp
    new_player_mana = player_mana + new_player_plusmana
    return new_player_hp, new_player_mana

def check(player, player_con):
    print('플레이어의 스탯 ')
    print('체력 : {},  마나 : {}'.format(player['체력'], player['마나']))
    print('공격력 : {},  주문력 : {}'.format(player['공격력'], player['주문력']))
    print('방어력 : {},  마법저항력 : {}'.format(player['방어력'], player['마법저항력']))
    print('물리관통력 : {},  마법관통력 : {}'.format(player['물리관통력'], player['마법관통력']))
    print('체력재생력 : {},  마나재생력 : {}'.format(player['체력재생력'], player['마나재생력']))
    print('나의 상태 : ', player_con)

# 패시브 : 마법사는 자신의 턴 시작할때마다 2만큼 주문력을 얻습니다. 스킬을 사용하면 10의 주문력을 얻습니다. 주문력이 200이상이 되면 마법관통력을 15만큼얻습니다.


# 메테오 : 마법사가 적에게 (주문력의 230%)의 피해를 마법피해를 입힙니다. 상대는 2턴동안 '화염'효과를 받습니다.(마나: 60) 

def meteor(enemy_hp, player_mag, enemy_magicdefence, player_ig_magicdefence, player_mana, enemy_fire):
    if player_mana >= 60:
        new_enemy_hp = int(enemy_hp - (player_mag * 2.3 * (1 - (enemy_magicdefence / (enemy_magicdefence  + 100) * (1 - player_ig_magicdefence /100)))))
        new_player_mana = player_mana - 60
        new_enemy_fire = enemy_fire + 2
        return new_enemy_hp, new_player_mana, new_enemy_fire
    else:
        print('마나가 {}만큼 부족합니다.'.format(60 - player_mana))
        return enemy_hp, player_mana, enemy_fire


# 치유 : 마법사가 (주문력의 100%) + 120 만큼 회복하고 방어력과 마법저항력을 6만큼 얻습니다. 만약 체력이 750이하라면 (주문력의 180%)만큼 더 회복됩니다. (마나 : 90)

def hill(player_hp, player_magic, player_defence, player_magicdefence, player_mana):
    if player_mana >= 90:
        new_player_hp = player_hp + player_magic + 120
        if player_hp <= 700:
            new_player_hp += int(player_magic * 1.8)
        new_player_defence = player_defence + 6
        new_player_magicdefence = player_magicdefence + 6
        new_player_mana = player_mana - 90
        return new_player_hp, new_player_defence, new_player_magicdefence, new_player_mana
    else:
        print('마나가 {}만큼 부족합니다.'.format(90 - player_mana))
        return player_hp, player_defence, player_magicdefence, player_mana 

# 안정 : 4턴마다 마나를 50 얻습니다. (패시브)


# 저주 : 상대를 저주하여 4턴동안 '중독', '갈증', '치료감소' 효과를 줍니다. 또한 방어력과 마법저항력을 5만큼 감소시킵니다. (마나 : 120)

def curse(enemy_poison, enemy_thirsty, enemy_recover_down, enemy_defence, enemy_magicdefence, player_mana):
    if player_mana >= 120:
        new_enemy_posionturn = enemy_poison + 4
        new_enemy_thirstyturn = enemy_thirsty + 4
        new_enemy_recover_down = enemy_recover_down + 4
        new_enemy_defence = enemy_defence - 5
        new_enemy_magicdefence = enemy_magicdefence - 5
        new_player_mana = player_mana - 120
        return new_enemy_posionturn, new_enemy_thirstyturn, new_enemy_recover_down, new_enemy_defence, new_enemy_magicdefence, new_player_mana
    else:
        print('마나가 {}만큼 부족합니다.'.format(120 - player_mana))
        return enemy_poison, enemy_thirsty, enemy_recover_down, enemy_defence, enemy_magicdefence, player_mana


# 파괴 : 상대에게 (주문력의 350% + 상대잃은체력의 25%)만큼 마법피해를 입힙니다. 마법사는 ('파괴'로 입힌피해량의 5%)만큼 주문력을 얻습니다. (마나 400) 

def destroy(enemy_hp, enemy_lost_hp, player_magic, enemy_magicdefence, player_ig_magicdefence, player_mana):
    if player_mana >= 400:
        first_hp = enemy_hp
        new_enemy_hp = int(enemy_hp - ((enemy_lost_hp / 4 + player_magic * 3.5) * (1 - (enemy_magicdefence / (enemy_magicdefence  + 100) * (1 - player_ig_magicdefence /100)))))
        damaged = enemy_hp - new_enemy_hp
        new_player_magic = player_magic + int(damaged / 20)
        print('마법사가 주문력을 {}만큼 얻었습니다!'.format(int(damaged / 20)))
        new_player_mana = player_mana - 400
        return new_enemy_hp, new_player_magic, new_player_mana
    else:
        print('마나가 {}만큼 부족합니다.'.format(400 - player_mana))
        return enemy_hp, player_magic, player_mana
3.3.2.5 worrior
worrior = {'체력': 3200, '공격력': 189, '주문력': 0, '방어력': 80, '마법저항력': 60, '마나': 280, '물리관통력': 10, '마법관통력': 0, '체력재생력': 8, '마나재생력': 4}
3.3.2.6 assassin
assassin = {'체력': 2760, '공격력': 222, '주문력': 50, '방어력': 40, '마법저항력': 20, '마나': 300, '물리관통력': 30, '마법관통력': 0, '체력재생력': 6, '마나재생력': 4}

3.3.3 현황

직업의 특성 및 스킬 계획 ( 자잘한 밸런스 패치 )

플레이어와 적에게 해당하는 직업의 스탯을 적용하기 구현 중

'기절', '침묵', '치유감소' 등 효과 계획

기본 공격 공식 = def att(enemy_hp, player_attack, enemy_defence, player_ig_defence):
                       new_enemy_hp = int(enemy_hp - (player_attack * (1 - (enemy_defence / (enemy_defence  + 100) * (1 - player_ig_defence /100)))))
                       return new_enemy_hp

리그 오브 레전드 공식을 참고했습니다. 마법피해도 이와 같습니다.

enemy_hp = 상대 체력

player_attack = 플레이어 공격력

enemy_hp = 상대 방어력

player_ig_defence =플레이어 물리관통력

new_enemy_hp = 함수 후 남은 상대 체력

3.4 마카

3.4.1 설명

마인크래프트 활용이나 디스코드 봇을만들고싶어요

3.4.2 코드

print('Hello Python!')


3.5 Min-Ku Lee

3.5.1 설명

저는 시내버스 기사인데요, 버스의 배차표를 작성하는 프로그램을 만들고 싶어요.

3.5.1.1 코딩경력

20년전 학교에서 배운게 전부이며 전/현직 직업은 코딩과 관련 없는 직업 (비쥬얼베이직6.0, C, ASP, JSP를 배웠으나 (전혀)기억나지 않음)

3.5.1.2 개요

시내버스 배차 프로그램

3.5.1.3 목적

현재 엑셀로 작성/관리되는 배차표를 자동화하고 DB로 저장함

3.5.1.4 현황

배차표를 팀장이 수기로 작성하여 공지하면, 팀원은 해당 배차표를 확인하고 운행

  • 배차표는 팀장이 엑셀로 작성하고 관리하며 보통 1주일 단위로 배차를 공지함
  • 배차 순번에 따라 운행 횟수가 달라짐(예: 첫차~4번차 = 4바퀴 / 5번차~막차= 3바퀴)
  • 변수(차량고장, 사고 등)가 발생하면 당일 이후 배차를 전부 재 수기로 수정해야 함
  • 기사 입사일 순번으로 고정 차량이 지급되며, 나머지 기사는 스페어 기사임 (예: 차량이 10대/ 기사가 17명일 경우, 위로 10명은 고정차/ 뒤 7명은 임의 차량을 탐)
  • 팀원(기사)은 배차가 곧 월급 및 근무시간(운행횟수)와 직접 연계 됨
  • 따라서, 배차표를 민감하게 생각하고 불만이 많음 (누구는 3바퀴 타고, 나는 4바퀴타고 등)
3.5.1.5 내용

버스와 기사를 매칭해서 일별 배차표 작성

  • Admin(팀장)만 배차표를 작성 할 수 있음.
  • 배차표 열람권한은 팀원만 해도 되고, 전체공개를 해도 무관
  • 일별 차량과 기사를 맵핑하여 일일 배차표를 자동으로 생성하고 작성기간 임의생성 가능(예: 한달 배차 또는 1주일 배차 등)
  • 배차 순번과 차량을 공평하고 공정하게 생성(스페어 기사 고려)
  • 변수 발생에 따른 임의 수정 기능 필요.(임의 수정 시 이후 배차표는 자동생성)
  • Admin의 열람기능 필요.(예: 팀원 별 근무일수, 4바퀴/3바퀴 운행 횟수 등 <- 팀원 불만 해소)

3.5.2 코드

print('Hello Python!')


3.6 지용근

3.6.1 설명

궁극적으로 2D도트게임을 만들고 싶은데 거기에 관련된 프로그램중 기초적인 걸 만들고 싶습니다

3.6.2 코드

print('Hello Python!')


3.7 DR.블랙팬텀X

3.7.1 설명

분수를 소수로 바꿔주는 계산기입니다

3.7.2 코드

print('Hello Python!')


3.8 뚱이곰

3.8.1 설명

특정 키워드(예, 여행)에 해당하는 블로그 전체를 검색하여 내용 중 명사/형용사를 모두 추출하여 빈도를 계산하는 프로그램입니다

3.8.2 코드

print('Hello Python!')


3.9 삼선짭뽕

3.9.1 설명

사용자의 상황에 알맞는 식사메뉴를 추천해주는 프로그램 (현재있는재료/조리시간/조리복잡도/조리기구유무를 고려)

3.9.2 코드

print('Hello Python!')


3.10 태 현

3.10.1 설명

마침 한입에 쏙 파이썬을 1회독하고 다음에는 무엇을 할까 고민중이었는데 공지가 떠서 책에서 배운 내용을 기반으로 할 수 있는 프로그램을 만들고 싶습니다! 그리고 제 전공인 생명 정보관련해서 이용할 수 있는 프로그램이면 더 좋을 거 같습니다!

3.10.2 코드

print('Hello Python!')


3.11 이상원

3.11.1 설명

윈도우용 캘린더

3.11.2 코드

print('Hello Python!')


3.12 Sungyou

3.12.1 설명

저널 내 여러 논문들의 figure들을 crawling해서 원하는 데이터만 선택적으로 저장하고, 이 데이터를 tensorflow를 사용하여 phase나 regime diagram 만들기 + ANN 으로 화학공정 내 output을 바탕으로 fuel의 chemical composition 예측하기

3.12.2 코드

print('Hello Python!')


3.13 박태현

3.13.1 설명

파이썬으로 나 만의 웹페이지 ( 서버 ) 를 만들어 내 사이트를 대상으로 각종 웹 공격 ( ARP 스푸핑,brute force, SQL 인젝션 등등.. ) 을 경험 해보고싶습니다. 나만의 사이트를 파이썬으로 웹페이지를 만드는 것 까지를 목표로 두고 싶습니다.

3.13.2 코드

print('Hello Python!')


3.14 zoey

3.14.1 설명

스케줄러나 일기장 혹은 간단한 게임 만들어 보고 싶어요. 더 구체적으로 생각해볼게요

3.14.2 코드

print('Hello Python!')


3.15 donghyuk shin

3.15.1 설명

음악 추천시스템을 만들어보고 싶습니다.

3.15.2 코드

print('Hello Python!')


3.16 감귤

3.16.1 설명

Pandas로 데이터 전처리하기/ 텐서플로우 이용하여 자료 분석하기! 꿈이 인공지능 연구쪽이기도 하고, 과제 만들때 되게 도움이 많이될거 같습니다.C언어는 다뤄본적 있으나, 파이썬은 제대로 알고있지 않고, 텐서플로우 라이브러리만 살짝 다뤄보는 수업만 들은 상태라.. 유아반에 넣었습니다.

  • 공공데이터포털에서 받아온 Excel 파일을 받아오기
  • 받아온 Excel 파일을 Pandas를 이용, 러닝할수 있는 형태로 전처리
  • TensorFlow를 이용해 구하고자 하는 종속함수와 독립함수의 관계 구하기
  • 임의로 독립변수를 입력, 그에 맞는 종속변수 구하기

3.16.2 코드

print('Hello Python!')


3.17 양셔류

3.17.1 설명

간단한 쳇봇 만들어보고싶습니다.

3.17.2 코드

print('Hello Python!')


3.18 모토

3.18.1 설명

가족들 만을 위한 인스타그램

3.18.2 코드

print('Hello Python!')


3.19 박상순

3.19.1 설명

단어간 유사도 측정, 쇼핑몰 가격, 상품정보 웹 크롤링, 상품 웹 스토어 (쿠팡) 자동 등록

3.19.2 코드

print('Hello Python!')


3.20 야호

3.20.1 설명

간단한 게임?, 인공지능 만들기?(내가 말하면 대답해주고 웹검색도 해주는...)(딥러닝과머신러닝을 좀 배우고 싶은데...)\n(파이썬을 예전에 공부 했었는데 지금은 좀 많이 까먹어서 유아반에 입학했습니다.)

3.20.2 코드

3.20.3 간단한 게임

3.20.3.1 설명

텍스트 게임 (스팀에 있는 'Slay the Spire'이라는 게임과 비슷한 게임) 직업을 고를 수 있고 게임 난이도를 자신이 설정할 수 있으며 게임난이도에 따라 적의 스탯이 좋아진다. 게임을 플레이 하는 사람의 직업은 고를 수 있으며 적의 직업은 랜덤모듈을 사용해 랜덤으로 골라지도록 한다 직업별로 패시브 스킬 1개씩 존재하며 일반 스킬도 2~3가지 있음

직업(캐릭터) : (미정)

난이도 종류 : 쉬움,보통,어려움

3.20.3.2 기초 설정


3.21 weelsun

3.21.1 설명

구글알리미와 같은 설정한 키워드에 따라 자동으로 뉴스스크래핑해주고, 스크래핑된 기사마다 핵심문장 찾아서 정리해주는 프로그램을 만들고 싶어요.

3.21.2 코드

print('Hello Python!')


3.22 김인수

3.22.1 설명

pyautogui로 UI가 구현된 매크로프로그램을 하나 만들고싶습니다. ex) 출석체크, 로그인, 프로그램 실행, 등등

3.22.2 코드

print('Hello Python!')


3.23 Eddy (구구달스)

3.23.1 설명

네트워크/보안 정책 자동 설정 프로그램

3.23.2 코드

print('Hello Python!')


3.24 김지수

3.24.1 설명

3.24.1.1 수준

한입에 쏙 파이썬 2/3 수강, 아직 익숙치 않아서 코드를 따라하면서 매우 낮은 수준의 엑셀 읽고 쓰기 가능

3.24.1.2 목표

업무자동화 프로그램

  • 엑셀파일 - pdf 파일(주로 table 자료)을 읽어서 엑셀에 작성
  • 함수와 macro를 이용하듯이 파이썬으로 엑셀을 활용하고 싶습니다. ( ex : 회사 재고의 수입된 날짜와 로트 별로 집계 금액 산출)
  • 항목별 책정된 금액을 재고 별로 할당하는 시스템. 예를 들자면 총 자금 100만원 중 50만원을 'A' 항목에 책정하고 그 금액은 'a1','a2','a3' 재고에만 할당시켜서 자동으로 매출매입현황을 파악할 수 있는 엑셀 환경을 파이썬으로 구축하고 싶습니다.
  • 관심있는 특정 키워드를 포함한 뉴스기사 서칭
  • '3'의 내용을 보고할 목적으로 이메일 전송

3.24.2 코드

print('Hello Python!')


3.25 Hwayoung Yoon

3.25.1 설명

나에게 맞는 전공을 선택하는 테스트, 합격 확률 예측 프로그램 만들기

3.25.2 코드

print('Hello Python!')


3.26 TimeSquare

3.26.1 설명

파이썬을 이용하여 통신을 주고받고 최종적으로 채팅 프로그램을 하나 구현해보고 싶습니다

3.26.2 코드

print('Hello Python!')


3.27 MR

3.27.1 설명

챗봇과 매크로, 웹사이트/관리자페이지 만들고싶어요.

3.27.2 코드

print('Hello Python!')


3.28 용용

3.28.1 설명

파이썬으로 만든 나만의 웹페이지를 만들고 싶어요! ( 장고나 플라스크 공부해보고싶어요)

3.28.2 코드

print('Hello Python!')


3.29 JT

3.29.1 설명

데이터 프로세싱과 Visualization 툴을 만들고 싶습니다.

3.29.2 코드

print('Hello Python!')


3.30 Kim KY

3.30.1 설명

장비가동률을 기반으로 한 장비별 전문화 아이템 산출

3.30.2 코드

# 파이썬 시작하기
a = input('program_number?')
i = input('연월일(yyyy.mm.dd)?')
year = i[0:4]
month = i[5:7]
date = i[8:]

print('='*50)
print('program_number #' + a)
print('Life is short, You need Python')
print(f'연도 : {year}년')
print(f'날짜 : {month}{date}일')
print('='*50)

3.31 이원권

3.31.1 설명

업무 자동화(일단위 분석)-자세하게 회사 DB 오류 일단위 오류 검출 기능

3.31.2 코드

print('Hello Python!')


3.32 아콰초코

3.32.1 설명

예전에 적어놨던 메모를 자동으로 불러오는 프로그램

3.32.2 코드

print('Hello Python!')


3.33 Funnyjo

3.33.1 수준

대학교때 두학기 정도 수업을 들었고 비전공자입니다.. 파이썬 한입에쏙 반정도 들었습니다.

3.33.2 설명

자동화 프로그램을 만들어 보고싶습니다. 아두이노를 이용해서나 엑셀을 통해서여!

3.33.3 코드

print('Hello Python!')


3.34 ckstmznf

3.34.1 설명

GUI를 이용해서 나를 소개하는 프로그램 만들기

3.34.2 참고영상

https://youtu.be/OtqWefBqbxA

3.34.3 코드

print('Hello Python!')


3.34.4 김매매

3.34.5 수준

구글에 파이썬 예제라고 치면 나오는 첫번째 300문제 다 풀 수 있음

3.34.6 목표

1.김매매: 휴대폰 배터리 상태와 온도 알림 어플 2. fps게임할때 화면을 확대해 스코프 없이도 줌을 할수 있는 프로그램(모바일 포함) 3. 버튼 하나로 음악을 재생, 정지를 해 게임 로딩시간을 지루하지 않게 하는 프로그램 4. 휴대폰 게임 할때 버튼 위치를 옮길 수 없을때 임의로 지정한 곳을 터치하면 버튼이 인식되는 어플 왠만하면 모바일로 갈거임

3.34.7 코드

  1. '국민 갓겜 가위바위보를 만들었습니다.'

print('게임을 시작합니다. 시작하려면 아무키나 입력하시고\n 종료하시려면 "종료"를 입력해 주세요') skill=input() list=['가위', '바위', '보'] win='제가 이겼군요 하핳' lose='제가 졌군요ㅠㅠ' tie='비겼네요 다시' winc=0 losec=0 tiec=0 scissors=0 rock=0 paper=0 while skill!='종료':

   print('안 내면 진 거 가위바위보')
   skill=input()
   if skill=='가위':
       scissors+=1
       import random
       resurt=random.choice(list)
       print(resurt)
       if resurt=='가위':
           print(tie)
           tiec+=1
           print('\n')
       elif resurt=='바위':
           print(win)
           winc+=1
           print('\n')
       elif resurt=='보':
           print(lose)
           losec+=1
           print('\n')
   elif skill=='바위':
       rock+=1
       import random
       resurt=random.choice(list)
       print(resurt)
       if resurt=='가위':
           print(lose)
           losec+=1
           print('\n')
       elif resurt=='바위':
           print(tie)
           tiec+=1
           print('\n')
       elif resurt=='보':
           print(win)
           winc+=1
           print('\n')
   elif skill=='보':
       paper+=1
       import random
       resurt=random.choice(list)
       print(resurt)
       if resurt=='가위':
           print(win)
           winc+=1
           print('\n')
       elif resurt=='바위':
           print(lose)
           losec+=1
           print('\n')
       elif resurt=='보':
           print(tie)
           tiec+=1
           print('\n')
   else:
       if skill!='종료':
           print('이상한거 내지 말고 재대로 내봐요')
           print('\n')
   continue

print('게임이 종료돠었습니다.') print('승리 :',winc) print('패배 :',losec) print('무승부 :',tiec) print('\n') print('가위를 낸 횟수 :',scissors) print('바위를 낸 횟수 :',rock) print('보를 낸 횟수 :',paper) print('수고하셨습니다.') input('창을 닫으시려면 아무 키나 입력하세요')

문서 댓글 ({{ doc_comments.length }})
{{ comment.name }} {{ comment.created | snstime }}