Це відео не доступне.
Перепрошуємо.

Let's code a TIC TAC TOE game in python! ⭕

Поділитися
Вставка
  • Опубліковано 31 лип 2024
  • python tic tac toe game tutorial example explained
    #python #tictactoe #game
    ********************************************************
    Python Tic Tac Toe game
    ********************************************************
    from tkinter import *
    import random
    def next_turn(row, column):
    global player
    if buttons[row][column]['text'] == "" and check_winner() is False:
    if player == players[0]:
    buttons[row][column]['text'] = player
    if check_winner() is False:
    player = players[1]
    label.config(text=(players[1]+" turn"))
    elif check_winner() is True:
    label.config(text=(players[0]+" wins"))
    elif check_winner() == "Tie":
    label.config(text="Tie!")
    else:
    buttons[row][column]['text'] = player
    if check_winner() is False:
    player = players[0]
    label.config(text=(players[0]+" turn"))
    elif check_winner() is True:
    label.config(text=(players[1]+" wins"))
    elif check_winner() == "Tie":
    label.config(text="Tie!")
    def check_winner():
    for row in range(3):
    if buttons[row][0]['text'] == buttons[row][1]['text'] == buttons[row][2]['text'] != "":
    buttons[row][0].config(bg="green")
    buttons[row][1].config(bg="green")
    buttons[row][2].config(bg="green")
    return True
    for column in range(3):
    if buttons[0][column]['text'] == buttons[1][column]['text'] == buttons[2][column]['text'] != "":
    buttons[0][column].config(bg="green")
    buttons[1][column].config(bg="green")
    buttons[2][column].config(bg="green")
    return True
    if buttons[0][0]['text'] == buttons[1][1]['text'] == buttons[2][2]['text'] != "":
    buttons[0][0].config(bg="green")
    buttons[1][1].config(bg="green")
    buttons[2][2].config(bg="green")
    return True
    elif buttons[0][2]['text'] == buttons[1][1]['text'] == buttons[2][0]['text'] != "":
    buttons[0][2].config(bg="green")
    buttons[1][1].config(bg="green")
    buttons[2][0].config(bg="green")
    return True
    elif empty_spaces() is False:
    for row in range(3):
    for column in range(3):
    buttons[row][column].config(bg="yellow")
    return "Tie"
    else:
    return False
    def empty_spaces():
    spaces = 9
    for row in range(3):
    for column in range(3):
    if buttons[row][column]['text'] != "":
    spaces -= 1
    if spaces == 0:
    return False
    else:
    return True
    def new_game():
    global player
    player = random.choice(players)
    label.config(text=player+" turn")
    for row in range(3):
    for column in range(3):
    buttons[row][column].config(text="",bg="#F0F0F0")
    window = Tk()
    window.title("Tic-Tac-Toe")
    players = ["x","o"]
    player = random.choice(players)
    buttons = [[0,0,0],
    [0,0,0],
    [0,0,0]]
    label = Label(text=player + " turn", font=('consolas',40))
    label.pack(side="top")
    reset_button = Button(text="restart", font=('consolas',20), command=new_game)
    reset_button.pack(side="top")
    frame = Frame(window)
    frame.pack()
    for row in range(3):
    for column in range(3):
    buttons[row][column] = Button(frame, text="",font=('consolas',40), width=5, height=2,
    command= lambda row=row, column=column: next_turn(row,column))
    buttons[row][column].grid(row=row,column=column)
    window.mainloop()
    ********************************************************
    Bro Code merch store 👟 :
    ===========================================================
    teespring.com/stores/bro-code-5
    ===========================================================
    music credits 🎼 :
    ===========================================================
    Up In My Jam (All Of A Sudden) by - Kubbi / kubbi
    Creative Commons - Attribution-ShareAlike 3.0 Unported- CC BY-SA 3.0
    Free Download / Stream: bit.ly/2JnDfCE
    Music promoted by Audio Library • Up In My Jam (All Of A...
    ===========================================================

КОМЕНТАРІ • 169

  • @BroCodez
    @BroCodez  3 роки тому +83

    # ********************************************************
    # Python Tic Tac Toe game
    # ********************************************************
    from tkinter import *
    import random
    def next_turn(row, column):
    global player
    if buttons[row][column]['text'] == "" and check_winner() is False:
    if player == players[0]:
    buttons[row][column]['text'] = player
    if check_winner() is False:
    player = players[1]
    label.config(text=(players[1]+" turn"))
    elif check_winner() is True:
    label.config(text=(players[0]+" wins"))
    elif check_winner() == "Tie":
    label.config(text="Tie!")
    else:
    buttons[row][column]['text'] = player
    if check_winner() is False:
    player = players[0]
    label.config(text=(players[0]+" turn"))
    elif check_winner() is True:
    label.config(text=(players[1]+" wins"))
    elif check_winner() == "Tie":
    label.config(text="Tie!")
    def check_winner():
    for row in range(3):
    if buttons[row][0]['text'] == buttons[row][1]['text'] == buttons[row][2]['text'] != "":
    buttons[row][0].config(bg="green")
    buttons[row][1].config(bg="green")
    buttons[row][2].config(bg="green")
    return True
    for column in range(3):
    if buttons[0][column]['text'] == buttons[1][column]['text'] == buttons[2][column]['text'] != "":
    buttons[0][column].config(bg="green")
    buttons[1][column].config(bg="green")
    buttons[2][column].config(bg="green")
    return True
    if buttons[0][0]['text'] == buttons[1][1]['text'] == buttons[2][2]['text'] != "":
    buttons[0][0].config(bg="green")
    buttons[1][1].config(bg="green")
    buttons[2][2].config(bg="green")
    return True
    elif buttons[0][2]['text'] == buttons[1][1]['text'] == buttons[2][0]['text'] != "":
    buttons[0][2].config(bg="green")
    buttons[1][1].config(bg="green")
    buttons[2][0].config(bg="green")
    return True
    elif empty_spaces() is False:
    for row in range(3):
    for column in range(3):
    buttons[row][column].config(bg="yellow")
    return "Tie"
    else:
    return False
    def empty_spaces():
    spaces = 9
    for row in range(3):
    for column in range(3):
    if buttons[row][column]['text'] != "":
    spaces -= 1
    if spaces == 0:
    return False
    else:
    return True
    def new_game():
    global player
    player = random.choice(players)
    label.config(text=player+" turn")
    for row in range(3):
    for column in range(3):
    buttons[row][column].config(text="",bg="#F0F0F0")
    window = Tk()
    window.title("Tic-Tac-Toe")
    players = ["x","o"]
    player = random.choice(players)
    buttons = [[0,0,0],
    [0,0,0],
    [0,0,0]]
    label = Label(text=player + " turn", font=('consolas',40))
    label.pack(side="top")
    reset_button = Button(text="restart", font=('consolas',20), command=new_game)
    reset_button.pack(side="top")
    frame = Frame(window)
    frame.pack()
    for row in range(3):
    for column in range(3):
    buttons[row][column] = Button(frame, text="",font=('consolas',40), width=5, height=2,
    command= lambda row=row, column=column: next_turn(row,column))
    buttons[row][column].grid(row=row,column=column)
    window.mainloop()
    # ********************************************************

    • @Alex-ur3vt
      @Alex-ur3vt 3 роки тому +1

      epic video bro

    • @hackerstech4025
      @hackerstech4025 3 роки тому

      Love you

    • @justairman
      @justairman 2 роки тому

      @Bro code how do we save the data of the wins

    • @rockyelk169
      @rockyelk169 Рік тому

      @@justairman hey man not sure if you are still in need of this but you can use the command "global"

    • @S_M_HABIBUR_RAHMAN
      @S_M_HABIBUR_RAHMAN Рік тому

      Op video bro code

  • @saifsyed590
    @saifsyed590 2 роки тому +9

    Outstanding explanation given by you bro, easy to understand. And have successfully made this TicTacToe game. Thanks to you again... (HOPE TO SEE MORE AMAZING VIDEOS FROM YOU)

  • @adaboykrisiboy36
    @adaboykrisiboy36 Рік тому +34

    Bro you just explained tic tac toe in 21 min to a complete beginner. Hats off! mate

    • @user-eq1bl3lt3r
      @user-eq1bl3lt3r 10 місяців тому +2

      dude you have the same profile pic like me

  • @rafailivanov814
    @rafailivanov814 2 роки тому +10

    Very entertaining and also quite understandable. Quality content! Keep it up!

  • @celestinkembe3331
    @celestinkembe3331 2 роки тому +3

    I really like the way you explained : Simple, clean and beautiful.

  • @monwil3296
    @monwil3296 3 роки тому +10

    Hyo Bro ❤️💯. We do appreciate your hard work. Young programmers are building their mental Database thanks to you 👏👏👏👏

  • @navyadesai67
    @navyadesai67 10 місяців тому +1

    Wow! You actually encouraged me to do python even when I was not that into it❤ Also got a lot of videos left to go!

  • @kevinka9670
    @kevinka9670 3 роки тому +4

    nice work. Truly inspirational, keep up the good work

  • @jainendrarout8167
    @jainendrarout8167 2 роки тому +2

    Bro Code thanks You are a great man I know I am late but you just made my carrier! I am really happy to get this course for free and not paying that stupid 199$ for python course now I can really apply for jobs but of-course after some practice

  • @nickarkhipov3684
    @nickarkhipov3684 Рік тому +1

    Thank you so much Bro Code! I learned so much new information from this tutorial!

  • @tubacego6893
    @tubacego6893 4 місяці тому +1

    I love this channel it helps me so much learning python and other stuff

  • @amenkalai8442
    @amenkalai8442 11 місяців тому

    wow very interesting and educative thank you

  • @eduardodelgado3973
    @eduardodelgado3973 2 роки тому +1

    Excelent explanation, thank you.

  • @davidbandini3484
    @davidbandini3484 Рік тому +1

    Thank you so much for the video

  • @bishnudeyvivekanonda7028
    @bishnudeyvivekanonda7028 Рік тому

    Rad vid bro! Keep up the cool work. :)

  • @yos5770
    @yos5770 Рік тому

    you re very good teacher thanks a lot 👏👏😘

  • @user-ql5be3pz3f
    @user-ql5be3pz3f 3 роки тому +2

    you are best!!!

  • @vtWub
    @vtWub Рік тому +2

    Great video, very easy to go with and I understood most of what went over, and just searched whatever I didn't know. But 1 question, I am currently using pycharm on my macbook and everything works except the part where it could show the winner, meaning the background does not change to green, or yellow when a tie. Is there a reason to why this is happening, and if there is a work around to this?

  • @Nothing..
    @Nothing.. 2 роки тому

    Thank you bro about this good video
    (:

  • @TestDetails
    @TestDetails 9 місяців тому

    Bro, you're a such great and benevolent programmer!!! God good you are!!!

  • @hbngamer5776
    @hbngamer5776 Місяць тому

    Good video taught me alot!

  • @d.ashley879
    @d.ashley879 2 роки тому

    Fantastic video!

  • @sirikondavenkat5541
    @sirikondavenkat5541 3 роки тому +2

    This is Awsome!

  • @user-gd4ip1bn2y
    @user-gd4ip1bn2y 6 місяців тому

    Thank You! Explained well

  • @K-tf5ph
    @K-tf5ph Рік тому

    Thanks my dear Bro 💯👑 Could you also do the minesweeper?

  • @imadiman528
    @imadiman528 11 місяців тому

    Thanks a bunch you're great 👏

  • @Hema_99
    @Hema_99 Рік тому +1

    Hi, thanks for the video, it really helped so thank you so much for that and also I have a doubt, what platform should I use if I want to convert this script into a mobile application.

  • @t34bravo
    @t34bravo 4 місяці тому

    This is an awesome tutorial. Thanks!

  • @panoskoutsogiannis799
    @panoskoutsogiannis799 11 місяців тому

    very nice video!!

  • @luxury8884
    @luxury8884 11 місяців тому

    thx for the game Bro Code always the best ;)

  • @AaronProgZ
    @AaronProgZ 9 місяців тому

    Thanks for making this video!

  • @MFaiqVaince
    @MFaiqVaince 2 місяці тому +1

    great video

  • @Shadoww0
    @Shadoww0 Рік тому

    thank you for the vid

  • @saifulislamishad1222
    @saifulislamishad1222 2 роки тому +1

    Big fan 🖤

  • @hassanfiras3225
    @hassanfiras3225 9 місяців тому

    a real great tutorial ty bro

  • @davidcalebpaterson7101
    @davidcalebpaterson7101 2 роки тому +4

    only missing the computer player AI trying to win against us. or alternatively adding 2 different controller inputs like mouse and keyboard for each player. example one key to chose which button position and Enter to push it, the the mouse thing will remain the same. I will try to implement this myself.

  • @masoodrezaei5999
    @masoodrezaei5999 Місяць тому

    My first Python project , Thanks a lot.

  • @Philocalyleena
    @Philocalyleena Рік тому

    Thank you so much sir.

  • @kanime9535
    @kanime9535 Рік тому

    Thank you for the video bro!

  • @imslim85
    @imslim85 11 місяців тому

    Thank you very much !

  • @jaimeescoto2009
    @jaimeescoto2009 Рік тому

    bro very excellent video, but just one question if I wanted to play against the machine, what function can I use

  • @shahzodsayfiddinov9510
    @shahzodsayfiddinov9510 3 роки тому +2

    Thank you Bro!

  • @GarnetTheif
    @GarnetTheif Рік тому

    awesome he's a great teacher

  • @sjthedarkcreation9744
    @sjthedarkcreation9744 2 роки тому

    Thanks sir

  • @eddyedutz
    @eddyedutz 2 роки тому +1

    I see some guys around trying to implement AIs already and here I come with the question to pass the exam lol:
    How can I add a score to this? I've managed to add a label for the score and I assume I need some variables where we would need to add the wins.
    Can someone drop a comment if you figured it out?

  • @amadeo5813
    @amadeo5813 10 місяців тому +1

    Hello, What can I do to make the squares stay painted when I hover the mouse over them?

  • @ee-vi9xs
    @ee-vi9xs 2 роки тому

    nice and gg

  • @user-mq6ju8hl1r
    @user-mq6ju8hl1r 9 місяців тому

    this helped me thank you :)

  • @ipsxofficial
    @ipsxofficial 2 місяці тому

    Cool

  • @obiarne
    @obiarne 6 місяців тому

    Very nice tutorial, but is there a way to add CSS to this project? I'm more familiar with that language for styling of the buttons, background color etc. compared to (bg = "orange")

  • @mirshodoripov1035
    @mirshodoripov1035 Рік тому

    Thank you bro

  • @cherishkansara7851
    @cherishkansara7851 10 місяців тому +1

    I am a fellow bro from now on ❤

  • @Ehsan.Amirii
    @Ehsan.Amirii 2 роки тому

    great

  • @ccelsiuss482
    @ccelsiuss482 Рік тому

    underrated af

  • @aijounohankyou
    @aijounohankyou Рік тому

    thank you very much

  • @THEMINECRAFTWARDEN4279
    @THEMINECRAFTWARDEN4279 Рік тому

    Woah! That’s good video😂😂😂

  • @hackerstech4025
    @hackerstech4025 3 роки тому +2

    😍 you

  • @rawenrebaz7057
    @rawenrebaz7057 Рік тому

    thank you bro

  • @tips9296
    @tips9296 2 роки тому

    nice

  • @ianbarddal7294
    @ianbarddal7294 Місяць тому

    You're a true CHAD!

  • @souravsarkar6107
    @souravsarkar6107 2 роки тому

    learn new thing thank you

  • @mythyfox
    @mythyfox 5 місяців тому

    THX SO MUCH

  • @akshayak5466
    @akshayak5466 9 місяців тому

    bro you are genius

  • @albatrozeditz
    @albatrozeditz Рік тому

    thank you

  • @eyobyishak5233
    @eyobyishak5233 7 місяців тому

    thank you it work correctly

  • @Friday_42
    @Friday_42 Рік тому +1

    I couldn't get this to work. Very curious, I wonder what went wrong?

  • @erinasyasya947
    @erinasyasya947 Рік тому

    could you please show how to the scoring? i’ve tried since two days ago and still wrong.

  • @isagovfx
    @isagovfx 2 роки тому +2

    im on mac using sublime but i cant seem to figure out why the bg colors arent appearing for me. i get no errors however i get no colors froms the inning or ties

    • @yatinkundra
      @yatinkundra 5 місяців тому

      from tkmacosx import Button as BT
      use this and then replace Button with BT

  • @basic-info-
    @basic-info- 11 місяців тому

    thx man true gigachad

  • @muhammadkarangwa
    @muhammadkarangwa 2 дні тому

    learning new staff every day from bro code

  • @rajeevkumarjha8748
    @rajeevkumarjha8748 Місяць тому

    genius

  • @samadshead6069
    @samadshead6069 Рік тому +1

    hi ive copied the code from the comments but the buttons don't change colour when I run it. its worth noting I'm using a Mac. anyone know why this is?

  • @murilosilvestre7736
    @murilosilvestre7736 3 роки тому +2

    great job, bro, thank you!

  • @oceangamer7875
    @oceangamer7875 3 місяці тому +1

    winner winner chicken dinner

  • @beldindragon
    @beldindragon Рік тому

    Didn't understand what the lambda command did, can you explain it quickly?

  • @skittle6135
    @skittle6135 2 роки тому

    Guys I really need help, when I get three in a row vertically it doesn’t say I won????

  • @DisturbeD802
    @DisturbeD802 2 роки тому +1

    If it took you 100 lines of code , i will do it in 300 lines and still have bugs in it and finish it in a month

  • @rowlet8385
    @rowlet8385 Місяць тому

    my brain... ahhhh

  • @arshiaa104
    @arshiaa104 Рік тому

    good old days when bro was 21 years old

  • @logeshwaran3016
    @logeshwaran3016 3 роки тому +2

    Hello bro

  • @edwardplayzzz2675
    @edwardplayzzz2675 3 місяці тому

    is it different for mac? colours are not changing after win

  • @oMqngo
    @oMqngo 2 роки тому

    What if i want it to be solo and multiplayer (so you can press a button to choose if you want to play against someone or against the comuter) how would you do that?

    • @vythir4245
      @vythir4245 2 роки тому

      You would need an AI for that, which would be even harder to code than the game itself...

  • @user-hn4ye7dn1r
    @user-hn4ye7dn1r Рік тому

    I like this video, a very good tutorial, thanks.😄
    why in this line "reset_button = Button(text="restart",font=('Aharoni',20),command=new_game)" you didn't put () after new_game?

    • @Karim-zu7zg
      @Karim-zu7zg Рік тому

      You dont need too

    • @MishaZib86
      @MishaZib86 Рік тому

      I used () as in video, and function "new game" didn't work.... but when removed it, all is perfect!

  • @jorgesingle
    @jorgesingle 5 місяців тому

    Great video! but I have a question, I don't know why when is time for "o" to play and I select a button to put it and is not working only with "x". Does anyone know why?

  • @Amir_Plays_non_stop
    @Amir_Plays_non_stop 3 роки тому +2

    1 more video to finish

  • @sidtheepic1103
    @sidtheepic1103 3 місяці тому

    Can someone explain the for loops in this. I understood everything except the for loops😅😅

  • @WooGad0Xo
    @WooGad0Xo 2 роки тому +1

    when this :
    buttons[row][column]["text"]
    i know [row][column] get row and column but what is ["text"] does?

    • @braek2766
      @braek2766 2 роки тому +1

      calls all the text from the button.

  • @eceabhishekKumarsharma
    @eceabhishekKumarsharma Рік тому

    thanku for the source code

  • @bangpink2392
    @bangpink2392 Рік тому

    😅

  • @S_M_HABIBUR_RAHMAN
    @S_M_HABIBUR_RAHMAN Рік тому

    Op video bro code please relply

  • @simonan4823
    @simonan4823 3 місяці тому

    Error comes up and buttons[][].config does not work at all. any help?

  • @tridra5714
    @tridra5714 Рік тому

    I have dropped a comment down below

  • @ashakunjumon4751
    @ashakunjumon4751 10 місяців тому

    when i run this and there is a tie the tie thing doesnt work

  • @BMF_20953
    @BMF_20953 Рік тому

    11:46

  • @bisakhabandyopadhyay5003
    @bisakhabandyopadhyay5003 4 місяці тому

    No offense but, whenever I tried coding the game, I ran it to test and the top where it says like, “x turn”, it does not have a space and it is not changing to, “o”. Which is why I had to delete the whole program.😔😔😔

  • @mdmufidalam3757
    @mdmufidalam3757 4 місяці тому

    tHANKS aLOT

  • @offlinehacks1262
    @offlinehacks1262 Рік тому

    tkinter.TclError: unknown font style "0" how do i fix this error

  • @Friday_42
    @Friday_42 Рік тому

    why is line 37 indented so far?

  • @anitarawat663
    @anitarawat663 4 місяці тому

    Bro my new_game() showing error:
    AttributeError: int object has no attribute 'config'.

  • @CarmleXXNicca
    @CarmleXXNicca Рік тому

    Anyone know how I could add a scoreboard from this code? (Keep track of the winning scores from player x or player o) I have an idea but I got a little lost.

    • @badbot9988
      @badbot9988 Рік тому

      Same bro

    • @badbot9988
      @badbot9988 Рік тому

      Bro i Just did it

    • @badbot9988
      @badbot9988 Рік тому

      You can write your discord and i can explain to you

    • @erinasyasya947
      @erinasyasya947 Рік тому

      @@badbot9988 i need ur help on this, can you give me ur discord? 🥹