Esempio n. 1
0
    def __init__(self,
                 name,
                 street,
                 avenue,
                 direction,
                 beepers,
                 fill=None,
                 outline=None):
        self.karel = UrRobot(street, avenue, direction, beepers, fill, outline)
        #        self.window = window()
        world.setDelay(0)
        self.fill = fill
        self.name = name
        global offset
        offset += 20
        window = gtk.Dialog()
        window.set_has_separator(False)
        try:
            color = gtk.gdk.color_parse(fill)
            window.modify_bg(gtk.STATE_NORMAL, color)
        except:
            pass

        window.connect("destroy", self.destroy)
        window.set_title(name)
        window.set_size_request(100, 150)

        moveButton = gtk.Button("Move")
        moveButton.connect("clicked", self.move)
        moveButton.show()
        window.vbox.pack_start(moveButton, True, False, 0)

        turnButton = gtk.Button("TurnLeft")
        turnButton.connect("clicked", self.turnLeft)
        turnButton.show()
        window.vbox.pack_start(turnButton, True, False, 0)

        pickButton = gtk.Button("PickBeeper")
        pickButton.connect("clicked", self.pickBeeper)
        pickButton.show()
        window.vbox.pack_start(pickButton, True, False, 0)

        putButton = gtk.Button("PutBeeper")
        putButton.connect("clicked", self.putBeeper)
        putButton.show()
        window.vbox.pack_start(putButton, True, False, 0)

        turnOffButton = gtk.Button("TurnOff")
        turnOffButton.connect("clicked", self.turnOff)
        turnOffButton.show()
        window.vbox.pack_start(turnOffButton, True, False, 0)
        window.show()
        window.move(500 + offset, 20 + offset)
Esempio n. 2
0
def task():
    #Commands to control the "world"
    #Open a particular world file
    world.readWorld("beeperWorld.kwld")
    #Set the size of the visible world
    world.setSize(10, 10)
    #Set the speed of the robot
    world.setDelay(30)

    sb15 = UrRobot(5, 6, North, 1, fill='green', outline='blue')

    def turn(a):
        for i in range(a):
            sb15.turnLeft()

    def pickAndTurn(a):
        for i in range(a):
            sb15.pickBeeper()
            sb15.turnLeft()
            sb15.move()
            turn(3)
            sb15.move()

    #Write the code to make your robot pick up all the beepers.
    sb15.turnLeft()
    sb15.move()
    pickAndTurn(4)
    sb15.pickBeeper()
    time.sleep(3)
Esempio n. 3
0
 def setUp(self):
     world.setSize(10, 10)
     world.reset()
     world.setDelay(0)
     self.karel = UrRobot(5, 5, North, 0)
     world.setVisible(
         0
     )  #Doesn't work. It is reset visible whenever Robota is loaded again.
Esempio n. 4
0
 def testRobotPredicates(self):
     "Validate all of the predicates in class Robot"
     self.karel = Robot(5, 5, North, 0)  # has to be a Robot here
     self.assertEqual(self.karel.anyBeepersInBeeperBag(), 0)
     self.assertEqual(self.karel.nextToABeeper(), 0)
     self.assertEqual(self.karel.facingNorth(), 1)
     self.assertEqual(self.karel.facingWest(), 0)
     self.assertEqual(self.karel.facingSouth(), 0)
     self.assertEqual(self.karel.facingEast(), 0)
     self.assertEqual(self.karel.frontIsClear(), 1)
     martha = UrRobot(5, 5, North, 0)
     self.assertEqual(self.karel.nextToARobot(), 1)
     world.placeWallNorthOf(5, 5)
     self.assertEqual(self.karel.frontIsClear(), 0)
     self.karel.turnLeft()
     self.assertEqual(self.karel.facingNorth(), 0)
     self.assertEqual(self.karel.facingWest(), 1)
     self.assertEqual(self.karel.frontIsClear(), 1)
     world.placeWallEastOf(5, 4)
     self.assertEqual(self.karel.frontIsClear(), 0)
     self.karel.turnLeft()
     self.assertEqual(self.karel.facingWest(), 0)
     self.assertEqual(self.karel.facingSouth(), 1)
     self.assertEqual(self.karel.frontIsClear(), 1)
     world.placeWallNorthOf(4, 5)
     self.assertEqual(self.karel.frontIsClear(), 0)
     self.karel.turnLeft()
     self.assertEqual(self.karel.facingSouth(), 0)
     self.assertEqual(self.karel.facingEast(), 1)
     self.assertEqual(self.karel.frontIsClear(), 1)
     world.placeWallEastOf(5, 5)
     self.assertEqual(self.karel.frontIsClear(), 0)
     charlie = Robot(12, 12, North, 1)
     rosie = UrRobot(12, 12, East, 0)
     self.assertEqual(charlie.anyBeepersInBeeperBag(), 1)
     charlie.putBeeper()
     self.assertEqual(charlie.anyBeepersInBeeperBag(), 0)
     charlie.pickBeeper()
     self.assertEqual(charlie.anyBeepersInBeeperBag(), 1)
     self.assertEqual(charlie.nextToARobot(), 1)
     charlie.move()
     charlie.move()
     self.assertEqual(charlie.nextToARobot(), 0)
     self.assertNoBeepersAt(9, 9)
     world.placeBeepers(9, 9, 1)
     self.assertBeepersAt(9, 9)
