2017-05-18 5 views
0

Ich werde ein Python-Spiel mit einem Modul namens Grafik erstellen. Ich habe ein Board mit Eis erstellt und ich bin verwirrt, wie man die Position für den Spieler am Anfang erstellt. Link zu der Grafikmodule: http://mcsp.wartburg.edu/zelle/python/graphics.py Hier ist mein Code:Icebreaker Spiel 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()

sagen sich 'X' ist der rote Kreis und 'O' ist der blaue Kreis.

+3

Können Sie klären, was die tatsächliche die Frage ist? –

+0

Ich möchte wissen, wie man eine Funktion erstellt, die für die anfängliche Spielerposition –

+1

Willkommen bei StackOverflow. Bitte lesen und befolgen Sie die Buchungsrichtlinien in der Hilfe. [zum Thema] (http://stackoverflow.com/help/on-topic) und [how to ask] (http://stackoverflow.com/help/how-to-ask) gilt hier. StackOverflow ist kein Design-, Codierungs-, Recherche- oder Lernprogramm. – Prune

Antwort

1

Ich weiß nichts über die Icebreaker Spiel, aber ich bin der Hoffnung, die zusätzliche Logik, die ich Ihnen unten zur Verfügung gestellt Sie genug gibt sich vorwärts zu bewegen:

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