Python : writing codes: A Tic Tac Game

in #esteem5 years ago

hi,so it happens that i studied physics back at the university many years ago,but i am beginning to fall in love with "python","HtML", "JAVA script",
"SQL" and finally "PYTHON".
**😁 😁
Please understand that i am new at this,and trust me i am learning very fast, i will share my codes here with my steemit friends and we can all learn together.

ml90t8.png
FROM COMMAND PROMPT
Today my code is written in python language,and ill try as much as possible to write them in a simple code format.The code is about a "GAME"
We all played when we were kids, called "tic tac game"below is the corresponding codes, feel free to ask questions.
from excercise8_functions import check_winning_combinations, render_play_pos

*#above implies that we shall be importing another file into the present file called excercise8

fpl = input("Pick a player, X or O? :-> ")

if fpl == 'x':
spl = 'o'

else:
spl = 'x'

current_player = fpl
print("First to play is ", current_player)

fpl_pos = [] # frist player play positions bank
spl_pos = [] # second player play positions bank

while True:

play = input("Pick a position between 1 - 9 :-> ")

if not play: # check for empty positions
    print("Please enter a correct value")
    continue 


if not play.isdigit():
    print("Please enter a correct value")
    continue


if int(play) > 9 or int(play) < 1:
    print("Invalid position specified.")
    continue


if play in fpl_pos or play in spl_pos:
    print("Position is already taken.")
    continue

if current_player == fpl: # to confirm if current player is the first player
    fpl_pos.append(play)
    if len(fpl_pos) >= 3:
        win_resp = check_winning_combinations(fpl_pos)
        if win_resp == True:
            print("Player", fpl, "wins the game...")
            break

    current_player = spl  # switch to the next player 

elif current_player == spl: # to confirm if current player is the second player
    spl_pos.append(play)
    if len(spl_pos) >= 3:
        win_resp = check_winning_combinations(spl_pos)
        if win_resp == True:
            print("Player", spl, "wins the game...")
            break


    current_player = fpl  # switch to the next player



if len(fpl_pos) + len(spl_pos) == 9 :
    print("game is a tie.")
    break

render_play_pos([fpl, fpl_pos], [spl, spl_pos])
print("next to play is", current_player)

print("Game over, good bye..")

#EXCERCISE8

def check_winning_combinations(selected):

# ['1', '5', '9', '4']
WIN_COMBINATIONS = [
   (1, 2, 3),
   (4, 5, 6),
   (7, 8, 9),
   (1, 4, 7),
   (2, 5, 8),
   (3, 6, 9),
   (1, 5, 9),
   (3, 5, 7),
]

counter = 0 
for wins in WIN_COMBINATIONS:

    for plays in selected:
        if int(plays) in wins:
            counter += 1 
            
        if counter == 3:
            break


    if counter == 3:
        break

    else:
        counter = 0

return counter == 3 

def box_point(value):
tmp = str(value)
return tmp.center(5)

def horizontal_line():
return "" * 5 + "+" + ""*5 + "+" + "_" * 5

def render_play_pos(fpos, spos):
# ['o', ["2", '9']]
# ['x', ['1', '8']]

row = ''
for x in range(1, 10):

    if str(x) in fpos[1]:
        row += box_point(fpos[0]) 

    elif str(x) in spos[1]:
        row += box_point(spos[0])
    else:
        row += box_point(x)


    if  x % 3  != 0:
        row += "|"

    else:
        row += '\n'
        if x == 9:
            row += box_point("") + "+" + box_point("") + "+"
        else:
            row += horizontal_line()

        row += "\n"



print(row)

    # + "|"

X | 8 | 7

_____+_____+______

9 | O | 7

_____+_____+______

9 | 8 | 7

+ +

if name == 'main':
render_play_pos([],[])

So did you find the code simple? learn to master string manipulation it makes it easy for you.
dont forget to drop your feedback.

Sort:  

Thanks for using eSteem!
Your post has been voted as a part of eSteem encouragement program. Keep up the good work!
Dear reader, Install Android, iOS Mobile app or Windows, Mac, Linux Surfer app, if you haven't already!
Learn more: https://esteem.app
Join our discord: https://discord.me/esteem


This post has been voted on by the SteemSTEM curation team and voting trail. It is elligible for support from @minnowbooster.

If you appreciate the work we are doing, then consider supporting our witness @stem.witness!

For additional information please join us on the SteemSTEM discord and to get to know the rest of the community!

Please consider using the steemstem.io app and/or including @steemstem in the list of beneficiaries of this post. This could yield a stronger support from SteemSTEM.