본문 바로가기

공부/python

(python) 프로젝트: 가위 바위 보, 거북이 경주 게임

가위 바위 보

사용자가 가위, 바위, 보 중에서 하나를 선택하고

컴퓨터도 난수로 가위, 바위, 보 중에서 하나를 선택한다.

사용자의 선택과 컴퓨터의 선택을 비교하여서 승패를 화면에 출력한다.

게임을 계속 반복할 수 있도록 하고, 가위, 바위, 보 외의 다른 값을 입력하면 종료한다.

참고) rspList = ['가위', '바위', '보']

가위는 0, 바위는 1, 보에는 2를 대응시킨다.

(가위, 바위, 보)중에서 하나를 선택하세요(그외는 종료): 가위
player 가위
computer 보
플레이어 승리!
(가위, 바위, 보)중에서 하나를 선택하세요(그외는 종료):

 

 

 

추가 참고)

여기서 중요한 것은 난수와 가위바위보 리스트에 각 숫자를 대응 시키는 것이다.

대응시키는 것은 아래의 방법으로 가능하다.

리스트이름.index(대응할 변수 이름)

를 이용해서 playernum변수에 숫자를 대응 시켰다.

 

난수는 아래의 방법을 참고하자.

 

사용자가 입력한 문자열을 숫자로 바꾼 playerNum변수와

컴퓨터가 랜덤하게 선책한 숫자 comNum변수를 대응시킨다.

 

둘의 차이를 구하여,

차이값이 같으면, 어쩌고

차이값이 1이면, 저쩌고

차이값이 2이면, 솰라

의 규칙으로 승패를 가른다.

 

 

 

 

 

 

 

 

 

 

정답)

이렇게 작성하자, 조교님이 이렇게 작성해도 괜찮지만 abs의 위치를 바꿔서

소스 코드를 더 간단하게 만드는게 어떻냐는 제안에.

 

위와 같이 수정하였다.

 

checkNum변수에 일일히 abs() 함수를 붙여주는게 아니라.

위에서 checkNum변수를 생성했을 때 그 다음 줄에서 바로

checkNum변수의 값을 절댓값으로 바꾸어 checkNumabs로 넣어주는 형식으로 바꾸었다.

위는 수정전, 아래는 수정후 둘다 결과는 차이가 없다.

 

거북이 경주 게임

중간고사 끝나면 추가 예정.