새벽을 밝히는 붉은 달
1. 나의 첫번째 Python 과제 본문
board = [['■'] * 4 for i in range(4)]
board[0][0] = ' '
board[0][1] = '1 '
board[0][2] = '2 '
board[0][3] = '3 '
board[1][0] = '1 '
board[2][0] = '2 '
board[3][0] = '3 '
def board_output():
print('\n')
for x in range(4):
for y in range(4):
print(board[x][y], end='')
print('\n')
print('\n')
def draw_check():
cnt = 0
for i in range(4):
for j in range(4):
if board[i][j] == '■':
cnt = cnt + 1
if cnt == 0:
print("There's no place to input. So, the result is DRAW !")
exit(1)
def player1_input():
while 1:
num = input('Player1: It\'s your turn. Please input the position that you want. (*Input format: a,b) :')
str_len = len(num)
comma = 0
for t in range(str_len):
if num[t] == ',':
comma = comma + 1
if comma == 1:
a, b = num.split(',')
a = int(a)
b = int(b)
if (1 <= a <= 3) and (1 <= b <= 3):
if board[a][b] == '■':
board[a][b] = 'O '
break
else:
print("Oh, No! That position is already full. Please choose another position.")
else:
print("Hey, you entered the number out of range. Please input again.")
else:
print("It is an invalid format. Please input again.")
def player2_input():
while 1: # Player2 input
num = input('Player2: It\'s your turn. Please input the position that you want. (*Input format: a,b) :')
str_len = len(num)
comma = 0
for t in range(str_len):
if num[t] == ',':
comma = comma + 1
if comma == 1:
a, b = num.split(',')
a = int(a)
b = int(b)
if (1 <= a <= 3) and (1 <= b <= 3):
if board[a][b] == '■':
board[a][b] = 'X '
break
else:
print("Oh, No! That position is already full. Please choose another position.")
else:
print("Hey, you entered the number out of range. Please input again.")
else:
print("It is an invalid format. Please input again.")
def player1_ttt():
if (board[1][1] == board[1][2] == board[1][3] == 'O ' or
board[2][1] == board[2][2] == board[2][3] == 'O ' or
board[3][1] == board[3][2] == board[3][3] == 'O ' or
board[1][1] == board[2][1] == board[3][1] == 'O ' or
board[1][2] == board[2][2] == board[3][2] == 'O ' or
board[1][3] == board[2][3] == board[3][3] == 'O ' or
board[1][1] == board[2][2] == board[3][3] == 'O ' or
board[1][3] == board[2][2] == board[3][1] == 'O '):
print("Congratulation! The WINNER is Player 1: O")
exit(0)
def player2_ttt():
if (board[1][1] == board[1][2] == board[1][3] == 'X ' or
board[2][1] == board[2][2] == board[2][3] == 'X ' or
board[3][1] == board[3][2] == board[3][3] == 'X ' or
board[1][1] == board[2][1] == board[3][1] == 'X ' or
board[1][2] == board[2][2] == board[3][2] == 'X ' or
board[1][3] == board[2][3] == board[3][3] == 'X ' or
board[1][1] == board[2][2] == board[3][3] == 'X ' or
board[1][3] == board[2][2] == board[3][1] == 'X '):
print("Congratulation! The WINNER is Player 2: X")
exit(0)
print('Welcome! This is a program that you can play Tic-Tac-Toe.')
board_output()
while 1:
player1_input()
board_output()
player1_ttt()
draw_check()
player2_input()
board_output()
player2_ttt()
draw_check()
소스 먼저 올려놓고 시작하기!
이건 지금 듣고 있는 과목(창의소프트웨어입문) 과제이다.
이게 이 과목을 들으면서 딱 느낀게ㅋㅋㅋㅋ
회사 들어가면 책 하나 개발자에게 딱 던져주고
일주일만에 언어 배우라고 한다는 소리를 들은 적이 있었는데
이게 진짜구나 싶었다.
다른과 친구들 보면 이제 교필로 대화형 프로그래밍 이라고 해서
파이썬 열심히 듣던데 이걸 실습시간까지 끼워서 하던데
우리과는 그런거 없다.....(눈물)
그냥 교수님께서 온라인 사이트 딱 올려주시고 이거 강의 언제까지 들으세요
하신 다음에 과제를 떡 하니 내주시던ㅋㅋㅋㅋㅋ
처음에는 '우와 이거 벌써부터 이렇게 시키는거야...? 너무한데.....?????'
이런 생각이 들었는데, 시간이 조금 지나고 보니까
한학기에 비싼 돈 내고 다니는데 구글링하면 충분히 공부할 수 있는 언어 습득을
대학에서 배우는 것도 조금 웃긴 것 같더라.
아무튼 결론은 열심히 파이썬 기초를 습득했다는 소식!
방학 땐 좀 더 파고들어가야지. 자주 쓰이는 함수들이나 리스트, 채플 같은 자료구조들.
그래서! 과제가 뭐였냐 하면은
'틱택토 만들기'
이거 딱 듣자마자 생각이 났다.
어렸을 때 빌게이츠 위인전에서 읽었던 건데,
대학생 때 베이식으로 틱택토 게임을 구현했다는ㅋㅋㅋㅋ 그거!
우린 좀 간단한거지만....ㅎㅎ....
유저 2명이 번갈아가면서 입력하는 형식인데,
만약 컴퓨터랑 해야하는거면 좀 며칠동안 고생했을 듯
나는 1학기 때 생각하고,
(아련하게 스쳐지나가는 밤샘의 날들)
넉넉하게 한 여섯시간 걸리겠지!
이러고 부모님께서 고기먹으러가자고 하신 것도 거절하고 딱 노트북 앞에 앉았는데,
이게 왠걸. 두 시간도 안 걸림ㅋㅋㅋㅋㅋ
두 시간 걸린 것도 약간 에러가 떠서 안 됐다기보다는
나름의 디자인을 신경쓰느라 두 시간이 걸렸다.
막ㅋㅋㅋㅋ '아 틱택토 board를 좀 예쁘게 만들고 싶은데
뭘로 채워넣어야 하지!?!??' 이런 생각들ㅋㅋㅋ
아, 그리고 그것도 엄청 고민했다.
player한테 입력을 받으면, 커맨드창에서 출력되어있던 문장들을 싹 지우고
새로운 board 현황만 딱 출력하고 싶었는데
그게 잘 안되더라...(눈물)
아직도 잘 모르긴 하다. 인터넷으로 찾아봤을 때는
shell형에서는 할 수 있다고 했는데 이렇게 코드로 짤 때는 어떻게 하는건지 잘.....
아무튼! 이거 만들고 나서 동생이랑 막 틱택토하고 그랬음ㅋㅋㅋㅋ
물론 내가 이겼다^~^
'Develop > Python' 카테고리의 다른 글
[Colab] Google Colab에서 Selenium 사용하기 (0) | 2023.05.13 |
---|---|
[Python] 백준 1427번: list() 에 대해 공부 (0) | 2021.06.28 |