Professional Documents
Culture Documents
CCE week6 이론
CCE week6 이론
창의적 컴퓨팅
HOSUNG JO
Hanyang University
CCE 사전 안내
중간고사 안내
• 일정, 방식, 주의사항
수업코드(학과) 중간고사 일정
10535 (전기공학전공) 10월25일(화) 12:00 ~ 13:00 (PC1, PC2, PC3)
10556 (바이오메디컬) 10월25일(화) 13:10 ~ 14:10 (PC3, PC4)
10892 (신소재공학부1) 10월25일(화) 16:00 ~ 17:00 (402)
13340 (신소재공학부2) 10월26일(수) 11:30 ~ 12:30 (402)
13341 (건축학부) 10월26일(수) 12:40 ~ 13:40 (402)
공학도를 위한 창의적컴퓨팅 2
CCE 오늘의 할일
Quick Review
• While, ASCIIART, TIME, WINSOUND module
가위바위보 게임 2
• 무한반복 , break
• 중첩 while
공학도를 위한 창의적컴퓨팅 3
CCE 두더지 찾기 게임 2
공학도를 위한 창의적컴퓨팅 4
CCE 조건반복문 - while
while
• 조건이 만족하는 동안
실행블록 반복 수행
공학도를 위한 창의적컴퓨팅 5
CCE 조건반복문 - while
시작
while
print (‘파이썬의 세계에 오신 것
• 조건이 만족하는 동안 실행문장을 반복한다. 을 환영합니다.’)
cnt = 0
NO
cnt < 5
공학도를 위한 창의적컴퓨팅 7
CCE 실습문제
공학도를 위한 창의적컴퓨팅 8
CCE 실습문제
공학도를 위한 창의적컴퓨팅 9
CCE 실습문제
P3. 합과 평균 구하기
• 사용자는 정수들의 합과 평균을 구하기 위해 정수들을 입력한다.
정수의 입력이 끝나면 ‘입력끝’이라는 문자열을 입력한다.
• 사용자가 ‘입력끝’이라는 문자열을 입력하면 지금까지 입력된 정수들의 합과
평균을 화면에 출력한다.
공학도를 위한 창의적컴퓨팅 10
CCE 실습문제
공학도를 위한 창의적컴퓨팅 11
CCE 실습문제
P5. x 초 알람 만들기
• 사용자로부터 x를 입력받으세요.
• 1부터 x까지 1초마다 출력하다가 x초가 되면
“x초가 경과하였습니다.” 라고 출력하세요.
• 이후 “삐” 소리를 0.25초간 10번 나도록
프로그램을 작성하세요.
공학도를 위한 창의적컴퓨팅 13
CCE 가위바위보 게임2
가위바위보 게임 2
• 게임 진행방식은 기존과 동일
컴퓨터와 사람이 대결
가위바위보 중에 하나를 무작위로 선택 혹은 입력받아 진행
가위바위보 판단 규칙에 의해 승패 결정
• 2승 선승제로 진행 반복 가능하게 변경
중첩 if문으로 진행된 가위바위보를 2승 선승제 진행 후 승패 판단
2승 선승제 후 사용자에게 반복 여부 확인 후 전체 종료 혹은 반복 실행
공학도를 위한 창의적컴퓨팅 14
CCE 가위바위보 2
순서도
시작
컴퓨터 / 사용자 선택
승자 판단
승자판단 출력
공학도를 위한 창의적컴퓨팅 15
CCE 가위바위보 2
순서도 시작
False
반복 < 3
시작 True
승자 판단 승자 판단
승자판단 출력 승자판단 출력
끝
3번 반복 후, 최종 승자 출력
공학도를 위한 창의적컴퓨팅 16
CCE 가위바위보 2 시작
가위바위보 게임 소개
순서도 시작 True
False
반복 < 3
False
True 반복 < 3
True
컴퓨터 / 사용자 선택
컴퓨터 / 사용자 선택
승자 판단
승패 판단
승자판단 출력
승자판단 출력
3번 반복 후, 최종 승자 출력 3번 반복 후, 최종 승자 출력
False
끝 그만할까요?
True
끝 공학도를 위한 창의적컴퓨팅 17
CCE 가위바위보 2 시작
가위바위보 게임 소개
순서도
True
False
반복횟수 < 3
True
컴퓨터 선택 설정
사용자 선택 입력
승자판단해서 해당 메시지 출력
3번 반복 후, 최종 승자 출력
False
그만할까요?
True
끝
공학도를 위한 창의적컴퓨팅 18
import random # 승부결과출력-------------------------------------------------------
CCE
print ('가위~', '바위~', '보~!!!!! ') if winner == '당신':
print (‘2판 선승제 가위바위보~!!!!! ') print ('당신 이김! 컴퓨터 짐! (You:', yourHand, ', Com:',
while True: comHand,')')
print ('삼세판 가자~') cnt_userWin = cnt_userWin + 1
cnt, cnt_userWin, cnt_comWin = 0, 0, 0 elif winner == '컴퓨터':
while cnt < 3 : print ('당신 짐! 컴퓨터 이김! (You:', yourHand, ', Com:',
print ('-'*50) comHand,')')
# 사용자값 및 컴퓨터값 결정 ------------------------------------ cnt_comWin = cnt_comWin + 1
yourHand = input('가위~ 바위~ 보 ! 중에 하나를 골라주세요~ ') else :
comRandom = random.randint(1,3) print ('무승부! (You:', yourHand, ', Com:', comHand,')')
if comRandom == 1: cnt = cnt + 1
comHand = '가위'
elif comRandom == 2: print ('-'*50)
comHand = '바위'
else: # 2판 선승제 승자 결정 ------------------------------------
comHand = '보' print ()
# 승부판단 ------------------------------------------------------- if cnt_userWin > cnt_comWin :
## 컴퓨터가 이기는 경우 print ('>>> 당신이 최종 승리! <<<')
if ((comHand == '가위' and yourHand =='보') elif cnt_comWin > cnt_userWin :
or (comHand == '바위' and yourHand =='가위') print ('>>> 컴퓨터가 최종 승리! <<<')
or (comHand == '보' and yourHand =='바위')): else :
winner = '컴퓨터' print ('>>> 무승부 <<<')
## 사용자가 이기는 경우 print ()
elif ((comHand == '가위' and yourHand =='바위')
or (comHand == '바위' and yourHand =='보') # 가위바위보 반복실행 여부 결정 ------------------------------------
or (comHand == '보' and yourHand =='가위')): if input('그만 하시겠습니까? (y/n) ') == 'y':
winner = '당신' break
## 비기는 경우
else:
winner = '비김' 공학도를 위한 창의적컴퓨팅 19
CCE While 응용
무한반복 + break
공학도를 위한 창의적컴퓨팅 20
CCE While 응용
중첩 while
공학도를 위한 창의적컴퓨팅 21
CCE While 응용
While + if
공학도를 위한 창의적컴퓨팅 22
CCE 연습문제
공학도를 위한 창의적컴퓨팅 23
CCE 연습문제
공학도를 위한 창의적컴퓨팅 24
import random # 승부결과출력-------------------------------------------------------
CCE
print ('가위~', '바위~', '보~!!!!! ') if winner == '당신':
print ('2판 선승제 가위바위보~!!!!! ') print ('당신 이김! 컴퓨터 짐! (You:', yourHand, ', Com:',
while True: comHand,')')
print ('삼세판 가자~') cnt_userWin = cnt_userWin + 1
cnt, cnt_userWin, cnt_comWin = 0, 0, 0 elif winner == '컴퓨터':
while cnt < 3 : print ('당신 짐! 컴퓨터 이김! (You:', yourHand, ', Com:',
print ('-'*50) comHand,')')
# 사용자값 및 컴퓨터값 결정 ------------------------------------ cnt_comWin = cnt_comWin + 1
yourHand = input('가위~ 바위~ 보 ! 중에 하나를 골라주세요~ ') else :
comRandom = random.randint(1,3) print ('무승부! (You:', yourHand, ', Com:', comHand,')')
if comRandom == 1: cnt = cnt + 1
comHand = '가위'
elif comRandom == 2: print ('-'*50)
comHand = '바위'
else: # 2판 선승제 승자 결정 ------------------------------------
comHand = '보' print ()
# 승부판단 ------------------------------------------------------- if cnt_userWin > cnt_comWin :
## 컴퓨터가 이기는 경우 print ('>>> 당신이 최종 승리! <<<')
if ((comHand == '가위' and yourHand =='보') elif cnt_comWin > cnt_userWin :
or (comHand == '바위' and yourHand =='가위') print ('>>> 컴퓨터가 최종 승리! <<<')
or (comHand == '보' and yourHand =='바위')): else :
winner = '컴퓨터' print ('>>> 무승부 <<<')
## 사용자가 이기는 경우 print ()
elif ((comHand == '가위' and yourHand =='바위')
or (comHand == '바위' and yourHand =='보') # 가위바위보 반복실행 여부 결정 ------------------------------------
or (comHand == '보' and yourHand =='가위')): if input('그만 하시겠습니까? (y/n) ') == 'y':
winner = '당신' break
## 비기는 경우
else:
winner = '비김' 공학도를 위한 창의적컴퓨팅 25
CCE 오늘의 할일
Quick Review
• While, ASCIIART, TIME, WINSOUND module
가위바위보 게임 2
• 무한반복 , break
• 중첩 while
공학도를 위한 창의적컴퓨팅 26