빙고 게임 파이썬으로 만들기
빙고 게임 만들기 조건
- 함수를 실행하면 자동으로 1부터 25까지 5x5 격자 형태의 빙고판을 생성한다.
- 호출자는 1부터 25까지의 숫자를 랜덤하게 숫자를 입력할 수 있다.
- 호출 된 숫자는 이 후 0으로 간주되며, 이미 한 번 호출한 숫자라면 "이미 부른 숫자"라는 오류가 호출된다.
- 가로, 세로, 대각선 방향으로 5개의 숫자를 연속해서 체크하고 3줄이면 '빙고'로 게임이 종료된다.
빙고 파이썬 함수 작성 코드
1. 빙고판을 생성하고, 빙고의 조건 함수를 만들기
# 빙고판 자동 생성
def gen_bingo():
numbers = list(range(1,26))
import random as rnd
rows = []
for _ in range(5):
row = []
for _ in range(5):
index = rnd.randint(0,len(numbers)-1)
number = numbers.pop(index)
row.append(number)
rows.append(row)
return rows
def set_0(game, search_num):
for row in game:
if search_num in row:
index = row.index(search_num)
row[index] = 0
break
else:
print("이미 한번 찾은 숫자입니다.")
# 빙고 조건 만들기
def get_bingocount(game):
bingo_count = 0
# 한줄이 빙고인지?
for row in game:
if row.count(0) == 5:
print("1 row bingo")
bingo_count += 1
# 한 컬럼이 빙고인지?
for column in range(5):
row_count = 0
for row in game:
if row[column] == 0:
row_count+=1
if row_count == 5:
print("1 column bingo")
bingo_count += 1
count = 0
for index in range(5):
if game[index][index] == 0:
count += 1
if count == 5:
print("대각선 bingo")
bingo_count += 1
count = 0
for index in range(5):
if game[index][4-index] == 0:
count += 1
if count == 5:
print("대각선 bingo")
bingo_count += 1
print("총 빙고 갯수", bingo_count)
return bingo_count
gen_bingo()
2. 맞출 숫자 입력칸을 만들어주고 빙고 확인 조건 만들기
game = gen_bingo() # 원본 게임판 준비
while True:
# 맞출 숫자 하나 입력하기
number = input("숫자 : ")
number = int(number)
# 그 숫자가 있다면 0으로 체크
set_0(game, number)
# 빙고가 됐는지 확인
game_count = get_bingocount(game)
print(game) # 원본 게임판 재 출력
if game_count == 3:
print("Bingo!!!!")
break
생각보다 쉽지 않아서 한줄한줄 만들기 어려웠다. 그래도 파이썬 코드 짤 때 도움이 많이 되니 한줄한줄 익혀보자
'데이터분석 > Python' 카테고리의 다른 글
[Python] Python 데이터프레임 Mysql로 데이터 내보내기 (0) | 2024.07.12 |
---|---|
[Python] 데이터프레임 데이터 Parquet(파케이)로 파일 저장하고 읽기 (0) | 2024.07.09 |
[Python] GA4 파이썬 연동한 데이터 데이터프레임(Dataframe)으로 변환하기 (0) | 2024.07.05 |
[Python] Python에 GA4(Google Analytics4) 연동하고 조회하기 (0) | 2024.07.05 |
[Python] Python에 Bigquery 연동하고 조회하기 (0) | 2024.07.05 |