예제 #1
0
    def test_loseGameCorrectlyUpdatesWinnerStats(self):
        file = open('gunid', 'r+')
        file.truncate()
        file.write(
            "# User Identification File.\n# Change gunid and username.\n# Rename file to gunid.\ngunid=3\nusername=Benjamin\n"
        )
        file.close()
        gun = Gun()
        gun.readIDFile()

        file = open('gunid', 'r+')
        file.truncate()
        file.write(
            "# User Identification File.\n# Change gunid and username.\n# Rename file to gunid.\ngunid=4\nusername=Thomas\n"
        )
        file.close()
        gun2 = Gun()
        gun2.readIDFile()

        mydb = connect.connect()
        cursor = mydb.cursor()
        sql = "INSERT INTO Games (current_state, winner, game_date) VALUES (2, 0, (NOW() - INTERVAL 4 HOUR + INTERVAL 11 MINUTE - INTERVAL 22 SECOND))"
        cursor.execute(sql)
        mydb.commit()

        sql = "SELECT * FROM Guns WHERE gun=3"
        cursor.execute(sql)
        myresult = cursor.fetchall()
        oldGunWins = myresult[0][1]

        sql = "SELECT * FROM Players WHERE username='******'"
        cursor.execute(sql)
        myresult = cursor.fetchall()
        oldPlayerWins = myresult[0][1]

        gun.joinGame()
        gun2.joinGame()
        gun2.loseGame()

        sql = "SELECT * FROM Guns WHERE gun=3"
        cursor.execute(sql)
        myresult = cursor.fetchall()
        newGunWins = myresult[0][1]

        sql = "SELECT * FROM Players WHERE username='******'"
        cursor.execute(sql)
        myresult = cursor.fetchall()
        newPlayerWins = myresult[0][1]

        self.assertEqual((oldGunWins + 1), newGunWins)
        self.assertEqual((oldPlayerWins + 1), newPlayerWins)

        mydb.close()
예제 #2
0
    def test_loseGameReturnsTrueWhenThereIsAnOpponentInGame(self):
        file = open('gunid', 'r+')
        file.truncate()
        file.write(
            "# User Identification File.\n# Change gunid and username.\n# Rename file to gunid.\ngunid=3\nusername=Benjamin\n"
        )
        file.close()
        gun = Gun()
        gun.readIDFile()

        file = open('gunid', 'r+')
        file.truncate()
        file.write(
            "# User Identification File.\n# Change gunid and username.\n# Rename file to gunid.\ngunid=4\nusername=Thomas\n"
        )
        file.close()
        gun2 = Gun()
        gun2.readIDFile()

        mydb = connect.connect()
        cursor = mydb.cursor()
        sql = "INSERT INTO Games (current_state, winner, game_date) VALUES (2, 0, (NOW() - INTERVAL 4 HOUR + INTERVAL 11 MINUTE - INTERVAL 22 SECOND))"
        cursor.execute(sql)
        mydb.commit()

        gun.joinGame()
        gun2.joinGame()

        self.assertTrue(gun2.loseGame())

        mydb.close()
예제 #3
0
    def test_loseGameReturnsFalseWhenThereIsNoActiveGame(self):
        file = open('gunid', 'r+')
        file.truncate()
        file.write(
            "# User Identification File.\n# Change gunid and username.\n# Rename file to gunid.\ngunid=3\nusername=Benjamin\n"
        )
        file.close()
        gun = Gun()
        gun.readIDFile()

        self.assertFalse(gun.loseGame())
예제 #4
0
        while inGame:
            if hp == 3:
                led.toggleLED('green')
                led.setLED('red', 'off')
            elif hp == 2:
                led.toggleLED('green')
                led.setLED('red', 'on')
            else:
                led.toggleLED('green')
                led.toggleLED('red')

            code = lirc.nextcode()
            if code and code[0] != "Shot" + str(gun.id).zfill(2):
                #we got hit by something
                print(str(datetime.datetime.now()), "Got hit by " + str(code))
                hp -= 1
                if hp == 0:
                    gun.loseGame()
                    led.setLED('red', 'on')
                    led.setLED('green', 'off')
                    inGame = False
            stillActive = gun.checkGame()
            if stillActive == False:
                inGame = False
                led.setLED('red', 'off')
                led.setLED('green', 'on')
            sleep(0.1)

finally:
    pass