본문 바로가기
부트캠프TIL, WIL/AI웹개발(스파르타코딩클럽)

[AI 웹개발TIL]11일차 개발일지

by 우지uz 2023. 3. 24.

3월 24일 금요일 TIL 
( ⏰ 3월 20일(월) ~ 3월 26일 ) ▶ 순공 시간 : 7h10m


▶ 공부 중인 도서

1. 코딩 자율 학습 파이썬 입문
(진행도, 이해도) = (60%, 65%)
2. 코딩 자율 학습 HTML,CSS,JAVA SCRIPT
(진행도, 이해도) = (0%, 0%)
3. 얕은 코딩 지식 사전
(진행도, 이해도) = (30%, 68%)

▶ 공부 중인 강의

1. 웹 종합 개발반 : (진행도, 이해도) = (58%, 70%)
2. SQL : (진행도, 이해도) = (0%, 0%)
3. 파이썬 문법 기초 : (진행도, 이해도) = (100%, 70%)
4. 파이썬 문법 심화 : (진행도, 이해도) = (45%, 50%)

▶ 과제 및 프로젝트

✔연습 문제 및 예제 풀이
1번. 당첨자 뽑기(random , shuffle, sample 및 자료형 변환 사용하기)

나도코딩 파이썬입문 5.6 실습문제

▶풀이 방법
1. 랜덤 모듈 사용을 위해 불러오기
2. 전체 사용자 20명을 range 함수를 이용해서 불러오고 
3. type 을 range에서 list 로 바꿔준 다음 
4. shuffle 로 섞어주기
5. 치킨 당첨자를 sample 로 한명 뽑아주고 
6. list 타입을 set 타입으로 변환해서, 이미 뽑힌 당첨자를 제외한 차집합을 생성하고 
7. 다시 list 타입으로 변경한 다음에 
8. 커피 당첨자를 3명 sample 로 뽑아주고
9. 당첨자를 프린트 한다.  
▶코드

from random import *

users = list(range(1, 21))

shuffle(users)
chiken_winner = sample(users, 1)

remain_users = set(users) - set(chiken_winner)
coffee_winner = sample(remain_users, 3)

print("-- 당첨자 발표 --")
print("치킨 당첨자 : {0}".format(chiken_winner))
print("커피 당첨자 : {0}".format(coffee_winner))
print("-- 축하합니다 --")

 
2번. while 반복문 예제 . 5회동안 커피가 준비 됐다고 말하기

customer = "토르"
index = 5

while index >= 1:
print("{}님 커피가 준비 되었습니다 ! ".format(customer))
index -= 1
print("{}{}번 남았습니다. ".format(customer, index))

if index == 0:
print("{}님 음료가 폐기되었습니다.".format(customer))

 

3번. 실습 문제 6.3 <택시 승객 수 구하기>
 

▶풀이 방법
- 변수 : cnt 탑승객 숫자 , time 시간, range 1번 손님부터 50번 손님번호
시간을 55분부터 50분까지 난수로 정하기 위해서, randrange 함수를 사용해서 
time = randrange(5,51)로 설정한다. 
5분 ~ 15분인 승객이 있으면, 탑승 시키고 cnt에 1개씩 추가한다. 
아니면 추가시키지 않는다. 
랜덤한 시간들을 50명의 승객이 가지기 때문에, 탑승한 승객의 수가 결과마다 다르게 나온다
▶코드

from random import *
cnt = 0 # 총 탑승객 수, 탑승할 때마다 카운트

for user in range(1, 51): # 1번부터 50번까지
time = randrange(5, 51) # 시간은 5분부터 50분까지 랜덤하게 범위값을 지정
if 5 <= time <= 15:
print("[O] {0}번째 손님 (소요시간 : {1}분)".format(user, time))
cnt += 1 # 탑승하면 탑승객 수를 하나하나 추가
else: # 탑승하지 못하는 승객들은 카운트하지않음
print("[ ] {0}번째 손님 (소요시간 : {1}분)".format(user, time))
print(" 탑승객 : {0}명".format(cnt))

더보기

