def init(self):

        # Load your textures
        self.tex.loadTexture()

        # Load shaders and verify each
        myShaders = shaderSetup(None)
        self.tshader = myShaders.readAndCompile("texture.vert", "texture.frag")
        if self.tshader <= 0:
            print("Error setting up Texture shaders")
            raise Exception("Error setting up Texture Shaders", "fatal")
            sys.exit(1)

        self.pshader = myShaders.readAndCompile("phong.vert", "phong.frag")
        if self.pshader <= 0:
            print("Error setting up Phong shaders")
            raise Exception("Error setting up Phong Shaders", "fatal")
            sys.exit(1)

        self.rshader = myShaders.readAndCompile("rphong.vert", "rphong.frag")
        if self.rshader <= 0:
            print("Error setting up rPhong shaders")
            raise Exception("Error setting up rPhong Shaders", "fatal")
            sys.exit(1)

        self.penshader = myShaders.readAndCompile("pphong.vert", "pphong.frag")
        if self.penshader <= 0:
            print("Error setting up pPhong shaders")
            raise Exception("Error setting up pPhong Shaders", "fatal")
            sys.exit(1)

        # Other OpenGL initialization
        glEnable(GL_DEPTH_TEST)
        glClearColor(0.0, 0.0, 0.0, 0.0)
        glPolygonMode(GL_FRONT_AND_BACK, GL_FILL)
        glClearDepth(1.0)

        # create pyramid
        myShape = pyramid()
        myShape.clear()
        myShape.makePyramid()
        self.tVao = self.createVAO(myShape, self.pshader, self.pyramidBuffers)

        # create rocket
        myShape = rocket()
        myShape.clear()
        myShape.makeRocket()
        self.rVao = self.createVAO(myShape, self.rshader, self.rocketBuffers)

        # create pen
        myShape = pen()
        myShape.clear()
        myShape.makePen()
        self.pVao = self.createVAO(myShape, self.penshader, self.penBuffers)

        # create quad
        myShape = quad()
        myShape.clear()
        myShape.makeQuad()
        self.qVao = self.createVAO(myShape, self.tshader, self.quadBuffers)
 def __init__(self, population, target):
     self.pop_max = population
     self.rockets = []
     self.target = target
     for _ in range(self.pop_max):
         r = rocket(location=Pvector(400, 800), target=self.target)
         self.rockets.append(r)
示例#3
0
    def actionreset_clicked(self):
        print('actionreset_clicked clicked')
        self.mm = mmc.marsmission()
        self.mr = mmr.rocket()

        self.amm = mma.animmm(self.mm)
        self.mm = self.amm.getmarsmission()
        self.mm.rocket = self.mr
示例#4
0
def get_simple_machine():
    #            position                orientation               velocity                  omega                  mass w/0 boosters   lenght  radius
    sm = rocket(np.array([0.0,0.0,5.0]), np.array([0.0,0.0,1.0]), np.array([0.0,0.0,0.0]), np.array([0.0,0.0,0.0]), 100.0, 10.0, 0.5)
    #                name         position               length  radius  cstar frho thrust
    sm.add_booster('Booster1',np.array([0.0,0.0,-5.0]), 60.0, 0.45, 20000.0, 1000.0, 5000000.0)
    #                    name              position              orientation          thrust
    sm.add_stabalizer('StabalizerXP',np.array([0.5,0.0,4.5]), np.array([1.0,0.0,0.0]), 1100.0)
    sm.add_stabalizer('StabalizerXN',np.array([-0.5,0.0,4.5]), np.array([-1.0,0.0,0.0]), 1100.0)
    sm.add_stabalizer('StabalizerYP',np.array([0.0,0.5,4.5]), np.array([0.0,1.0,0.0]), 1100.0)
    sm.add_stabalizer('StabalizerYN',np.array([0.0,-0.5,4.5]), np.array([0.0,-1.0,0.0]), 1100.0)
    sm.update_MOI()
    return sm
