728x90

이 강의는 파이썬 강의 52강입니다.
이전 강의에서는 콘솔 게임의 기본 구조와 게임 루프를 배웠습니다.
이번 강의에서는 게임과 실전 프로그램에서 아주 자주 쓰이는
랜덤(random)과 확률 개념을 다룹니다.
이 강의부터
프로그램 결과가 매번 달라지기 시작합니다.
랜덤이 왜 필요한가
지금까지 만든 프로그램은
항상 같은 입력 → 같은 결과를 냈습니다.
하지만 게임과 현실 프로그램은 다릅니다.
- 적의 공격력
- 아이템 드롭
- 이벤트 발생
이런 요소는
예측할 수 없어야 재미와 현실감이 생깁니다.
그래서 랜덤이 필요합니다.
1️⃣ random 모듈 불러오기
랜덤 기능은
random 모듈에 들어 있습니다.
import random
이 한 줄이
랜덤의 시작입니다.
2️⃣ 랜덤 숫자 만들기 (randint)
가장 많이 쓰는 함수입니다.
import random
num = random.randint(1, 10)
print(num)
- 1 이상
- 10 이하
실행할 때마다
다른 숫자가 나옵니다.
3️⃣ 랜덤 선택하기 (choice)
리스트에서
무작위로 하나를 고를 수 있습니다.
items = ["칼", "방패", "물약"]
drop = random.choice(items)
print(drop)
게임 아이템 드롭에
자주 쓰입니다.
4️⃣ 확률의 기본 개념
확률은
어떤 일이 일어날 가능성입니다.
예를 들면:
num = random.randint(1, 100)
if num <= 30:
print("성공")
else:
print("실패")
성공 확률은
약 30%입니다.
약 30%입니다.
5️⃣ 확률은 조건문으로 만든다
파이썬에는
“확률 함수”가 따로 있는 게 아닙니다.
랜덤 숫자 + 조건문
이 조합이 전부입니다.
if random.randint(1, 10) == 1:
print("희귀 이벤트 발생!")
약 10% 확률입니다.
6️⃣ 게임에 랜덤 적용하기
간단한 전투 예제입니다.
import random
damage = random.randint(1, 5)
print("데미지:", damage)
매번 공격 결과가 달라집니다.
7️⃣ 랜덤을 쓸 때 주의할 점
랜덤은 강력하지만
남용하면 문제가 됩니다.
- 결과를 예측하기 어려움
- 테스트가 힘들어짐
그래서 랜덤은
상태 변경 지점에만 사용합니다.
8️⃣ 실습 예제
아래 조건의 프로그램을 만들어보세요.
- 플레이어 체력 10
- 매 턴마다
- 1~3 랜덤 데미지
- 체력이 0이 되면 종료
더보기
import random
hp = 10
while hp > 0:
damage = random.randint(1, 3)
hp -= damage
print("데미지:", damage, "| 남은 체력:", hp)
print("게임 오버")
이번 강의 핵심 정리
- 랜덤은 random 모듈로 사용한다
- randint, choice가 가장 많이 쓰인다
- 확률은 랜덤 + 조건문으로 만든다
- 랜덤은 프로그램에 변화와 재미를 준다
728x90
'⚙️ Python > 💻 Python 기초' 카테고리의 다른 글
| [Python] 54강 텍스트 게임 완성하기 (0) | 2026.01.17 |
|---|---|
| [Python] 53강 텍스트 게임 로직 설계하기 (0) | 2026.01.16 |
| [Python] 51강 콘솔 게임 구조 이해하기 (게임은 프로그램의 집합) (0) | 2026.01.15 |
| [Python] 50강 작은 프로그램을 끝까지 완성하는 방법 (0) | 2026.01.15 |
| [Python] 49강 코드가 길어질 때 정리하는 법 (유지보수 감각 만들기) (0) | 2026.01.14 |