04.01.2012, 21:42
(Ten post był ostatnio modyfikowany: 04.01.2012, 21:43 przez Black_Deamon.)
Witam,
Od jakiegoś czasu pracuję nad grą kółko i krzyżyk w pythonie, ale wystąpił problem, z którym nie umiem sobie poradzić. Gra oparta jest na grafikach, trzech obrazach : pusty, krzyżyk i kółko (wszystkie mają rozmiar 100x100). Mam początek ustawiony wszystkie na puste i jest ich dziewięć, problem w tym, że są w jednym rzędzie. Co próbuję zrobić to ustawienie ich w trzech rzędach, tak aby wyglądało to jak poprawna gra w kółko i krzyżyk
Docenię każdą odpowiedź i z góry dziękuję.
To mój kod:
Od jakiegoś czasu pracuję nad grą kółko i krzyżyk w pythonie, ale wystąpił problem, z którym nie umiem sobie poradzić. Gra oparta jest na grafikach, trzech obrazach : pusty, krzyżyk i kółko (wszystkie mają rozmiar 100x100). Mam początek ustawiony wszystkie na puste i jest ich dziewięć, problem w tym, że są w jednym rzędzie. Co próbuję zrobić to ustawienie ich w trzech rzędach, tak aby wyglądało to jak poprawna gra w kółko i krzyżyk
Docenię każdą odpowiedź i z góry dziękuję.
To mój kod:
Kod:
import os, sys, random
import pygame
from pygame.locals import *
class TileSprite(pygame.sprite.Sprite):
def __init__(self, tilenumber):
pygame.sprite.Sprite.__init__(self)
self.image1 = pygame.image.load("blank.gif")
self.image2 = pygame.image.load("x.gif")
self.image3 = pygame.image.load("o.gif")
self.status = 0
self.image = self.image1
self.rect = self.image.get_rect()
screen = pygame.display.get_surface()
self.tile = tilenumber
self.position = ((tilenumber * 100) + 50, 200)
def update(self, tilepressed, status):
if self.tile == tilepressed:
self.status = status
if self.status == 1:
self.image = self.image2
elif self.status == 2:
self.image = self.image3
self.rect = self.image.get_rect()
self.rect.topleft = self.position
pygame.init()
screen = pygame.display.set_mode((1200,800))
background = pygame.Surface(screen.get_size())
background = background.convert()
background.fill((0, 0, 0))
board = pygame.sprite.Group()
for x in range (1, 10):
board.add(TileSprite(x))
calcboard = [0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
playing = True
while playing:
tilepressed = 0
status = 0
while status != 1:
for event in pygame.event.get():
if event.type == QUIT:
pygame.quit()
sys.exit()
if event.type == KEYUP:
if event.key ==K_ESCAPE:
pygame.quit()
sys.exit()
elif event.key == K_1:
tilepressed = 1
elif event.key == K_2:
tilepressed = 2
elif event.key == K_3:
tilepressed = 3
elif event.key == K_4:
tilepressed = 4
elif event.key == K_5:
tilepressed = 5
elif event.key == K_6:
tilepressed = 6
elif event.key == K_7:
tilepressed = 7
elif event.key == K_8:
tilepressed = 8
elif event.key == K_9:
tilepressed = 9
if tilepressed != 0:
if calcboard[tilepressed - 1] == 0:
calcboard[tilepressed - 1] = 1
status = 1
screen.blit(background, (0,0))
board.update(tilepressed, status)
board.draw(screen)
pygame.display.flip()
status = 0
while status != 2:
tilepressed = random.randrange(1, 7)
if calcboard[tilepressed - 1] == 0:
calcboard[tilepressed - 1] = 2
status = 2
screen.blit(background, (0,0))
board.update(tilepressed, status)
board.draw(screen)
pygame.display.flip()