示例#5
0
    def drawGraph(self,vectors,specs):
        crashed = False
        thrust = specs['thrust']
        m = specs['baseMass']
        increment = 1 # how many seconds pass every iteration
        tList = []
        posList = []
        aList = []
        vList = [] #outputted values
        #instantiating...
        fuelLeft = 0
        totalMass = 0
        time = 0
        while vectors['t2'] < specs['length']: #How many seconds the program lasts for.
            vectors['t2'] += increment
            time = vectors['t2']
            tList.append(vectors['t2'])

            fuelLeft = rocket().fuelRemaining(time,specs['fuelAmount'],specs['ejectionRate'])
            if fuelLeft == 0: thrust = 0
            totalMass = m + fuelLeft * specs['fuelMass']

            gravAcc = rocket().accDueToGravity(vectors['x2'])
            vectors['a2'] = rocket().acceleration(time,thrust,totalMass,gravAcc)
            aList.append(vectors['a2'])

            vectors.pop('x2',None)
            vectors['x2'] = rocket().position(time,vectors)
            if vectors['x2'] < 0:
                print colored("Your craft has collided with the ground.\n", 'red')
                crashed = True
                break
            posList.append(vectors['x2'])
            vectors['v2'] = rocket().velocity(time,vectors['v2'],vectors['a2'],vectors['a1'])
            vList.append(vectors['v2'])
        if crashed == False:
            self.display('Acceleration','M/S^2',aList,tList)
            self.display('Displacement','M',posList,tList)
            self.display('Velocity','M/S',vList,tList)
            plt.show()
示例#6
0
def mmquickstart():
    mm = mmc.marsmission()
    mr = mmr.rocket()

    mm.control[mmc.ctl.DT] = 100
    print(mm.control[mmc.ctl.DT])
    print(mm.state[mmc.st.VXE])
    print(mm.state[mmc.st.XE])

    amm = mma.animmm(mm)
    mm = amm.getmarsmission()
    mm.rocket = mr

    print(mr.payload)

    print(mm.getallstates())

    return amm, mm, mr
 def create_children(self):
     self.normalize_fitness()
     mating_pool = []
     for i in self.rockets:
         n = int(i.fitness)
         for _ in range(n):
             mating_pool.append(i)
     next_gen = []
     while len(next_gen) < self.pop_max:
         flag = True
         while flag:
             a = np.random.randint(0, len(mating_pool))
             b = np.random.randint(0, len(mating_pool))
             for i in range(len(mating_pool[a].genes.gene)):
                 if mating_pool[a].genes.gene[i] != mating_pool[
                         b].genes.gene[i]:
                     flag = False
                     break
         child = DNA.crossover(mating_pool[a], mating_pool[b])
         child = rocket(location=Pvector(400, 800),
                        target=self.target,
                        genes=child)
         next_gen.append(child)
         self.rockets = next_gen