Esempio n. 5
0
    def testActionsWhenTurnedOff(self):
        "Actions should all fail when robot turned off"
        self.karel.turnOff()
        self.assertRaises(RobotNotRunning, self.karel.move)
        self.assertRaises(RobotNotRunning, self.karel.turnLeft)
        self.assertRaises(RobotNotRunning, self.karel.pickBeeper)
        self.assertRaises(RobotNotRunning, self.karel.putBeeper)

        lost = UrRobot(1, 1, West, 1)
        self.assertRaises(FrontIsBlocked, lost.move)

        self.assertRaises(RobotNotRunning, lost.move)
        self.assertRaises(RobotNotRunning, lost.turnLeft)
        self.assertRaises(RobotNotRunning, lost.pickBeeper)
        self.assertRaises(RobotNotRunning, lost.putBeeper)
Esempio n. 6
0
def task():
        def turnSB15(a):
                for i in range(a):
                        sb15.turnLeft()
        def turnKarel(a):
                for i in range(a):
                        karel.turnLeft()
#       Commands to control the "world"
        world.readWorld("stepsWorld.kwld")    # open a particular world file
        world.setSize(10,10)               # set the size of the visible world
        #^^ should be 10
        world.setDelay(90)                # set simulation speed. 0-fastest, 100-slowest

        karel = UrRobot(2,3,East, 1,fill="blue")
        sb15 = UrRobot(1,6,North, 10, fill="green")
        sb15.move()
        karel.turnLeft()
        turnSB15(1)
        sb15.move()
        turnSB15(3)
        sb15.move()
        turnSB15(1)
        sb15.move()
        turnSB15(1)
        turnKarel(1)
        karel.move()
        turnKarel(1)
        karel.move()
        turnKarel(2)
        turnSB15(2)
Esempio n. 7
0
class RemoteControl:
    def __init__(self,
                 name,
                 street,
                 avenue,
                 direction,
                 beepers,
                 fill=None,
                 outline=None):
        self.karel = UrRobot(street, avenue, direction, beepers, fill, outline)
        #        self.window = window()
        world.setDelay(0)
        self.fill = fill
        self.name = name
        global offset
        offset += 20
        window = gtk.Dialog()
        window.set_has_separator(False)
        try:
            color = gtk.gdk.color_parse(fill)
            window.modify_bg(gtk.STATE_NORMAL, color)
        except:
            pass

        window.connect("destroy", self.destroy)
        window.set_title(name)
        window.set_size_request(100, 150)

        moveButton = gtk.Button("Move")
        moveButton.connect("clicked", self.move)
        moveButton.show()
        window.vbox.pack_start(moveButton, True, False, 0)

        turnButton = gtk.Button("TurnLeft")
        turnButton.connect("clicked", self.turnLeft)
        turnButton.show()
        window.vbox.pack_start(turnButton, True, False, 0)

        pickButton = gtk.Button("PickBeeper")
        pickButton.connect("clicked", self.pickBeeper)
        pickButton.show()
        window.vbox.pack_start(pickButton, True, False, 0)

        putButton = gtk.Button("PutBeeper")
        putButton.connect("clicked", self.putBeeper)
        putButton.show()
        window.vbox.pack_start(putButton, True, False, 0)

        turnOffButton = gtk.Button("TurnOff")
        turnOffButton.connect("clicked", self.turnOff)
        turnOffButton.show()
        window.vbox.pack_start(turnOffButton, True, False, 0)
        window.show()
        window.move(500 + offset, 20 + offset)

    def move(self, widget):
        if not self.karel.isRunning():
            print(self.name + " tried to move when it wasn't running.")
            return
        try:
            self.karel.move()
            print(self.name + ".move()")
        except:
            print(self.name + " tried to walk through a wall.")

    def turnLeft(self, widget):
        try:
            self.karel.turnLeft()
            print(self.name + ".turnLeft()")
        except:
            print(self.name + " tried to turnLeft when it wasn't running.")

    def pickBeeper(self, widget):
        if not self.karel.isRunning():
            print(self.name + " tried to pickBeeper when it wasn't running.")
            return
        try:
            self.karel.pickBeeper()
            print(self.name + ".pickBeeper()")
        except:
            print(self.name + " tried to pickBeeper when none are present.")

    def putBeeper(self, widget):
        if not self.karel.isRunning():
            print(self.name + " tried to putBeeper when it wasn't running.")
            return
        try:
            self.karel.putBeeper()
            print(self.name + ".putBeeper()")
        except:
            print(self.name + " tried to putBeeper when none available.")

    def turnOff(self, widget):
        self.karel.turnOff()
        print(self.name + ".turnOff()")

    def destroy(self, widget):
        gtk.main_quit()