コード例 #1
0
class Window:
    def __init__(self):
        """Initialize PyGame"""
        pygame.init()
        """Set the window Size"""
        self.width = 600
        self.height = 600
        """Create the Screen"""
        self.font = pygame.font.SysFont("monospace", 20)
        self.screen = pygame.display.set_mode((self.width, self.height))
        """Initialize classes as None"""
        self.disk = None
        self.r1 = None
        self.r2 = None
        self.exit = None
        self.clock = None

    def new(self, radius, r1StartPos, r2StartPos, exitPos, startPointOnEdge,
            r1TravelToEdge, r2TravelToEdge, r1TravelOnCircleEdge,
            r2TravelOnCircleEdge):
        """Create our classes"""
        self.disk = Disk(radius, (300, 300))
        self.r1 = Robot(self.disk, r1StartPos, exitPos, startPointOnEdge,
                        r1TravelToEdge, r1TravelOnCircleEdge, False)
        self.r2 = Robot(self.disk, r2StartPos, exitPos, startPointOnEdge,
                        r2TravelToEdge, r2TravelOnCircleEdge, True)
        self.exit = Exit(exitPos)
        self.clock = pygame.time.Clock()

    def _draw(self):
        self.screen.fill(pygame.Color(255, 255, 255))

        self.disk.draw(self.screen)
        self.exit.draw(self.screen)
        self.r1.draw(self.screen, self.font)
        self.r2.draw(self.screen, self.font)

        pygame.display.update()

    def _update(self):
        elapsedTime = self.clock.tick_busy_loop(
            60) / 1000  #Seconds since last update
        self.r1.update(elapsedTime)
        self.r2.update(elapsedTime)

    def MainLoop(self):
        """This is the Main Draw Loop"""
        while 1:
            for event in pygame.event.get():
                if event.type == pygame.QUIT:
                    sys.exit()

            if (None not in (self.r1, self.r2, self.disk, self.exit,
                             self.clock)):
                if (self.r1.getIsFinished() and self.r2.getIsFinished()):
                    time.sleep(2)
                    return

                self._update()
                self._draw()
コード例 #2
0
ファイル: test.py プロジェクト: niroo96/Toy-Robot-Simulator
    def test_movetest(self):
        robot = Robot()

        robot.place(1, 2, "WEST")

        robot.move()
        self.assertEqual(robot.report(), "(0, 2, WEST)")

        # shouldn't go more in west direction
        robot.move()
        self.assertEqual(robot.report(), "(0, 2, WEST)")
コード例 #3
0
 def new(self, radius, r1StartPos, r2StartPos, exitPos, startPointOnEdge,
         r1TravelToEdge, r2TravelToEdge, r1TravelOnCircleEdge,
         r2TravelOnCircleEdge):
     """Create our classes"""
     self.disk = Disk(radius, (300, 300))
     self.r1 = Robot(self.disk, r1StartPos, exitPos, startPointOnEdge,
                     r1TravelToEdge, r1TravelOnCircleEdge, False)
     self.r2 = Robot(self.disk, r2StartPos, exitPos, startPointOnEdge,
                     r2TravelToEdge, r2TravelOnCircleEdge, True)
     self.exit = Exit(exitPos)
     self.clock = pygame.time.Clock()
コード例 #4
0
ファイル: main.py プロジェクト: chri5bot/robot
from classes.board import Board
from classes.robot import Robot

f = open('list_moves.txt')

list_moves_from_file = [line.rstrip('\n').split(",") for line in f]

board_size = 5
step = 1

for moves in list_moves_from_file:
    print(moves)
    board = Board()
    board.generate(board_size)
    robot = Robot('ROBOT', 0, 0)
    robot.print_position()
    for move in moves:
        board.set_robot('O', robot.x, robot.y)
        robot.walk(move, step, board_size)
        robot.print_position()
        board.set_robot(robot.symbol, robot.x, robot.y)
    board.display()
コード例 #5
0
ファイル: mainfilter.py プロジェクト: AlbertoBonfiglio/Me599
def main(args):
    filters = [1, 3, 9, 27]
    gnoise, epochs = selectGaussianNoise(args)
    sillyBot = Robot()

    data = sillyBot.getSensorReadings(epochs, gnoise)
    sillyBot.printSensorData(data, 'unfiltered')

    fig, axes = plt.subplots(nrows=4, ncols=5, sharex=True, sharey=True)

    fig.suptitle('Filter noise={0}'.format(gnoise), fontsize=20)
    axes[0, 0].plot(data)
    axes[0, 0].set_title('Unfiltered')

    idx=1
    for n in filters:
        meandata = sillyBot.filterData(data, n, usemedian=False, usenumpy=False)
        mediandata = sillyBot.filterData(data, n, usemedian=True, usenumpy=False)
        sillyBot.printSensorData(meandata, 'mean_{0}'.format(n))
        sillyBot.printSensorData(mediandata, 'median_{0}'.format(n))
        sillyBot.printStatistics(meandata, 'mean_{0}'.format(n))
        sillyBot.printStatistics(mediandata, 'median_{0}'.format(n))

        axes[0, idx].plot(meandata)
        axes[0, idx].set_title('mean = {0}'.format(n))
        axes[1, idx].plot(mediandata)
        axes[1, idx].set_title('median = {0}'.format(n))


        meandata = sillyBot.filterData(data, n, usemedian=False, usenumpy=True)
        mediandata = sillyBot.filterData(data, n, usemedian=True, usenumpy=True)
        axes[2, idx].plot(meandata)
        axes[2, idx].set_title('NP mean = {0}'.format(n))
        axes[3, idx].plot(mediandata)
        axes[3, idx].set_title('NP median = {0}'.format(n))

        idx += 1

        sillyBot.printSensorData(meandata, 'mean_{0}'.format(n))
        sillyBot.printSensorData(mediandata, 'median_{0}'.format(n))


    plt.show()
