コード例 #1
0
def load_world(filename=None):
    """Loads a robot world from filename.
    Opens file-chooser if no filename is given."""
    global _scene, _world
    if _scene:
        raise RuntimeError("A robot world already exists!")
    if not filename:
        filename = _easygui.fileopenbox("Select a Robot world", "Robot World",
                                        '*', ["*.wld"])
        if not filename:
            raise RuntimeError("No world file selected.")
    txt = open(filename, 'rb').read()
    txt = _re.sub('\r\n', '\n', txt)  # Windows
    txt = _re.sub('\r', '\n', txt)  # Mac
    _check_world(txt)
    wd = {}
    # extracts avenues, streets, walls and beepers
    try:
        exec(txt, wd)
        w = _World(wd['avenues'], wd['streets'], wd['walls'], wd['beepers'])
    except:
        raise ValueError("Error interpreting world file.")
    _world = w
    _scene = _g.Canvas()
    _scene.setWidth(50 * w.av)
    _scene.setHeight(50 * w.st)
    i = filename.rfind("/")
    if i >= 0: filename = filename[i + 1:]
    _scene.setTitle("Robot World: " + filename)
    _world.create_layer()
    _scene.setAutoRefresh(False)
コード例 #2
0
def create_world(avenues=10, streets=10):
    """Create an empty robot world."""
    global _scene, _world
    if _scene:
        raise RuntimeError("A robot world already exists!")
    _scene = _g.Canvas()
    _scene.setWidth(50 * avenues)
    _scene.setHeight(50 * streets)
    _scene.setTitle("Robot World")
    _world = _World(avenues, streets)
    _world.create_layer()
    _scene.setAutoRefresh(False)
コード例 #3
0
def init_hardware():
    global _canvas, _cabin, _ldoor, _rdoor
    _canvas = _g.Canvas(200, 600)
    _canvas.setBackgroundColor("lightblue")
    _canvas.setTitle("Elevator")
    r = _g.Rectangle(90, 160)
    r.setFillColor("yellow")
    r.setBorderColor("red")
    _ldoor = _g.Rectangle(40, 150)
    _rdoor = _g.Rectangle(40, 150)
    _ldoor.move(-20, 0)
    _rdoor.move(20, 0)
    _ldoor.adjustReference(-20, 0)
    _rdoor.adjustReference(20, 0)
    _ldoor.setFillColor("blue")
    _rdoor.setFillColor("blue")
    r.setDepth(60)
    _cabin = _g.Layer()
    _cabin.add(r)
    _cabin.add(_ldoor)
    _cabin.add(_rdoor)
    _cabin.moveTo(70, 600 - 90)
    _canvas.add(_cabin)
    for i in range(3):
        floor = _g.Rectangle(70, 6)
        floor.setFillColor("blue")
        floor.moveTo(150, 600 - i * 200 - 13)
        _canvas.add(floor)
    for i in range(4):
        floor = (i + 1) // 2
        button = Button(i, ((i % 2) == 0))
        button.moveTo(150, 600 - floor * 200 - 50)
        light = _g.Circle(10)
        light.moveTo(150, 600 - floor * 200 - 90)
        light.setFillColor("darkblue")
        if i == 1:
            button.move(15, 0)
            light.move(15, 0)
        elif i == 2:
            button.move(-15, 0)
            light.move(-15, 0)
        _canvas.add(button)
        _canvas.add(light)
        _buttons[i] = button
        _lights[i] = light
コード例 #4
0
ファイル: my-drawing.py プロジェクト: Krysioly/Drawing-Lab
# coding: utf-8
roof = cg.Polygon(cg.Point(300, 250), cg.Point(500, 250), cg.Point(400, 250))
roof.setFillColor('brown')
roof.setDepth(45)
paper.add(roof)
import cs1graphics as cg
roof = cg.Polygon(cg.Point(300, 250), cg.Point(500, 250), cg.Point(400, 250))
roof.setFillColor('brown')
roof.setDepth(45)
paper.add(roof)
paper = cy.Canvas()
paper = cg.Canvas()
paper.setBackgroundColor('skyBlue')
paper.setWidth(800)
paper.setHeight(600)
paper.setTitle('My World')
sun = cg.Circle()
paper.add(sun)
sun.setFillColor('yellow')
sun.setRadius(50)
sun.moveTo(700, 100)

paper.add(sun)
facade = cg.Square(200, cg.Point(400, 350))
facade.setFillColor('white')
paper.add(facade)

chimney = cg.Rectangle(50, 70, cg.Point(450, 215))
chimney.setFillColor('red')
paper.add(chimney)
コード例 #5
0
def make_paper():
    paper = cg.Canvas(600, 600, bgColor="skyBlue", title="Cat")
    return paper
コード例 #6
0
def draw_landscape():
    """Creates two suns, sunrays, house, tree, and grass"""

    paper = cg.Canvas()

    paper.setBackgroundColor('skyBlue')
    paper.setWidth(800)
    paper.setHeight(600)
    paper.setTitle('Welcome to Tattoine')

    sun = cg.Circle()
    paper.add(sun)

    sun.setFillColor('yellow')
    sun.setRadius(50)
    sun.moveTo(700, 100)

    sunCenter = cg.Point(670, 110)
    sun2 = cg.Circle(50, sunCenter)
    sun2.setDepth(60)
    sun2.setFillColor('orange')
    paper.add(sun2)

    facade = cg.Square(200, cg.Point(400, 350))
    facade.setFillColor('white')
    paper.add(facade)

    chimney = cg.Rectangle(50, 70, cg.Point(450, 215))
    chimney.setFillColor('red')
    paper.add(chimney)

    tree = cg.Polygon(cg.Point(150, 220),
                      cg.Point(120, 380),
                      cg.Point(180, 380))
    tree.setFillColor('darkGreen')
    paper.add(tree)

    sunraySW = cg.Path(cg.Point(660, 140), cg.Point(635, 165))
    sunraySW.setBorderColor('yellow')
    sunraySW.setBorderWidth(6)
    paper.add(sunraySW)

    sunraySE = cg.Path(cg.Point(740, 140), cg.Point(765, 165))
    sunraySE.setBorderColor('yellow')
    sunraySE.setBorderWidth(6)
    paper.add(sunraySE)

    sunrayNE = cg.Path(cg.Point(740, 60), cg.Point(765, 35))
    sunrayNE.setBorderColor('yellow')
    sunrayNE.setBorderWidth(6)
    paper.add(sunrayNE)

    sunrayNW = cg.Path(cg.Point(660, 60), cg.Point(635, 35))
    sunrayNW.setBorderColor('yellow')
    sunrayNW.setBorderWidth(6)
    paper.add(sunrayNW)

    grass = cg.Rectangle(800, 300, cg.Point(400, 450))
    grass.setFillColor('green')
    grass.setBorderColor('green')
    grass.setDepth(75)
    paper.add(grass)

    landscape_objects = {'paper': paper,
                         'sun1': sun,
                         'sun2': sun2,
                         'facade': facade,
                         'sunrays': [sunrayNE, sunrayNW, sunraySW, sunraySE],
                         'chimney': chimney,
                         'tree': tree,
                         'grass': grass}
    return landscape_objects