Python Turtle Graphics Игра «Крестики-нолики»Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Python Turtle Graphics Игра «Крестики-нолики»

Сообщение Anonymous »

Последние несколько дней я работал над проектом Tic-Tac-Toe, используя только Turtle Graphics. Мне нужно иметь 3 варианта игры; Пользователь против пользователя, Пользователь против компьютера и Компьютер против компьютера. Пока что процесс «Пользователь против пользователя» работает нормально. Кажется, я не могу заставить random.choice() правильно работать для пользователя и компьютера. Он либо не будет отображать букву «О», которую должен рисовать, либо рисует другую фигуру, когда это не требуется. Я еще не приступил к части «Компьютер против компьютера». Ниже мой код:

Код: Выделить всё

import time
import turtle
import random

screen = turtle.Screen()
turtle.pendown()
turn = 'x'

def setup_game():
turtle.penup()
turtle.speed(0)
turtle.goto(-200 ,200)
turtle.forward(100)
turtle.pendown()
turtle.right(90)
turtle.forward(300)
turtle.penup()
turtle.right(-90)
turtle.forward(100)
turtle.right(-90)
turtle.pendown()
turtle.forward(300)
turtle.penup()
turtle.goto(-200, 200)
turtle.right(180)
turtle.forward(100)
turtle.right(-90)
turtle.pendown()
turtle.forward(300)
turtle.penup()
turtle.right(90)
turtle.forward(100)
turtle.right(90)
turtle.pendown()
turtle.forward(300)

def draw_x (location):
if location == 0:
turtle.speed(2.5)
turtle.penup()
turtle.goto(-175,175)
turtle.pendown()
turtle.goto(-125,125)

turtle.penup()
turtle.goto(-125, 175)
turtle.pendown()
turtle.goto(-175, 125)

elif location == 1:
turtle.speed(2.5)
turtle.penup()
turtle.goto(-75,175)
turtle.pendown()
turtle.goto(-25,125)

turtle.penup()
turtle.goto(-25, 175)
turtle.pendown()
turtle.goto(-75, 125)

elif location == 2:
turtle.speed(2.5)
turtle.penup()
turtle.goto( 25,175)
turtle.pendown()
turtle.goto( 75,125)

turtle.penup()
turtle.goto(75, 175)
turtle.pendown()
turtle.goto(25, 125)

elif location == 3:
turtle.speed(2.5)
turtle.penup()
turtle.goto(-175, 75 )
turtle.pendown()
turtle.goto(-125,25)

turtle.penup()
turtle.goto(-125, 75)
turtle.pendown()
turtle.goto(-175, 25)

elif location == 4:
turtle.speed(2.5)
turtle.penup()
turtle.goto(-75,75)
turtle.pendown()
turtle.goto(-25,25)

turtle.penup()
turtle.goto(-25, 75)
turtle.pendown()
turtle.goto(-75, 25)

elif location == 5:
turtle.speed(2.5)
turtle.penup()
turtle.goto(25,75)
turtle.pendown()
turtle.goto(75,25)

turtle.penup()
turtle.goto(75, 75)
turtle.pendown()
turtle.goto(25, 25)

elif location == 6:
turtle.speed(2.5)
turtle.penup()
turtle.goto(-175,-25)
turtle.pendown()
turtle.goto(-125, -75)

turtle.penup()
turtle.goto(-125,-25)
turtle.pendown()
turtle.goto(-175, -75)

elif location == 7:
turtle.speed(2.5)
turtle.penup()
turtle.goto(-75,-25)
turtle.pendown()
turtle.goto(-25,-75)

turtle.penup()
turtle.goto(-25, -25)
turtle.pendown()
turtle.goto(-75, -75)

elif location == 8:
turtle.speed(2.5)
turtle.penup()
turtle.goto(25,-25)
turtle.pendown()
turtle.goto(75,-75)

turtle.penup()
turtle.goto(75, -25)
turtle.pendown()
turtle.goto(25, -75)