示例#8
0
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(593, 584)
        self.infile = "mmdata.txt"
        self.outfile = "mmdata.txt"
        self.mm = mmc.marsmission()
        self.mr = mmr.rocket()

        self.amm = mma.animmm(self.mm)
        self.mm = self.amm.getmarsmission()
        self.mm.rocket = self.mr

        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.groupBox = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox.setGeometry(QtCore.QRect(420, 70, 120, 191))
        self.groupBox.setObjectName("groupBox")
        self.rb_sat_rocket = QtWidgets.QRadioButton(self.groupBox)
        self.rb_sat_rocket.setGeometry(QtCore.QRect(20, 90, 82, 17))
        self.rb_sat_rocket.setObjectName("rb_sat_rocket")
        self.rb_sat_mars = QtWidgets.QRadioButton(self.groupBox)
        self.rb_sat_mars.setGeometry(QtCore.QRect(20, 120, 82, 17))
        self.rb_sat_mars.setObjectName("rb_sat_mars")
        self.rb_sat_moon = QtWidgets.QRadioButton(self.groupBox)
        self.rb_sat_moon.setGeometry(QtCore.QRect(20, 60, 82, 17))
        self.rb_sat_moon.setObjectName("rb_sat_moon")
        self.rb_sat_earth = QtWidgets.QRadioButton(self.groupBox)
        self.rb_sat_earth.setGeometry(QtCore.QRect(20, 20, 82, 17))
        self.rb_sat_earth.setObjectName("rb_sat_earth")
        self.rb_sat_sun = QtWidgets.QRadioButton(self.groupBox)
        self.rb_sat_sun.setGeometry(QtCore.QRect(20, 150, 82, 17))
        self.rb_sat_sun.setObjectName("rb_sat_sun")
        self.groupBox_2 = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox_2.setGeometry(QtCore.QRect(430, 350, 121, 121))
        self.groupBox_2.setObjectName("groupBox_2")
        self.pb_sim_start = QtWidgets.QPushButton(self.groupBox_2)
        self.pb_sim_start.setGeometry(QtCore.QRect(20, 20, 75, 23))
        self.pb_sim_start.setObjectName("pb_sim_start")
        self.pb_sim_stop = QtWidgets.QPushButton(self.groupBox_2)
        self.pb_sim_stop.setGeometry(QtCore.QRect(20, 50, 75, 23))
        self.pb_sim_stop.setObjectName("pb_sim_stop")
        self.pb_sim_updatestate = QtWidgets.QPushButton(self.groupBox_2)
        self.pb_sim_updatestate.setGeometry(QtCore.QRect(20, 80, 75, 23))
        self.pb_sim_updatestate.setObjectName("pb_sim_updatestate")
        self.groupBox_3 = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox_3.setGeometry(QtCore.QRect(90, 320, 271, 181))
        self.groupBox_3.setObjectName("groupBox_3")
        self.txted_time = QtWidgets.QTextEdit(self.groupBox_3)
        self.txted_time.setEnabled(False)
        self.txted_time.setGeometry(QtCore.QRect(150, 30, 81, 31))
        self.txted_time.setObjectName("txted_time")
        self.label = QtWidgets.QLabel(self.groupBox_3)
        self.label.setGeometry(QtCore.QRect(50, 30, 71, 16))
        self.label.setObjectName("label")
        self.label_2 = QtWidgets.QLabel(self.groupBox_3)
        self.label_2.setGeometry(QtCore.QRect(40, 80, 101, 20))
        self.label_2.setObjectName("label_2")
        self.txted_timestep = QtWidgets.QTextEdit(self.groupBox_3)
        self.txted_timestep.setEnabled(True)
        self.txted_timestep.setGeometry(QtCore.QRect(150, 80, 81, 31))
        self.txted_timestep.setObjectName("txted_timestep")
        self.txted_timestep.setText("0")
        self.txted_saveinterval = QtWidgets.QTextEdit(self.groupBox_3)
        self.txted_saveinterval.setEnabled(True)
        self.txted_saveinterval.setGeometry(QtCore.QRect(150, 130, 81, 31))
        self.txted_saveinterval.setObjectName("txted_saveinterval")
        self.txted_saveinterval.setText("0")
        self.label_3 = QtWidgets.QLabel(self.groupBox_3)
        self.label_3.setGeometry(QtCore.QRect(40, 130, 101, 20))
        self.label_3.setObjectName("label_3")
        self.groupBox_4 = QtWidgets.QGroupBox(self.centralwidget)
        self.groupBox_4.setGeometry(QtCore.QRect(40, 50, 351, 231))
        self.groupBox_4.setObjectName("groupBox_4")
        self.label_4 = QtWidgets.QLabel(self.groupBox_4)
        self.label_4.setGeometry(QtCore.QRect(30, 50, 21, 16))
        self.label_4.setObjectName("label_4")
        self.txted_x = QtWidgets.QTextEdit(self.groupBox_4)
        self.txted_x.setEnabled(False)
        self.txted_x.setGeometry(QtCore.QRect(50, 40, 81, 31))
        self.txted_x.setObjectName("txted_x")
        self.label_5 = QtWidgets.QLabel(self.groupBox_4)
        self.label_5.setGeometry(QtCore.QRect(140, 50, 21, 16))
        self.label_5.setObjectName("label_5")
        self.label_6 = QtWidgets.QLabel(self.groupBox_4)
        self.label_6.setGeometry(QtCore.QRect(180, 50, 21, 16))
        self.label_6.setObjectName("label_6")
        self.txted_y = QtWidgets.QTextEdit(self.groupBox_4)
        self.txted_y.setEnabled(False)
        self.txted_y.setGeometry(QtCore.QRect(200, 40, 81, 31))
        self.txted_y.setObjectName("txted_y")
        self.label_7 = QtWidgets.QLabel(self.groupBox_4)
        self.label_7.setGeometry(QtCore.QRect(290, 50, 21, 16))
        self.label_7.setObjectName("label_7")
        self.txted_vy = QtWidgets.QTextEdit(self.groupBox_4)
        self.txted_vy.setEnabled(False)
        self.txted_vy.setGeometry(QtCore.QRect(200, 100, 81, 31))
        self.txted_vy.setObjectName("txted_vy")
        self.label_8 = QtWidgets.QLabel(self.groupBox_4)
        self.label_8.setGeometry(QtCore.QRect(30, 110, 21, 20))
        self.label_8.setObjectName("label_8")
        self.label_9 = QtWidgets.QLabel(self.groupBox_4)
        self.label_9.setGeometry(QtCore.QRect(180, 110, 21, 16))
        self.label_9.setObjectName("label_9")
        self.txted_vx = QtWidgets.QTextEdit(self.groupBox_4)
        self.txted_vx.setEnabled(False)
        self.txted_vx.setGeometry(QtCore.QRect(50, 100, 81, 31))
        self.txted_vx.setObjectName("txted_vx")
        self.label_10 = QtWidgets.QLabel(self.groupBox_4)
        self.label_10.setGeometry(QtCore.QRect(140, 110, 21, 16))
        self.label_10.setObjectName("label_10")
        self.label_11 = QtWidgets.QLabel(self.groupBox_4)
        self.label_11.setGeometry(QtCore.QRect(290, 110, 21, 16))
        self.label_11.setObjectName("label_11")
        self.txted_fy = QtWidgets.QTextEdit(self.groupBox_4)
        self.txted_fy.setEnabled(True)
        self.txted_fy.setGeometry(QtCore.QRect(200, 160, 81, 31))
        self.txted_fy.setObjectName("txted_fy")
        self.txted_fy.setText("0")
        self.label_12 = QtWidgets.QLabel(self.groupBox_4)
        self.label_12.setGeometry(QtCore.QRect(30, 170, 21, 16))
        self.label_12.setObjectName("label_12")
        self.label_13 = QtWidgets.QLabel(self.groupBox_4)
        self.label_13.setGeometry(QtCore.QRect(180, 170, 21, 16))
        self.label_13.setObjectName("label_13")
        self.txted_fx = QtWidgets.QTextEdit(self.groupBox_4)
        self.txted_fx.setEnabled(True)
        self.txted_fx.setGeometry(QtCore.QRect(50, 160, 81, 31))
        self.txted_fx.setObjectName("txted_fx")
        self.txted_fx.setText("0")
        self.label_14 = QtWidgets.QLabel(self.groupBox_4)
        self.label_14.setGeometry(QtCore.QRect(140, 170, 21, 16))
        self.label_14.setObjectName("label_14")
        self.label_15 = QtWidgets.QLabel(self.groupBox_4)
        self.label_15.setGeometry(QtCore.QRect(290, 170, 21, 16))
        self.label_15.setObjectName("label_15")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 593, 21))
        self.menubar.setObjectName("menubar")
        self.menuFile = QtWidgets.QMenu(self.menubar)
        self.menuFile.setObjectName("menuFile")
        self.menuSimulation = QtWidgets.QMenu(self.menubar)
        self.menuSimulation.setObjectName("menuSimulation")
        self.menuOrbitProperties = QtWidgets.QMenu(self.menubar)
        self.menuOrbitProperties.setObjectName("menuOrbitProperties")
        self.menuRocket = QtWidgets.QMenu(self.menubar)
        self.menuRocket.setObjectName("menuRocket")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)
        self.actionOpen = QtWidgets.QAction(MainWindow)
        self.actionOpen.setObjectName("actionOpen")
        self.actionSave = QtWidgets.QAction(MainWindow)
        self.actionSave.setObjectName("actionSave")
        self.actionInitialise = QtWidgets.QAction(MainWindow)
        self.actionInitialise.setObjectName("actionInitialise")
        self.actionReset = QtWidgets.QAction(MainWindow)
        self.actionReset.setObjectName("actionReset")
        self.actionDistance = QtWidgets.QAction(MainWindow)
        self.actionDistance.setObjectName("actionDistance")
        self.actionSpeeds = QtWidgets.QAction(MainWindow)
        self.actionSpeeds.setObjectName("actionSpeeds")
        self.actionAngles = QtWidgets.QAction(MainWindow)
        self.actionAngles.setObjectName("actionAngles")
        self.actionProperties = QtWidgets.QAction(MainWindow)
        self.actionProperties.setObjectName("actionProperties")
        self.actionPayload = QtWidgets.QAction(MainWindow)
        self.actionPayload.setObjectName("actionPayload")
        self.menuFile.addAction(self.actionOpen)
        self.menuFile.addAction(self.actionSave)
        self.menuSimulation.addAction(self.actionInitialise)
        self.menuSimulation.addAction(self.actionReset)
        self.menuOrbitProperties.addAction(self.actionDistance)
        self.menuOrbitProperties.addAction(self.actionSpeeds)
        self.menuOrbitProperties.addAction(self.actionAngles)
        self.menuRocket.addAction(self.actionProperties)
        self.menuRocket.addAction(self.actionPayload)
        self.menubar.addAction(self.menuFile.menuAction())
        self.menubar.addAction(self.menuSimulation.menuAction())
        self.menubar.addAction(self.menuOrbitProperties.menuAction())
        self.menubar.addAction(self.menuRocket.menuAction())

        self.pb_sim_start.clicked.connect(self.pb_sim_start_clicked)
        self.pb_sim_stop.clicked.connect(self.pb_sim_stop_clicked)
        self.pb_sim_updatestate.clicked.connect(
            self.pb_sim_updatestate_clicked)

        self.rb_sat_earth.clicked.connect(self.rb_sat_earth_clicked)
        self.rb_sat_moon.clicked.connect(self.rb_sat_moon_clicked)
        self.rb_sat_rocket.clicked.connect(self.rb_sat_rocket_clicked)
        self.rb_sat_mars.clicked.connect(self.rb_sat_mars_clicked)
        self.rb_sat_sun.clicked.connect(self.rb_sat_sun_clicked)

        self.actionOpen.triggered.connect(self.actionopen_clicked)
        self.actionSave.triggered.connect(self.actionsave_clicked)
        self.actionInitialise.triggered.connect(self.actioninitialise_clicked)
        self.actionReset.triggered.connect(self.actionreset_clicked)
        self.actionDistance.triggered.connect(self.actiondistance_clicked)
        self.actionSpeeds.triggered.connect(self.actionspeeds_clicked)
        self.actionAngles.triggered.connect(self.actionangles_clicked)
        self.actionProperties.triggered.connect(self.actionproperties_clicked)
        self.actionPayload.triggered.connect(self.actionpayload_clicked)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)
