generated from mwc/lab_tic_tac_toe
wrote the function check_winner in game.py so that the game can check whether player X or player O scoring three-in-a-row in any possible arrangement is true (which would lead to that player winning)
This commit is contained in:
8
notes.md
8
notes.md
@@ -7,12 +7,20 @@ For each, explain how the behavior is accomplished.
|
|||||||
|
|
||||||
### Checking to see whether the game is over
|
### Checking to see whether the game is over
|
||||||
|
|
||||||
|
TTTGame has a method called is_over which checks if either the board is full, player x won, or player o won is true.
|
||||||
|
|
||||||
### Determining which actions are available at a particular state
|
### Determining which actions are available at a particular state
|
||||||
|
|
||||||
|
TTTGame has a method called get_actions which returns a list of numbers of the empty spaces that a player could choose in their next turn
|
||||||
|
|
||||||
### Showing the board
|
### Showing the board
|
||||||
|
|
||||||
|
TTTView has a method print_board which prints the board with its currently available spaces
|
||||||
|
|
||||||
### Choosing which action to play on a turn
|
### Choosing which action to play on a turn
|
||||||
|
|
||||||
|
TTTView has a method get_action which shows the board and asks the current player for which number box they want to choose (in which that player must type in the number of their choice)
|
||||||
|
|
||||||
|
|
||||||
## Checkpoint 2 Notes
|
## Checkpoint 2 Notes
|
||||||
|
|
||||||
|
|||||||
34
poetry.lock
generated
Normal file
34
poetry.lock
generated
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
# This file is automatically @generated by Poetry 2.3.1 and should not be changed by hand.
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "click"
|
||||||
|
version = "8.3.1"
|
||||||
|
description = "Composable command line interface toolkit"
|
||||||
|
optional = false
|
||||||
|
python-versions = ">=3.10"
|
||||||
|
groups = ["main"]
|
||||||
|
files = [
|
||||||
|
{file = "click-8.3.1-py3-none-any.whl", hash = "sha256:981153a64e25f12d547d3426c367a4857371575ee7ad18df2a6183ab0545b2a6"},
|
||||||
|
{file = "click-8.3.1.tar.gz", hash = "sha256:12ff4785d337a1bb490bb7e9c2b1ee5da3112e94a8622f26a6c77f5d2fc6842a"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[package.dependencies]
|
||||||
|
colorama = {version = "*", markers = "platform_system == \"Windows\""}
|
||||||
|
|
||||||
|
[[package]]
|
||||||
|
name = "colorama"
|
||||||
|
version = "0.4.6"
|
||||||
|
description = "Cross-platform colored terminal text."
|
||||||
|
optional = false
|
||||||
|
python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7"
|
||||||
|
groups = ["main"]
|
||||||
|
markers = "platform_system == \"Windows\""
|
||||||
|
files = [
|
||||||
|
{file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"},
|
||||||
|
{file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"},
|
||||||
|
]
|
||||||
|
|
||||||
|
[metadata]
|
||||||
|
lock-version = "2.1"
|
||||||
|
python-versions = ">=3.10,<4.0"
|
||||||
|
content-hash = "0272075b8c7e01c3558d126d3efff1c07b71bcde638baf2353e2f48fa2bf5db5"
|
||||||
@@ -58,4 +58,11 @@ class TTTGame:
|
|||||||
|
|
||||||
def check_winner(self, state, symbol):
|
def check_winner(self, state, symbol):
|
||||||
"Checks whether the player with `symbol` has won the game."
|
"Checks whether the player with `symbol` has won the game."
|
||||||
|
winning_combos = [(0, 1, 2), (3, 4, 5), (6, 7, 8), (0, 3, 6), (1, 4, 7), (2, 5, 8), (0, 4, 8), (2, 4, 6)]
|
||||||
|
for combo in winning_combos:
|
||||||
|
#The syntax for refering to an element in the boards state is state["board"][index#] - in our case, our index# is the first item in the combo we are looking at for this iteration.
|
||||||
|
if state["board"][combo[0]] == symbol:
|
||||||
|
#check if the elements in the position on the board for each position in this combination are all equal to eachother
|
||||||
|
if state["board"][combo[0]] == state["board"][combo[1]] and state["board"][combo[0]] == state["board"][combo[2]]:
|
||||||
|
return True
|
||||||
return False
|
return False
|
||||||
|
|||||||
Reference in New Issue
Block a user