# def draw_o(location):
def draw_o (location):
if location == 0:
turtle.speed(2.5)
turtle.penup()
turtle.goto(-150, 175)
turtle.pendown()
turtle.circle(25)

if location == 1:
turtle.speed(2.5)
turtle.penup()
turtle.goto(-50, 175)
turtle.pendown()
turtle.circle(25)

if location == 2:
turtle.speed(2.5)
turtle.penup()
turtle.goto( 50, 175)
turtle.pendown()
turtle.circle(25)

if location == 3:
turtle.speed(2.5)
turtle.penup()
turtle.goto(-150, 75)
turtle.pendown()
turtle.circle(25)

if location == 4:
turtle.speed(2.5)
turtle.penup()
turtle.goto(-50, 75)
turtle.pendown()
turtle.circle(25)

if location == 5:
turtle.speed(2.5)
turtle.penup()
turtle.goto(50, 75)
turtle.pendown()
turtle.circle(25)

if location == 6:
turtle.speed(2.5)
turtle.penup()
turtle.goto(-150 ,-25)
turtle.pendown()
turtle.circle(25)

if location == 7:
turtle.speed(2.5)
turtle.penup()
turtle.goto(-50, -25)
turtle.pendown()
turtle.circle(25)

if location == 8:
turtle.speed(2.5)
turtle.penup()
turtle.goto(50, -25)
turtle.pendown()
turtle.circle(25)

def win_check():
# horizontal check
for i in range(0, 9, 3):
if (board[i] == board[i + 1] == board[i + 2]):
return True

# vertical check
for i in range(3):
if (board[i] == board[i + 3] == board[i + 6]):
return True

# diagonal check
if ((board[0] == board[4] == board[8]) or (board[2] == board[4] == board[6])):
return True

# user vs computer
def computer_move (move):

global board, turn, game, random

if board[move] >= 0 and board[move]  100)) or ((y > 200) or (y = 0:
move = 2
elif x >= -100:
move = 1
elif x >= -200:
move = 0

elif y < 100 and y >=0:
if x >= 0:
move = 5
elif x >= -100:
move = 4
elif x >= -200:
move = 3

elif y = -100:
if x >= 0:
move = 8
elif x >= -100:
move = 7
elif x >= -200:
move = 6

# draws
computer_move(move)

setup_game()

game = 'not over'
move = None
board = [0,1,2,3,4,5,6,7,8]

#Everytime this function is called, it passes xy coordinate into a function inside the parathensis.
screen.onscreenclick(which_square)

print('User 1, please click where you want to go. (You may have to click twice.)')

turtle.done()
Я включил функцию печати, чтобы показать выбор, который делают пользователь и компьютер, но она не всегда рисует букву «O» с компьютера, а иногда и перекрывается. «X», даже если на отпечатке не видно перекрытия и не допускается перекрытие.

Кроме того, я новичок в Python, работаю с ним только последние пару месяцев.

Любая помощь в этом будет полезна! Спасибо!

Подробнее здесь: https://stackoverflow.com/questions/587 ... c-toe-game
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Python Turtle Graphics Игра «Крестики-нолики»
    Anonymous » » в форуме Python
    0 Ответы
    26 Просмотры
    Последнее сообщение Anonymous
  • Python Turtle Graphics Игра «Крестики-нолики»
    Anonymous » » в форуме Python
    0 Ответы
    29 Просмотры
    Последнее сообщение Anonymous
  • 3D-игра «Крестики-нолики» не обнаруживает горизонтальные выигрыши между слоями (4x4) [закрыто]
    Anonymous » » в форуме JAVA
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Проблема с расчетом выигрыша, когда компьютер выигрывает в моем приложении «Крестики-нолики»
    Гость » » в форуме IOS
    0 Ответы
    74 Просмотры
    Последнее сообщение Гость
  • Проблема с отображением «X» при первом клике в игре «Крестики-нолики»
    Anonymous » » в форуме CSS
    0 Ответы
    58 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»