コード例 #6
0
# Code by Niroo Arjuna

from classes.robot import Robot
robot = Robot()
condition = True

print('--------------------------\n'
      '''
                          (                                                                          
          *   )           )\ )       )         )     (      )      (  (                              
        ` )  /(   (      (()/(    ( /(      ( /(     )\  ( /(    ) )\ )\  (       (  (    (          
   ______( )(_)|  )\ )___ /(_))(  )\())  (  )\())__(((_) )\())( /(((_|(_)))\ (    )\))(  ))\  ______ 
  / / / (_(_()))\(()/(___(_))  )\((_)\   )\(_))/___)\___((_)\ )(_))_  _ /((_))\ )((_))\ /((_)/ / / / 
 / / / /|_   _((_))(_))  | _ \((_) |(_) ((_) |_   ((/ __| |(_|(_)_| || (_)) _(_/( (()(_|_)) / / / /  
/_/_/_/   | |/ _ \ || |  |   / _ \ '_ \/ _ \  _|   | (__| ' \/ _` | || / -_) ' \)) _` |/ -_)_/_/_/   
          |_|\___/\_, |  |_|_\___/_.__/\___/\__|    \___|_||_\__,_|_||_\___|_||_|\__, |\___|         
                  |__/                                                           |___/                                                                                                                                                                                                                   
    ''')
print("--------------------------")
print("Toy Robot Simulator Challenge Solution")
print("Developed by: Niroo Arjuna")
print("--------------------------")

while condition:
    text_entered = input("Enter a new command (Type QUIT to exit script) ")

    # Convert user input to uppercase, so command comparison is case insensitive
    text_upper = text_entered.upper()
    # Split user input to a list
    words = text_upper.split()
コード例 #7
0
ファイル: test.py プロジェクト: niroo96/Toy-Robot-Simulator
    def test_placetest(self):
        robot = Robot()

        robot.place(2, 2, "EAST")
        self.assertEqual(robot.report(), "(2, 2, EAST)")

        # more than board bounds
        robot.place(1, 6, "NORTH")
        self.assertNotEqual(robot.report(), "(1, 6, NORTH)")

        robot.place(0, 0, "NORTH")
        self.assertEqual(robot.report(), "(0, 0, NORTH)")
コード例 #8
0
ファイル: test.py プロジェクト: niroo96/Toy-Robot-Simulator
    def test_example2(self):
        robot = Robot()

        robot.place(0, 0, "NORTH")
        self.assertEqual(robot.report(), "(0, 0, NORTH)")

        robot.left()
        self.assertEqual(robot.report(), "(0, 0, WEST)")

        robot.report()
        self.assertEqual(robot.report(), "(0, 0, WEST)")
コード例 #9
0
ファイル: test.py プロジェクト: niroo96/Toy-Robot-Simulator
    def test_example1(self):
        robot = Robot()

        robot.place(0, 0, "NORTH")
        self.assertEqual(robot.report(), "(0, 0, NORTH)")

        robot.move()
        self.assertEqual(robot.report(), "(0, 1, NORTH)")

        robot.report()
        self.assertEqual(robot.report(), "(0, 1, NORTH)")
コード例 #10
0
ファイル: test.py プロジェクト: niroo96/Toy-Robot-Simulator
    def test_lefttest(self):
        robot = Robot()

        robot.place(4, 4, "EAST")

        # turn around full circle
        robot.left()
        self.assertEqual(robot.report(), "(4, 4, NORTH)")

        robot.left()
        self.assertEqual(robot.report(), "(4, 4, WEST)")

        robot.left()
        self.assertEqual(robot.report(), "(4, 4, SOUTH)")

        robot.left()
        self.assertEqual(robot.report(), "(4, 4, EAST)")
コード例 #11
0
ファイル: test.py プロジェクト: niroo96/Toy-Robot-Simulator
    def test_righttest(self):
        robot = Robot()

        robot.place(0, 3, "EAST")

        # turn around full circle
        robot.right()
        self.assertEqual(robot.report(), "(0, 3, SOUTH)")

        robot.right()
        self.assertEqual(robot.report(), "(0, 3, WEST)")

        robot.right()
        self.assertEqual(robot.report(), "(0, 3, NORTH)")

        robot.right()
        self.assertEqual(robot.report(), "(0, 3, EAST)")
コード例 #12
0
ファイル: test.py プロジェクト: niroo96/Toy-Robot-Simulator
    def test_example3(self):
        robot = Robot()

        robot.place(1, 2, "EAST")
        self.assertEqual(robot.report(), "(1, 2, EAST)")

        robot.move()
        self.assertEqual(robot.report(), "(2, 2, EAST)")

        robot.move()
        self.assertEqual(robot.report(), "(3, 2, EAST)")

        robot.left()
        self.assertEqual(robot.report(), "(3, 2, NORTH)")

        robot.move()
        self.assertEqual(robot.report(), "(3, 3, NORTH)")

        robot.report()
        self.assertEqual(robot.report(), "(3, 3, NORTH)")


# Code by Niroo Arjuna