야구게임 - 파이썬

2022. 3. 4. 17:37· Language/Python
목차
  1. 조건

조건

  1. 컴퓨터가 랜덤의 3자리 숫자를 생성함.
  2. 사용자는 세 자리 수를 입력하면 스트라이크, 볼 개수를 알려줌
  3. 스트라이크는 숫자와 자리 수 일치, 볼은 숫자만 일치
  4. 3 스트라이크시 게임종료

// 입력할 때 중복 숫자 입력시 예외처리 고려 안함. 스트라이크 볼 판별 조건식을 더욱 간결하게 짤 수 있을 것 같음.

 

import random
def comNumFunc():
  comNum = []
  randomNum = random.randint(1,9)
  for i in range(3):
    while randomNum in comNum:
      randomNum = random.randint(1,9)
    comNum.append(randomNum)
  print(comNum)
  return comNum

def userNumFunc():
  inputNum = int(input("숫자를 입력해주세요 ex)123 : "))
  userNum = list(map(int, str(inputNum)))
  return userNum

def isStrike(cNum,uNum):
  strikeCounter = 0
  for i in range(3):
    if(cNum[i] == uNum[i]):
      strikeCounter+=1
  return strikeCounter

def isBall(cNum,uNum):
  ballCounter = 0
  for i in range(3):
    if uNum[i] in cNum and cNum[i] != uNum[i]:
      ballCounter+=1
  return ballCounter

def decide(strikeNumber,ballNumber):
  if(strikeNumber >=1 and ballNumber ==0):
    print(strikeNumber,"스트라이크")
  elif(strikeNumber ==0 and ballNumber >= 1):
    print(ballNumber,"볼")
  elif(strikeNumber >= 1 and ballNumber >= 1):
    print(strikeNumber,"스트라이크",ballNumber,"볼")
  elif(strikeNumber == 0  and ballNumber == 0 ):
    print("낫싱")
      
if __name__ == "__main__":
  comNum = comNumFunc()
  while True:
    userNum = userNumFunc()
    strikeNumber = isStrike(comNum,userNum)
    ballNumber = isBall(comNum,userNum)
    decide(strikeNumber,ballNumber)
    if strikeNumber == 3:
      break
  print("게임을 종료합니다.")

'Language > Python' 카테고리의 다른 글

[Python] Ch7 - part2. 인스턴스, 메서드  (0) 2021.07.01
[Python] Ch7 - part1. 클래스  (0) 2021.07.01
[Python] Ch6 - part 3. 라이브러리  (0) 2021.06.29
[Python] Ch6 - part 2. 패키지  (0) 2021.04.24
[Python] Ch6 - part1. 모듈  (0) 2021.04.24
  1. 조건
'Language/Python' 카테고리의 다른 글
  • [Python] Ch7 - part2. 인스턴스, 메서드
  • [Python] Ch7 - part1. 클래스
  • [Python] Ch6 - part 3. 라이브러리
  • [Python] Ch6 - part 2. 패키지
White Han
White Han
Software Developer
White Han
sudo apt-get happiness
White Han
전체
오늘
어제
  • 분류 전체보기 (183)
    • Language (35)
      • Java (17)
      • Java-Weekly-study (0)
      • Python (18)
    • BackEnd (11)
      • Server (2)
      • Spring (3)
      • Spring Security (0)
      • JDBC (1)
      • NodeJS (2)
      • LINUX (3)
    • DataBase (10)
      • MySQL (5)
      • MongoDB (4)
      • Oracle (1)
    • Infra (4)
      • Docker (4)
    • CS (38)
      • OS (38)
    • Problem Solving (79)
      • Algorithm (8)
      • CT-Java (30)
      • CT-Python (41)
    • IDE (1)
      • eclipse (1)
      • vscode (0)
    • Etc. (3)
      • Git (1)
      • TDD, Refactor, CleanCode (1)
      • Conference (1)
    • 기록 (2)
      • 후기 (1)
      • 프로젝트 회고록 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기

공지사항

  • 방문해 주셔서 감사합니다.

인기 글

태그

  • 싸피
  • javascript identifier
  • 자바 super
  • Java this
  • 알파스캔 AOC 24B1X
  • 자바스크립트 개념
  • AOC 24B1X
  • 알파스캔 모니터
  • 운영체제 구조
  • 사무용 모니터
  • 자바스크립스 식별자 종류
  • 싸피 합격
  • 프로세서
  • 프로세스
  • OS
  • 자바 inheritance
  • 사무용 모니터 추천
  • Java super
  • 자바스크립트 식별자
  • java
  • javascript
  • 싸피8기
  • Java Inheritance
  • SSAFY
  • 24인치 모니터 추천
  • 자바 this
  • 자바스크립트
  • 싸피 후기
  • 운영체제
  • 운영체제 역할

최근 댓글

최근 글

hELLO · Designed By 정상우.v4.2.1
White Han
야구게임 - 파이썬
상단으로

티스토리툴바

단축키

내 블로그

내 블로그 - 관리자 홈 전환
Q
Q
새 글 쓰기
W
W

블로그 게시글

글 수정 (권한 있는 경우)
E
E
댓글 영역으로 이동
C
C

모든 영역

이 페이지의 URL 복사
S
S
맨 위로 이동
T
T
티스토리 홈 이동
H
H
단축키 안내
Shift + /
⇧ + /

* 단축키는 한글/영문 대소문자로 이용 가능하며, 티스토리 기본 도메인에서만 동작합니다.