Skip to content
Toggle navigation
P
Projects
G
Groups
S
Snippets
Help
Administrator
/
lesson5_6
This project
Loading...
Sign in
Toggle navigation
Go to a project
Project
Repository
Issues
0
Merge Requests
0
Pipelines
Wiki
Snippets
Members
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Commit
8712abff
authored
Apr 01, 2021
by
BellCodeEditor
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
save project
parent
287e68fb
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
107 additions
and
0 deletions
;lkj.py
;lkj.py
0 → 100644
View file @
8712abff
def
print_board
(
board
):
print
"The board look like this:
\n
"
for
i
in
range
(
3
):
print
" "
,
for
j
in
range
(
3
):
if
board
[
i
*
3
+
j
]
==
1
:
print
'X'
,
elif
board
[
i
*
3
+
j
]
==
0
:
print
'O'
,
elif
board
[
i
*
3
+
j
]
!=
-
1
:
print
board
[
i
*
3
+
j
]
-
1
,
else
:
print
' '
,
if
j
!=
2
:
print
" | "
,
print
if
i
!=
2
:
print
"-----------------"
else
:
print
def
print_instruction
():
print
"Please use the following cell numbers to make your move"
print_board
([
2
,
3
,
4
,
5
,
6
,
7
,
8
,
9
,
10
])
def
get_input
(
turn
):
valid
=
False
while
not
valid
:
try
:
user
=
raw_input
(
"Where would you like to place "
+
turn
+
" (1-9)? "
)
user
=
int
(
user
)
if
user
>=
1
and
user
<=
9
:
return
user
-
1
else
:
print
"That is not a valid move! Please try again.
\n
"
print_instruction
()
except
Exception
as
e
:
print
user
+
" is not a valid move! Please try again.
\n
"
def
check_win
(
board
):
win_cond
=
((
1
,
2
,
3
),(
4
,
5
,
6
),(
7
,
8
,
9
),(
1
,
4
,
7
),(
2
,
5
,
8
),(
3
,
6
,
9
),(
1
,
5
,
9
),(
3
,
5
,
7
))
for
each
in
win_cond
:
try
:
if
board
[
each
[
0
]
-
1
]
==
board
[
each
[
1
]
-
1
]
and
board
[
each
[
1
]
-
1
]
==
board
[
each
[
2
]
-
1
]:
return
board
[
each
[
0
]
-
1
]
except
:
pass
return
-
1
def
quit_game
(
board
,
msg
):
print_board
(
board
)
print
msg
quit
()
def
main
():
# setup game
# alternate turns
# check if win or end
# quit and show the board
print_instruction
()
board
=
[]
for
i
in
range
(
9
):
board
.
append
(
-
1
)
win
=
False
move
=
0
while
not
win
:
# print board
print_board
(
board
)
print
"Turn number "
+
str
(
move
+
1
)
if
move
%
2
==
0
:
turn
=
'X'
else
:
turn
=
'O'
# get user input
user
=
get_input
(
turn
)
while
board
[
user
]
!=
-
1
:
print
"Invalid move! Cell already taken. Please try again.
\n
"
user
=
get_input
(
turn
)
board
[
user
]
=
1
if
turn
==
'X'
else
0
# advance move and check for end game
move
+=
1
if
move
>
4
:
winner
=
check_win
(
board
)
if
winner
!=
-
1
:
out
=
"The winner is "
out
+=
"X"
if
winner
==
1
else
"O"
out
+=
" :)"
quit_game
(
board
,
out
)
elif
move
==
9
:
quit_game
(
board
,
"No winner :("
)
if
__name__
==
"__main__"
:
main
()
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment