Python tictactoe 만들기
빠르게 만들기
이번 mini_project는 간단한 tictactoe다
이전에 배운 git과 더불어 하나의 프로젝트 틱택토를 빠르게 완성해보자
import random
number_list = [i for i in range(0,9)]
var_list = [' ' for _ in range(9) ]
game_is_on = True
def show_board():
board= f"{var_list[0]} | {var_list[1]} | {var_list[2]}\n\
==========\n\
{var_list[3]} | {var_list[4]} | {var_list[5]}\n\
==========\n\
{var_list[6]} | {var_list[7]} | {var_list[8]}\n\n"
print(board)
answer_list = [[0,1,2],[3,4,5],[6,7,8],[0,3,6],[1,4,7],[2,5,8],[0,4,8],[2,4,6]]
def end_game():
global game_is_on
if len(number_list)==0:
print('Draw')
game_is_on = False
else:
for answer in answer_list:
amu_list =[]
for i in answer:
amu_list.append(var_list[i])
if amu_list.count('O') == 3:
print('player win')
game_is_on = False
return
elif amu_list.count('X') == 3:
print('Com win')
game_is_on = False
return
while game_is_on:
user_input = input("your row and columns: ")
row_num = int(user_input.split(' ')[0])
col_num = int(user_input.split(' ')[1])
order = (row_num-1)*3+col_num-1
if order in number_list:
number_list.remove(order)
var_list[order] = 'O'
order_com = random.choice(number_list)
var_list[order_com] = 'X'
number_list.remove(order_com)
show_board()
end_game()
else:
print('error try again')
정말 간단한 버전으로 tictactoe를 빠르게 만들었다.
여기서 test 해볼 수 있다.url_tictactoe input이 1 3 이면 첫번째 행 3번째 열에 동그라미를 쳐준다.
이 파일을 git add main.py 해서 git commit -m “초기버전” 또는 git commit -m “tictactoe-initial-commit” 등등 내가 원하는 대로 일단 commit 할 수 있다.
지금의 간단한 틱택토를 실제로 실행해보면 개선할 점이 많다는 것을 느낄 수 있다. 따라서 버전을 업그레이드 하면서 git에 차곡차곡 쌓아가보자
지금의 문제점은 다음과 같다
- 플레이어 턴을 정할 수 없다.
- 컴퓨터는 랜덤한 수를 둔다
- print로 진행된다.
- 유저의 입력이 불편하다
등등이 있다.
따라서 개선사항은
- GUI로 만들기(3,4번 개선)
- 로직개선(1,2번 개선)
의 순서로 버전을 업그레이드 하면서 git에 관리해보자.