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

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 พ.ย. 2024

ความคิดเห็น • 173

  • @BroCodez
    @BroCodez  3 ปีที่แล้ว +86

    # ********************************************************
    # 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 3 ปีที่แล้ว

      @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

  • @adaboykrisiboy36
    @adaboykrisiboy36 2 ปีที่แล้ว +37

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

    • @TechnoFlash-v6b
      @TechnoFlash-v6b ปีที่แล้ว +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!

  • @tubacego6893
    @tubacego6893 7 หลายเดือนก่อน +1

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

  • @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)

  • @masoodrezaei5999
    @masoodrezaei5999 4 หลายเดือนก่อน +1

    My first Python project , Thanks a lot.

  • @davidbandini3484
    @davidbandini3484 ปีที่แล้ว +1

    Thank you so much for the video

  • @monwil3296
    @monwil3296 3 ปีที่แล้ว +10

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

  • @celestinkembe3331
    @celestinkembe3331 2 ปีที่แล้ว +3

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

  • @navyadesai67
    @navyadesai67 ปีที่แล้ว +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

  • @amenkalai8442
    @amenkalai8442 ปีที่แล้ว

    wow very interesting and educative thank you

  • @bishnudeyvivekanonda7028
    @bishnudeyvivekanonda7028 ปีที่แล้ว

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

  • @MunibAhmad-f5f
    @MunibAhmad-f5f 10 หลายเดือนก่อน

    Thank You! Explained well

  • @davidcalebpaterson7101
    @davidcalebpaterson7101 3 ปีที่แล้ว +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.

  • @MFaiqVaince
    @MFaiqVaince 5 หลายเดือนก่อน +1

    great video

  • @nickarkhipov3684
    @nickarkhipov3684 ปีที่แล้ว +1

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

  • @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?

  • @t34bravo
    @t34bravo 7 หลายเดือนก่อน

    This is an awesome tutorial. Thanks!

  • @eduardodelgado3973
    @eduardodelgado3973 2 ปีที่แล้ว +1

    Excelent explanation, thank you.

  • @hbngamer5776
    @hbngamer5776 5 หลายเดือนก่อน

    Good video taught me alot!

  • @luxury8884
    @luxury8884 ปีที่แล้ว

    thx for the game Bro Code always the best ;)

  • @ТимаКазах-ч7о
    @ТимаКазах-ч7о 3 ปีที่แล้ว +2

    you are best!!!

  • @LevitateTheCore
    @LevitateTheCore ปีที่แล้ว

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

  • @kapibara2440
    @kapibara2440 2 หลายเดือนก่อน

    Great!!!

  • @cherishkansara7851
    @cherishkansara7851 ปีที่แล้ว +1

    I am a fellow bro from now on ❤

  • @K-tf5ph
    @K-tf5ph ปีที่แล้ว

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

  • @imadiman528
    @imadiman528 ปีที่แล้ว

    Thanks a bunch you're great 👏

  • @panoskoutsogiannis799
    @panoskoutsogiannis799 ปีที่แล้ว

    very nice video!!

  • @yos5770
    @yos5770 2 ปีที่แล้ว

    you re very good teacher thanks a lot 👏👏😘

  • @obiarne
    @obiarne 10 หลายเดือนก่อน

    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")

  • @AaronProgZ
    @AaronProgZ ปีที่แล้ว

    Thanks for making this video!

  • @oops5752
    @oops5752 หลายเดือนก่อน

    Thanks, bro code. I really appreciate it.

  • @sirikondavenkat5541
    @sirikondavenkat5541 3 ปีที่แล้ว +2

    This is Awsome!

  • @vescle2
    @vescle2 หลายเดือนก่อน

    I can't thank you enough you are the best :)

  • @Philocalyleena
    @Philocalyleena ปีที่แล้ว

    Thank you so much sir.

  • @deejaykabwoy44
    @deejaykabwoy44 3 ปีที่แล้ว +2

    We appreciate

  • @hassanfiras3225
    @hassanfiras3225 ปีที่แล้ว

    a real great tutorial ty bro

  • @THEMINECRAFTFOXSLEEP
    @THEMINECRAFTFOXSLEEP ปีที่แล้ว

    Woah! That’s good video😂😂😂

  • @GarnetTheif
    @GarnetTheif ปีที่แล้ว

    awesome he's a great teacher

  • @Nothing..
    @Nothing.. 2 ปีที่แล้ว

    Thank you bro about this good video
    (:

  • @saifulislamishad1222
    @saifulislamishad1222 3 ปีที่แล้ว +1

    Big fan 🖤

  • @Hema_99
    @Hema_99 2 ปีที่แล้ว +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.

  • @d.ashley879
    @d.ashley879 2 ปีที่แล้ว

    Fantastic video!

  • @aijounohankyou
    @aijounohankyou ปีที่แล้ว

    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

  • @ipsxofficial
    @ipsxofficial 5 หลายเดือนก่อน

    Cool

  • @muhammadkarangwa
    @muhammadkarangwa 3 หลายเดือนก่อน

    learning new staff every day from bro code

  • @hackerstech4025
    @hackerstech4025 3 ปีที่แล้ว +2

    😍 you

  • @amadeo5813
    @amadeo5813 ปีที่แล้ว +1

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

  • @imslim85
    @imslim85 ปีที่แล้ว

    Thank you very much !

  • @Friday_42
    @Friday_42 2 ปีที่แล้ว +1

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

  • @Shadoww0
    @Shadoww0 ปีที่แล้ว

    thank you for the vid

  • @ianbarddal7294
    @ianbarddal7294 4 หลายเดือนก่อน

    You're a true CHAD!

  • @oceangamer7875
    @oceangamer7875 6 หลายเดือนก่อน +1

    winner winner chicken dinner

  • @kanime9535
    @kanime9535 ปีที่แล้ว

    Thank you for the video bro!

  • @edwardplayzzz2675
    @edwardplayzzz2675 6 หลายเดือนก่อน

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

  • @shahzodsayfiddinov9510
    @shahzodsayfiddinov9510 3 ปีที่แล้ว +2

    Thank you Bro!

  • @alirezasohrab-m9k
    @alirezasohrab-m9k ปีที่แล้ว

    this helped me thank you :)

  • @ee-vi9xs
    @ee-vi9xs 2 ปีที่แล้ว

    nice and gg

  • @logeshwaran3016
    @logeshwaran3016 3 ปีที่แล้ว +2

    Hello bro

  • @mythyfox
    @mythyfox 9 หลายเดือนก่อน

    THX SO MUCH

  • @sjthedarkcreation9744
    @sjthedarkcreation9744 2 ปีที่แล้ว

    Thanks sir

  • @tips9296
    @tips9296 2 ปีที่แล้ว

    nice

  • @רוןהודיהסלע
    @רוןהודיהסלע ปีที่แล้ว

    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!

  • @mirshodoripov1035
    @mirshodoripov1035 ปีที่แล้ว

    Thank you bro

  • @Ehsan.Amirii
    @Ehsan.Amirii 2 ปีที่แล้ว

    great

  • @Amir_Plays_non_stop
    @Amir_Plays_non_stop 3 ปีที่แล้ว +2

    1 more video to finish

  • @souravsarkar6107
    @souravsarkar6107 2 ปีที่แล้ว

    learn new thing thank you

  • @Just_MMAFight
    @Just_MMAFight ปีที่แล้ว

    11:46

  • @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?

  • @jorgesingle
    @jorgesingle 9 หลายเดือนก่อน

    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?

  • @akshayak5466
    @akshayak5466 ปีที่แล้ว

    bro you are genius

  • @beldindragon
    @beldindragon ปีที่แล้ว

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

  • @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

  • @eyobyishak5233
    @eyobyishak5233 10 หลายเดือนก่อน

    thank you it work correctly

  • @erinasyasya947
    @erinasyasya947 ปีที่แล้ว

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

  • @albatrozeditz
    @albatrozeditz ปีที่แล้ว

    thank you

  • @bisakhabandyopadhyay5003
    @bisakhabandyopadhyay5003 7 หลายเดือนก่อน

    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.😔😔😔

  • @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 8 หลายเดือนก่อน

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

  • @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.

  • @rajeevkumarjha8748
    @rajeevkumarjha8748 4 หลายเดือนก่อน

    genius

  • @S_M_HABIBUR_RAHMAN
    @S_M_HABIBUR_RAHMAN ปีที่แล้ว

    Op video bro code please relply

  • @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...

  • @murilosilvestre7736
    @murilosilvestre7736 3 ปีที่แล้ว +2

    great job, bro, thank you!

  • @basic-info-
    @basic-info- ปีที่แล้ว

    thx man true gigachad

  • @simonan4823
    @simonan4823 6 หลายเดือนก่อน

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

  • @ccelsiuss482
    @ccelsiuss482 2 ปีที่แล้ว

    underrated af

  • @Shadoww0
    @Shadoww0 ปีที่แล้ว +1

    bro can you explain why buttons is declared this way
    buttons=[ [0,0,0],
    [0,0,0],
    [0,0,0] ]

    • @Unenough_cabin
      @Unenough_cabin ปีที่แล้ว

      So, that it is easy to read for US I think

  • @sidtheepic1103
    @sidtheepic1103 6 หลายเดือนก่อน

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

  • @sportfreund-ub2mz
    @sportfreund-ub2mz ปีที่แล้ว

    Is it possible to get a copy of your tic-tac-toe-python-code?

    • @gorgustus
      @gorgustus ปีที่แล้ว

      check description and pinned comment

  • @arshiaa104
    @arshiaa104 2 ปีที่แล้ว

    good old days when bro was 21 years old

  • @anitarawat663
    @anitarawat663 7 หลายเดือนก่อน

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

  • @samadshead6069
    @samadshead6069 2 ปีที่แล้ว +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?

  • @lvi9175
    @lvi9175 5 หลายเดือนก่อน

    Please explain me why my Lambda isn't working?

  • @ashakunjumon4751
    @ashakunjumon4751 ปีที่แล้ว

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

  • @anjalivarthyavath163
    @anjalivarthyavath163 9 หลายเดือนก่อน

    At 15:08 it wasn't the output for me... I've tried 4 times...plz help me

    • @tomba2
      @tomba2 4 หลายเดือนก่อน

      did you put a () at the end of pack "frame = Frame(window)
      Cause that's what I didnt do

  • @tridra5714
    @tridra5714 ปีที่แล้ว

    I have dropped a comment down below

  • @rowqua0801
    @rowqua0801 4 หลายเดือนก่อน

    my brain... ahhhh