노는게 제일 좋습니다.
숫자 맞추기 게임(import, if, while, random, 캐스팅,주석) 본문
원 코드 출처 Al Sweigart (http://inventwithpython.com/)
숫자를 맞추는 게임.
1. 컴퓨터에서 랜덤하게 1~20 사이의 숫자중 하나를 고른다. 이를 n이라 하자.
2. 사람이 6회동안 숫자를 찍어 맞춘다. 이를 a라 하자. 만약 6회가 넘어가면 게임오버.
3. 만약 n<a이면 a가 크다고 표시. n>a이면 a가 작다고 표시. a==b이면 게임승리.
코드를 보지 않고 캐스팅 방법과 random클래스, if와 while의 기술 방법만 참고하여 작성해보았다.
본인이 짠 코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30 |
import random
print('Hello! What is your name?')
myName = input()
print('Well, ' + myName +', I am thinking of a number between1 and 20.')
number = random.randint(1,20)
answer = 0;
cycle = 0
while number != int(answer):
print('Take a guess')
answer = input()
if int(answer)>number:
print('Your guess is too high')
elif int(answer)<number:
print('Your guess is too low')
elif int(answer)==number:
print('Good job ,'+myName+'! You Guessed my number in '+ str(cycle) +' guesses!')
break
cycle+=1
if cycle == 6:
print('You lose. The number is '+str(number))
break
|
cs |
책의 예제코드
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35 |
import random
guessesTaken = 0
print('Hello! What is your name?')
myName = input()
number = random.randint(1,20)
print('Well, '+myName + ', I am thinking of a number betwwen 1 and 20.')
while guessesTaken < 6:
print('Take a guess.')
guess = input()
guess = int(guess)
guessesTaken = guessesTaken + 1
if guess < number:
print('Your guess is too low.')
if guess > number:
print('Your guess is too high.')
if guess == number:
break
if guess == number:
guessesTaken = str(guessesTaken)
print('Good job, '+myName+'! You guessed my number in '+guessesTaken+' guesses!')
if guess != number:
number = str(number)
print('Nope. The number I was thinking of was '+number)
|
cs |
두 코드의 차이는, 부분에 따라 역할을 분리했느냐 함께 두었느냐이다.
나는 아예 while문 하나 안에서 반복을 돌다가 프로그램이 종료되도록 했으나
책에서는 while문에서 6회가 채워졌는지 본 다음 while문 종료 이후에 if문으로 정답과 오답을 판별한다.
책이 보기 쉬운 것 같다. 쉽게 볼 수 있도록 프로그래밍 하려고 노력해야겠다.
주석 : #뒤에 내용을 쓰면 주석처리된다.
모듈(module) : 관련 함수들을 가지고 있는 독립된 프로그램으로, 일부 함수들은 모듈안에 존재한다.
import : 모듈을 불러오는 구문이다.
randint() : 두 개의 정수 사이에서 하나의 무작위 정수를 반환하는 함수. 두 인자는 콤마(,)로 구분. random모듈에 있다.
인자의 전달 : 파이썬에서는 항상 추가로 보이지 않는 인자를 전달한다.
예를 들어, randint함수에 1개의 인자를 전달하면 3개를 취하는데 2개만 전달되었다는 에러가 뜬다.
'Python > 기타 공부' 카테고리의 다른 글
틱택토(삼목) (0) | 2016.02.03 |
---|---|
행맨(예제코드+수정)(in, 문자열/리스트 메소드, range(), 다중대입) (0) | 2016.01.30 |
행맨(내 코딩 - list, for) (0) | 2016.01.29 |
드래곤동굴 게임(함수,불리언,time모듈) (0) | 2016.01.27 |
표현식, IDLE (0) | 2016.01.27 |