[ ] 1번째 손님 (소요시간 : 38분)
[ ] 2번째 손님 (소요시간 : 40분)
[O] 3번째 손님 (소요시간 : 10분)
[ ] 4번째 손님 (소요시간 : 49분)
[ ] 5번째 손님 (소요시간 : 34분)
[ ] 6번째 손님 (소요시간 : 48분)
[ ] 7번째 손님 (소요시간 : 24분)
[O] 8번째 손님 (소요시간 : 13분)
[ ] 9번째 손님 (소요시간 : 46분)
[ ] 10번째 손님 (소요시간 : 22분)
[ ] 11번째 손님 (소요시간 : 35분)
[ ] 12번째 손님 (소요시간 : 20분)
[ ] 13번째 손님 (소요시간 : 42분)
[ ] 14번째 손님 (소요시간 : 35분)
[ ] 15번째 손님 (소요시간 : 33분)
[ ] 16번째 손님 (소요시간 : 33분)
[ ] 17번째 손님 (소요시간 : 39분)
[ ] 18번째 손님 (소요시간 : 30분)
[O] 19번째 손님 (소요시간 : 10분)
[O] 20번째 손님 (소요시간 : 11분)
[O] 21번째 손님 (소요시간 : 8분)
[ ] 22번째 손님 (소요시간 : 17분)
[ ] 23번째 손님 (소요시간 : 48분)
[ ] 24번째 손님 (소요시간 : 31분)
[ ] 25번째 손님 (소요시간 : 28분)
[ ] 26번째 손님 (소요시간 : 45분)
[ ] 27번째 손님 (소요시간 : 24분)
[ ] 28번째 손님 (소요시간 : 33분)
[ ] 29번째 손님 (소요시간 : 26분)
[ ] 30번째 손님 (소요시간 : 21분)
[ ] 31번째 손님 (소요시간 : 17분)
[ ] 32번째 손님 (소요시간 : 22분)
[ ] 33번째 손님 (소요시간 : 27분)
[ ] 34번째 손님 (소요시간 : 47분)
[O] 35번째 손님 (소요시간 : 14분)
[ ] 36번째 손님 (소요시간 : 26분)
[ ] 37번째 손님 (소요시간 : 44분)
[ ] 38번째 손님 (소요시간 : 27분)
[O] 39번째 손님 (소요시간 : 6분)
[ ] 40번째 손님 (소요시간 : 42분)
[ ] 41번째 손님 (소요시간 : 32분)
[ ] 42번째 손님 (소요시간 : 39분)
[ ] 43번째 손님 (소요시간 : 26분)
[ ] 44번째 손님 (소요시간 : 47분)
[ ] 45번째 손님 (소요시간 : 16분)
[O] 46번째 손님 (소요시간 : 14분)
[ ] 47번째 손님 (소요시간 : 48분)
[ ] 48번째 손님 (소요시간 : 41분)
[ ] 49번째 손님 (소요시간 : 49분)
[O] 50번째 손님 (소요시간 : 15분)
 탑승객 : 9명


✔개인 과제 (오늘 오후 7시 발제)
🥕 플레이어와 몬스터를 생성하여 1대 1으로 싸우는 상황을 파이썬으로 구현하기

  • 요구사항
    • 이름을 입력해 플레이어를 생성할 수 있어야 합니다.
    • 몬스터는 임의 생성할 수 있어야 합니다.
    • while 반복문을 사용해 종료 조건을 충족할 때까지 턴제 플레이어와 몬스터간 전투를 반복 진행해야 합니다.
    • 플레이어는 공격 타입을 선택할 수 있어야 합니다. ex) 일반공격 , 마법공격
    • 몬스터는 일반 공격을 할 수 있어야 합니다.
    • 매 전투시 플레이어와 몬스터의 상태 정보를 출력해야 합니다.
    • 모든 공격은 캐릭터의 파워 기준으로 랜덤성을 가지고있어야 합니다. ex) 파워가 10인경우 일반공격은 8~12사이의 랜덤한 값으로 공격
    • 몬스터나 플레이어의 HP가 0이되면 전투를 종료하고 승리 또는 패배를 출력해야 합니다.
  • 기본 가이드
    1. 시작
      • 플레이어 생성 (Player)
        • 이름
        • HP
        • MP
        • 파워
        • 일반공격
        • 마법파워
        • 마법공격
      • 몬스터 생성 (Monster)
        • 이름
        • HP
        • 일반공격
    2. 전투
      • 몬스터와 턴제 전투 (While 반복문 사용)
        • 플레이어, 몬스터 상태 출력
        • 플레이어의 공격 방법 선택 (일반, 마법)
        • 플레이어 공격
        • 몬스터 공격
    3. 종료
      • 승리 or 패배
  • 가능한 기본 가이드를 지켜 과제를 진행해주세요

 



▶ Problem (문제점 발견 및 진행 상황 )
1. 공부 방향 및 계획
▶ Method (구체적인 해결 방안)
1. 진도 상황 및 이해도, 완성도를 매일매일 기록해서 
매주마다 비교 분석하고, 부족한 부분들 기록하고 
다음주에 채우는 체계를 갖추기
▶ Try (시도 및 시행착오, 결론)
1. 적용 해보았으나, 아직 완성도가 낮아 

공부에 집중하면서, 조금씩 손 볼 예정