示例#9
0
import animmm as mma  #marstest animation class
import rocket as mmr

mm = mmc.marsmission()
amm = mma.animmm(mm)
#mm=amm.getmarsmission()

#print(mm.getallstates())

#print(mm.control)

mm.state[mmc.ctl.DT] = 2000

mm.control[mmc.ctl.FX] = -.001
mm.control[mmc.ctl.FY] = -.001

rock = mmr.rocket()

mm.rocket = rock
print(rock)

print(rock.payload)
print(rock.mass)
print(rock.rockprop)

mm.updaterocket()
print(rock.payload)
#print(rock.mass)

#amm.startanimation()
示例#10
0
def ingame(surface: pygame.surface.Surface):
    """
    Create the asteroids
    Initialise necessary variables
    """
    asteroid_count = 8
    clock = pygame.time.Clock()
    font = pygame.font.Font("ARCADECLASSIC.TTF", 48)
    score = 0
    score_img = font.render(str(score), True, (200, 200, 200),
                            background_color)
    score_rect = score_img.get_rect()
    score_rect.topright = (constants.window_width - 30, 30)
    asteroids_group = pygame.sprite.Group()
    for i in range(0, asteroid_count):
        tmp_start_vel = [0, 0]
        tmp_start_pos = [0, 0]
        if numpy.random.random() < 0.5:
            tmp_start_pos = [
                -constants.asteroid_radius,
                constants.window_height * (0.1 + numpy.random.random() * 0.8)
            ]
            tmp_start_vel = [constants.asteroid_start_vel, 0]
        else:
            tmp_start_pos = [
                constants.window_width + constants.asteroid_radius,
                constants.window_height * numpy.random.random()
            ]
            tmp_start_vel = [-constants.asteroid_start_vel, 0]
        tmp = asteroid.asteroid(
            asteroid_count, numpy.array(tmp_start_pos),
            constants.generalise_height(constants.asteroid_radius),
            numpy.array(tmp_start_vel))
        asteroids_group.add(tmp)
    player = rocket.rocket()
    bullets = []
    parent = None
    parent_qual = 0
    last_best_check_tick = -1000

    is_running = True
    while is_running:
        """
        Calculate the time taken for the previous frame and cap FPS to 60
        """
        dt = clock.tick(60) / 1000.0
        """
        Handle input and quit events
        """
        for event in pygame.event.get():
            if event.type == pygame.QUIT:
                return GAME_STATES.QUIT
            elif event.type == pygame.KEYUP:
                if event.key == pygame.K_ESCAPE:
                    ret = pause_menu(surface)
                    if ret != GAME_STATES.IN_GAME:
                        return ret
        """
        If the player is dead, display the game over menu
        """
        if player.status == rocket.ROCKET_STATUS.DEAD:
            return game_over_menu(surface, score)
        """
        Update positions and velocities of bullets, asteroids and player
        """
        asteroids_group.update(asteroids_group, player, dt, bullets)
        player.update(asteroids_group, dt, bullets)
        for i in range(0, len(bullets)):
            bullets[i].update(dt)
        """
        Remove destroyed asteroids,
        and create new ones if necessary
        """
        to_be_removed = []
        if parent is None:
            parent = asteroids_group.sprites()[0]
            parent_qual = calc_quality(parent)
        for a in asteroids_group:
            qual = calc_quality(a)
            if qual > parent_qual:
                parent = a
                parent_qual = qual
        for ast in asteroids_group:
            if ast.status == asteroid.ASTEROID_STATUS.DESTROYED:
                to_be_removed.append(ast)
                if ast.destroyed_by_player:
                    """
                    Increment the score and update the score display
                    if an asteroid has been destroyed by the player
                    """
                    score += 1
                    score_img = font.render(str(score), True, (200, 200, 200),
                                            background_color)
                    score_rect = score_img.get_rect()
                    score_rect.topright = (constants.window_width - 30, 30)
        for r in to_be_removed:
            asteroids_group.remove(r)
            tmp_start_vel = [0, 0]
            tmp_start_pos = [0, 0]
            if numpy.random.random() < 0.5:
                tmp_start_pos = [
                    0 - constants.asteroid_radius, constants.window_height *
                    (0.1 + numpy.random.random() * 0.8)
                ]
                tmp_start_vel = [constants.asteroid_start_vel, 0]
            else:
                tmp_start_pos = [
                    constants.window_width + constants.asteroid_radius,
                    constants.window_height * numpy.random.random()
                ]
                tmp_start_vel = [-constants.asteroid_start_vel, 0]
            tmp = asteroid.asteroid(
                asteroid_count, numpy.array(tmp_start_pos),
                constants.generalise_height(constants.asteroid_radius),
                numpy.array(tmp_start_vel))
            tmp.evolve_from(parent)
            asteroids_group.add(tmp)
        to_be_removed = []
        """
        Clear the background and draw the player, asteroids
        and the bullets
        """
        surface.fill(background_color)
        for i in range(0, len(bullets)):
            pos = bullets[i].position
            if pos[0] < 0 or pos[0] > constants.window_width or pos[1] < 0 or\
               pos[1] > constants.window_height:
                to_be_removed.append(bullets[i])
            bullets[i].draw(surface)
        for i in to_be_removed:
            bullets.remove(i)
        asteroids_group.draw(surface)
        surface.blit(player.image, player.rect)
        surface.blit(score_img, score_rect)

        pygame.display.update()
