Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- from ursina import *
- app = Ursina()
- player = Entity(name='O', color=color.rgb(178,102,255))
- cursor = Tooltip(player.name, color=player.color, origin=(0,0), scale=2, enabled=True)
- cursor.background.color = color.clear
- #bg = Entity(parent=scene, model='quad', texture='shore', scale=(16,8), z=10, color=color.light_gray)
- mouse.visible = False
- board = [ [None, None, None],
- [None, None, None],
- [None, None, None] ]
- for x in range(3):
- for y in range(3):
- b = Button(parent=scene, position=(x,y))
- board[x][y] = b
- def on_click(b=b):
- b.text = player.name
- b.color = player.color
- b.collision = False
- check_for_victory()
- if player.name == 'O':
- player.name = 'X'
- player.color = color.rgb(204,255,153)
- else:
- player.name = 'O'
- player.color = color.rgb(178,102,255)
- cursor.text = player.name
- cursor.color = player.color
- b.on_click = on_click
- def check_for_victory():
- name = player.name
- won = (
- (board[0][0].text == name and board[1][0].text == name and board[2][0].text == name) or # across the bottom
- (board[0][1].text == name and board[1][1].text == name and board[2][1].text == name) or # across the middle
- (board[0][2].text == name and board[1][2].text == name and board[2][2].text == name) or # across the top
- (board[0][0].text == name and board[0][1].text == name and board[0][2].text == name) or # down the left side
- (board[1][0].text == name and board[1][1].text == name and board[1][2].text == name) or # down the middle
- (board[2][0].text == name and board[2][1].text == name and board[2][2].text == name) or # down the right side
- (board[0][0].text == name and board[1][1].text == name and board[2][2].text == name) or # diagonal /
- (board[0][2].text == name and board[1][1].text == name and board[2][0].text == name)) # diagonal \
- if won:
- print('winner is:', name)
- app.run()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement