Пример #1
0
class Action(object):
    
    def __init__(self, voiture_id, startposition, map):
        self.position = startposition
        self.voiture = Voiture(voiture_id, startposition)
        self.map = map
    
    def get_vision(self, x, y):
        #voiture_position = self.voiture.position()
        #position = Position(voiture_position.x + x, voiture_position.y + y)
        hypotenus = math.sqrt(x*x + y*y)
        angleVison= math.acos(x/hypotenus)
        if y <0:
            angleVison = angleVison*-1
        
        radian_angle = math.radians(self.voiture._angle)
        pos_voiture_X = self.voiture.position.x + int(round((hypotenus*10) * math.cos(radian_angle+ angleVison)))
        pos_voiture_Y = self.voiture.position.y + int(round((hypotenus*10) * math.sin(radian_angle+ angleVison)))
        
        posX = int(round(pos_voiture_X/10))
        posY = int(round(pos_voiture_Y/10))
        if posX >= 0 and posY >= 0 and posX < 80 and posY < 60:
            posX = str(posX)
            posY = str(posY)
            CaseValue = self.map['cases'][posY][posX]
            if CaseValue == 2:
                CaseValue = CaseValue 
            return CaseValue
        else:
            return -1
        
    def tourner_voiture(self):
        angle = self.voiture.tourner()
        return angle
        
        
    def accelerer_voiture(self, acceleration):
        vitesse = self.voiture.accelerer(acceleration)
        return vitesse
        
        
    def tourner_volant_voiture(self, angle_volant):
        angle_volant = self.voiture.angle_volant = angle_volant
        return angle_volant
    
    def get_vitesse(self):
        return self.voiture.get_vitesse
Пример #2
0
 def __init__(self, voiture_id, startposition, map):
     self.position = startposition
     self.voiture = Voiture(voiture_id, startposition)
     self.map = map
Пример #3
0
 def setUp(self):
     position = {"x":0,"y":0}
     self.voiture = Voiture(1,position)
     self.voiture.angle_volant = 300
Пример #4
0
 def test_angle_volant(self):
     self.assertEqual(self.voiture.angle_volant, Voiture.angle_volant_max(), "test angle volant : echec")
Пример #5
0
class TestVoitureFunctions(unittest.TestCase):
    
    
    def setUp(self):
        position = {"x":0,"y":0}
        self.voiture = Voiture(1,position)
        self.voiture.angle_volant = 300
        
        
    def test_voiture_ctr(self):
        self.assertIsInstance(self.voiture, Voiture, "test instanciation voiture : echec")
        
        
    def test_angle_volant(self):
        self.assertEqual(self.voiture.angle_volant, Voiture.angle_volant_max(), "test angle volant : echec")
        
        
    def test_tourner_voiture(self):
        self.voiture.tourner()
        self.voiture.tourner()
        self.assertEqual(self.voiture._angle, 60, "test angle voiture : echec")
        
        
    def test_accelerer_voiture(self):
        self.test_tourner_voiture()

        self.voiture.accelerer(2.0)
        self.voiture.accelerer(1.8)
        self.voiture.accelerer(1.6)
        self.voiture.accelerer(2)
        
        self.assertAlmostEqual(self.voiture._vitesse, 11.52, None, "test vitesse voiture (acceleration) : echec", 0.0000001)
        
        
    def test_freiner_voiture(self):
        self.voiture.accelerer(2.0)
        self.voiture.accelerer(2.0)
        self.voiture.accelerer(0.6)
        
        self.assertAlmostEqual(self.voiture._vitesse, 2.4, None, "test vitesse voiture (freinage) : echec", 0.0000001)
        
        
    def test_avancer_voiture(self):
        self.voiture.accelerer(2.0)
        self.voiture.accelerer(2.0)
        self.voiture.accelerer(2.0)
        self.voiture.accelerer(2.0)
        
        self.voiture.tourner()
        self.voiture.avancer()
        
        self.assertEqual(self.voiture._position, {'y':8, 'x':14}, "test position voiture : echec")