示例#11
0
def upload():
    global ans

    products = User_Products

    if request.method == 'POST':
        if request.form.get('Do_something'):
            pro = request.form.get('Do_something')
            pro = pro.split("  ")
            for i in pro:
                print(i)

            user_id = products.insert_one({
                "email": session["username"],
                "product_name": pro[0],
                "price": pro[1],
                "product_link": pro[2],
                "img_link": pro[3],
                "web_img": pro[4]
            })
            if user_id:
                print("Inserted")
            flash('Product added to track', 'success')
            return render_template('Result.html', dictionary=ans)
        else:
            query = request.form['query']
            category = request.form['category']
            print(query)
            print(category)
            query = query.lower()
            check_product = check_pro(query, category)

            if check_product:
                products = Products
                pid = products.find({"query": query, "category": category})

                answer = {}
                y = {}
                for doc in pid:
                    y = doc
                    key = y["title"]
                    answer.setdefault(key, [])
                    answer[key].append(y["price"])
                    answer[key].append(y["link"])
                    answer[key].append(y["image"])
                    answer[key].append(y["shop_image"])

            else:
                if (category == "Grocery"):
                    df1 = daraz.daraz(query)
                    answer = dict(df1)
                    answer.update(yayvo.yayvo(query))
                    answer.update(hummart.hummart(query))
                    #print(answer)
                elif (category == "Mobile and Tablets"
                      or category == "Laptop and Desktop"):
                    df1 = daraz.daraz(query)
                    answer = dict(df1)
                    answer.update(yayvo.yayvo(query))
                    answer.update(goto.goto(query))
                    #answer.update(ishopping.ishopping(driver,query))
                    answer.update(mega.mega(query))
                    answer.update(rocket.rocket(query))
                    answer.update(itshop.itshop(query))
                    answer.update(symbios.symbios(query))
                else:
                    #answer.update(shophive.shophive(driver,query))
                    df1 = daraz.daraz(query)
                    answer = dict(df1)
                    answer.update(rocket.rocket(query))
                    answer.update(yayvo.yayvo(query))
                    answer.update(goto.goto(query))
                    #answer.update(ishopping.ishopping(driver,query))

            ans = answer
            ans = sorted(ans.items(), key=lambda e: e[1][0])
            ans = dict(ans)
            store_product(ans, query, category)
            return render_template('Result.html', dictionary=ans)
示例#12
0
def main():
    specs = rocket().getSpecs()
    variables = rocket().deriveVectors(specs)
    graph().drawGraph(variables,specs)