2017-05-18 2 views
0

Je vais créer un jeu python en utilisant un module appelé graphics. J'ai créé un tableau avec de la glace et je suis confus comment créer la position pour le joueur au début. lien vers les modules graphiques: http://mcsp.wartburg.edu/zelle/python/graphics.py Voici mon code:Icebreaker Game python

from graphics import * 
from random import * 

column, row = 7, 10 

WIN_W, WIN_H = 450, 315 

WIN_SZ, GAP = 40, 5 

COLORS = [ 'blue', 'white'] 

player = 'X' 

win = None 

ices = [] 

def draw_ice(x, y): 
    global ices 

    left = GAP + x* (WIN_SZ+GAP) 
    top = GAP + y* (WIN_SZ+GAP) 
    r = Rectangle(Point(left, top), Point(left+WIN_SZ, top+WIN_SZ)) 
    ices[x][y].append(r) 
    bit = randint(1,1) 
    ices[x][y].append(bool(bit)) 
    ices[x][y][0].setFill(COLORS[bit]) 
    ices[x][y][0].draw(win) 

def draw_ices(): 
    for i in range(row): 
     ices.append([]) 
     for j in range(column): 
      ices[i].append([]) 
     draw_ice(i, j) 

def MS1(): 
    global win 
    win = GraphWin("Icebreaker", WIN_W, WIN_H) 
    draw_ices() 
    while True: 
     pt = win.getMouse() 

     x = int((pt.x - GAP)/(WIN_SZ + GAP)) 
     y = int((pt.y - GAP)/(WIN_SZ + GAP)) 
     print(str((pt.x, pt.y)) + ' --> ' + str((x, y))) 

     ices[x][y][1] = not ices[x][y][0] 
     ices[x][y][0].setFill(COLORS[ices[x][y][1]])   

position in the beginning MS1()

disons 'X' est le cercle rouge et 'O' est le cercle bleu.

+3

Pouvez-vous préciser ce que le réel la question est? –

+0

Je veux savoir comment créer une fonction qui pour la position de début de joueur –

+1

Bienvenue dans StackOverflow. Veuillez lire et suivre les consignes de publication dans la documentation d'aide. [sur le sujet] (http://stackoverflow.com/help/on-topic) et [comment demander] (http://stackoverflow.com/help/how-to-ask) s'appliquent ici. StackOverflow n'est pas un service de conception, de codage, de recherche ou de tutorat. – Prune

Répondre

1

Je ne sais pas quoi que ce soit sur le jeu de Icebreaker mais j'espère que la logique supplémentaire je vous ai fourni ci-dessous vous donne assez pour aller de l'avant:

from graphics import * 

COLUMN, ROW = 7, 10 

WIN_W, WIN_H = 455, 320 

WIN_SZ, GAP = 40, 5 

COLORS = ['blue', 'white'] 

CIRCLE, RECTANGLE, COLOR = range(3) 

player = 'X' 

ices = [] 

def draw_ice(x, y): 
    left = GAP + x * (WIN_SZ + GAP) 
    top = GAP + y * (WIN_SZ + GAP) 
    r = Rectangle(Point(left, top), Point(left + WIN_SZ, top + WIN_SZ)) 
    c = Circle(r.getCenter(), WIN_SZ/4) 
    bit = 1 
    c.setFill(COLORS[bit]) 
    c.setOutline('white') 
    r.draw(win) 
    c.draw(win) 
    ices[x][y] = [c, r, bool(bit)] 

def draw_ices(): 
    for i in range(ROW): 
     ices.append([]) 
     for j in range(COLUMN): 
      ices[i].append(None) 
      draw_ice(i, j) 

def MS1(): 
    draw_ices() 

    x_player = ices[0][3][CIRCLE] # X/Red Player 
    x_player.setFill('red') 

    o_player = ices[9][3][CIRCLE] # O/Red Player 
    o_player.setFill('blue') 

    while True: 
     pt = win.getMouse() 

     x = int((pt.x - GAP)/(WIN_SZ + GAP)) 
     y = int((pt.y - GAP)/(WIN_SZ + GAP)) 
     print((pt.x, pt.y), '-->', (x, y)) 

     ices[x][y][COLOR] = not ices[x][y][COLOR] 
     ices[x][y][CIRCLE].setFill(COLORS[ices[x][y][COLOR]]) 

win = GraphWin("Icebreaker", WIN_W, WIN_H) 

MS1() 

enter image description here