def UpdateWinLoss(self, que):
     wins = self.Decoded(que.removefromq())
     losses = self.Decoded(que.removefromq())
     userID = self.Decoded(que.removefromq())
     dbm = DBManager()
     param = [wins, losses, userID]
     return dbm.updateWinLoss(param)
 def AI_fetch(self, que):#FOR TESTING PURPOSES ONLY
     userID = self.Decoded(que.removefromq())
     pmove = self.Decoded(que.removefromq())
     presult = self.Decoded(que.removefromq())
     moveInfo = [userID, pmove, presult]
     dbm = DBManager()
     return dbm.AI_fetch(moveInfo)
 def UpdateScore(self, que):
     winnerId = self.Decoded(que.removefromq())
     winnerScore = self.Decoded(que.removefromq())
     loserId = self.Decoded(que.removefromq())
     loserScore = self.Decoded(que.removefromq())
     dbm = DBManager()
     param = [winnerId, winnerScore, loserId, loserScore]
     return dbm.updateScore(param)
 def CreateAccount(self, que):
     userName = self.Decoded(que.removefromq())
     print("username = "******"email = " + userEmail)
     userFirstName = self.Decoded(que.removefromq())
     print("firstname = " + userFirstName)
     userLastName = self.Decoded(que.removefromq())
     print("lastname = " + userLastName)
     userPassword = self.Decoded(que.removefromq())
     print("password = " + userPassword)
     userInfo = [userName, userEmail, userPassword, userFirstName, userLastName]
     dbm = DBManager()
     return dbm.CreateAccount(userInfo)
예제 #5
0
    def startMultiplayerSession(self, conn1, conn2):
        conn1ID = int(conn1.recv(1024).decode('ascii'))
        conn2ID = int(conn2.recv(1024).decode('ascii'))
        print(conn1ID)
        print(conn2ID)
        conn1.sendall(str(conn2ID).encode('ascii'))
        conn2.sendall(str(conn1ID).encode('ascii'))
        conn1.sendall("1".encode('ascii'))
        conn2.sendall("1".encode('ascii'))

        print("Multiplayer started")
        conn1wins = 0
        conn2wins = 0
        pconn1move = 4
        pconn2move = 4
        pconn1result = 3
        pconn2result = 3
        round = 1
        while conn1wins < 2 and conn2wins < 2:
            dbmconn1 = DBManager()
            dbmconn2 = DBManager()
            conn1Data = []
            conn2Data = []
            conn1Move = int(conn1.recv(1024))
            conn2Move = int(conn2.recv(1024))
            if conn1Move == conn2Move:
                conn1.sendall("0".encode('ascii'))
                conn2.sendall("0".encode('ascii'))
                conn1Data.append(conn1ID)
                conn1Data.append(pconn1move)
                conn1Data.append(pconn1result)
                conn1Data.append(conn1Move)
                conn1Data.append(2)
                conn1Data.append(round)
                dbmconn1.move_Insert(conn1Data)
                conn2Data.append(conn2ID)
                conn2Data.append(pconn2move)
                conn2Data.append(pconn2result)
                conn2Data.append(conn2Move)
                conn2Data.append(2)
                conn2Data.append(round)
                dbmconn2.move_Insert(conn2Data)
                pconn1move = conn1Move
                pconn2move = conn2Move
                pconn1result = 2
                pconn2result = 2
            elif conn1Move == 1 and conn2Move == 2:
                conn1.sendall("-1".encode('ascii'))
                conn2.sendall("1".encode('ascii'))
                conn1Data.append(conn1ID)
                conn1Data.append(pconn1move)
                conn1Data.append(pconn1result)
                conn1Data.append(conn1Move)
                conn1Data.append(0)
                conn1Data.append(round)
                dbmconn1.move_Insert(conn1Data)
                conn2Data.append(conn2ID)
                conn2Data.append(pconn2move)
                conn2Data.append(pconn2result)
                conn2Data.append(conn2Move)
                conn2Data.append(1)
                conn2Data.append(round)
                dbmconn2.move_Insert(conn2Data)
                pconn1move = conn1Move
                pconn2move = conn2Move
                pconn1result = 0
                pconn2result = 1
                conn2wins += 1
            elif conn1Move == 2 and conn2Move == 3:
                conn1.sendall("-1".encode('ascii'))
                conn2.sendall("1".encode('ascii'))
                conn1Data.append(conn1ID)
                conn1Data.append(pconn1move)
                conn1Data.append(pconn1result)
                conn1Data.append(conn1Move)
                conn1Data.append(0)
                conn1Data.append(round)
                dbmconn1.move_Insert(conn1Data)
                conn2Data.append(conn2ID)
                conn2Data.append(pconn2move)
                conn2Data.append(pconn2result)
                conn2Data.append(conn2Move)
                conn2Data.append(1)
                conn2Data.append(round)
                dbmconn2.move_Insert(conn2Data)
                pconn1move = conn1Move
                pconn2move = conn2Move
                pconn1result = 0
                pconn2result = 1
                conn2wins += 1
            elif conn1Move == 3 and conn2Move == 1:
                conn1.sendall("-1".encode('ascii'))
                conn2.sendall("1".encode('ascii'))
                conn1Data.append(conn1ID)
                conn1Data.append(pconn1move)
                conn1Data.append(pconn1result)
                conn1Data.append(conn1Move)
                conn1Data.append(0)
                conn1Data.append(round)
                dbmconn1.move_Insert(conn1Data)
                conn2Data.append(conn2ID)
                conn2Data.append(pconn2move)
                conn2Data.append(pconn2result)
                conn2Data.append(conn2Move)
                conn2Data.append(1)
                conn2Data.append(round)
                dbmconn2.move_Insert(conn2Data)
                pconn1move = conn1Move
                pconn2move = conn2Move
                pconn1result = 0
                pconn2result = 1
                conn2wins += 1
            elif conn1Move == 1 and conn2Move == 3:
                conn1.sendall("1".encode('ascii'))
                conn2.sendall("-1".encode('ascii'))
                conn1Data.append(conn1ID)
                conn1Data.append(pconn1move)
                conn1Data.append(pconn1result)
                conn1Data.append(conn1Move)
                conn1Data.append(1)
                conn1Data.append(round)
                dbmconn1.move_Insert(conn1Data)
                conn2Data.append(conn2ID)
                conn2Data.append(pconn2move)
                conn2Data.append(pconn2result)
                conn2Data.append(conn2Move)
                conn2Data.append(0)
                conn2Data.append(round)
                dbmconn2.move_Insert(conn2Data)
                pconn1move = conn1Move
                pconn2move = conn2Move
                pconn1result = 1
                pconn2result = 0
                conn1wins += 1
            elif conn1Move == 2 and conn2Move == 1:
                conn1.sendall("1".encode('ascii'))
                conn2.sendall("-1".encode('ascii'))
                conn1Data.append(conn1ID)
                conn1Data.append(pconn1move)
                conn1Data.append(pconn1result)
                conn1Data.append(conn1Move)
                conn1Data.append(1)
                conn1Data.append(round)
                dbmconn1.move_Insert(conn1Data)
                conn2Data.append(conn2ID)
                conn2Data.append(pconn2move)
                conn2Data.append(pconn2result)
                conn2Data.append(conn2Move)
                conn2Data.append(0)
                conn2Data.append(round)
                dbmconn2.move_Insert(conn2Data)
                pconn1move = conn1Move
                pconn2move = conn2Move
                pconn1result = 1
                pconn2result = 0
                conn1wins += 1
            elif conn1Move == 3 and conn2Move == 2:
                conn1.sendall("1".encode('ascii'))
                conn2.sendall("-1".encode('ascii'))
                conn1Data.append(conn1ID)
                conn1Data.append(pconn1move)
                conn1Data.append(pconn1result)
                conn1Data.append(conn1Move)
                conn1Data.append(1)
                conn1Data.append(round)
                dbmconn1.move_Insert(conn1Data)
                conn2Data.append(conn2ID)
                conn2Data.append(pconn2move)
                conn2Data.append(pconn2result)
                conn2Data.append(conn2Move)
                conn2Data.append(0)
                conn2Data.append(round)
                dbmconn2.move_Insert(conn2Data)
                pconn1move = conn1Move
                pconn2move = conn2Move
                pconn1result = 1
                pconn2result = 0
                conn1wins += 1
            round += 1
            print(conn1wins)
            print(conn2wins)

        if conn1wins == 2:
            conn1.sendall("2".encode('ascii'))
            conn2.sendall("-2".encode('ascii'))
            self.messenger.addIpAddress(self.player1Address[0])
            self.messenger.addIpAddress(self.player2Address[0])
        else:
            conn1.sendall("-2".encode('ascii'))
            conn2.sendall("2".encode('ascii'))
            self.messenger.addIpAddress(self.player1Address[0])
            self.messenger.addIpAddress(self.player2Address[0])
 def findFriends(self, que):
     username = self.Decoded(que.removefromq())
     dbm = DBManager()
     return dbm.findFriends(username)
 def addFriend(self, que):
     username1 = self.Decoded(que.removefromq())
     username2 = self.Decoded(que.removefromq())
     twofriends = [username1, username2]
     dbm = DBManager()
     return dbm.addFriend(twofriends)
 def Leaderboard(self, que):
     dbm = DBManager()
     return dbm.leaderboard()
 def Login(self, que):
     userName = self.Decoded(que.removefromq())
     password = self.Decoded(que.removefromq())
     userInfo=[userName, password]
     dbm = DBManager()
     return dbm.Login(userInfo)
 def UpdateAccountInfo(self, que):
     userID = self.Decoded(que.removefromq())
     userName = self.Decoded(que.removefromq())
     dbm = DBManager()
     param = [userName, userID]
     return dbm.updateAccountInfo(param)
    def startSession(self, conn):
        print("started session")
        playerWins = 0
        aiWins = 0
        pmove = 4
        presult = 3
        round = 1

        while (aiWins < 2 and playerWins < 2):
            dbm = DBManager()
            playerMove = 0
            pID = conn.recv(1024)
            playerMove = conn.recv(1024)
            pID = pID.decode('ascii')
            playerMove = playerMove.decode('ascii')
            AI_input = [int(pID), int(pmove), int(presult)]

            aiMove = dbm.AI_fetch(AI_input)
            playerMove = int(playerMove)

            #
            #  AI IMPLEMENTATION HERE TO SELECT MOVE
            #
            #Player Input invalid (Timeout, etc)
            if (playerMove == 0):
                aiWins += 1
                round += 1
            #Player and AI Play same move, round doesn't count
            elif (playerMove == aiMove):
                dbm = DBManager()
                result = 2
                move_Input = []
                move_Input.append(pID)
                move_Input.append(pmove)
                move_Input.append(presult)
                move_Input.append(playerMove)
                move_Input.append(result)
                move_Input.append(round)
                dbm.move_Insert(move_Input)
                pmove = playerMove
                presult = result
                round += 1
            elif (playerMove == 1 and aiMove == 2):  #Player: rock, AI: paper
                dbm = DBManager()
                aiWins += 1
                result = 0
                move_Input = []
                move_Input.append(pID)
                move_Input.append(pmove)
                move_Input.append(presult)
                move_Input.append(playerMove)
                move_Input.append(result)
                move_Input.append(round)
                dbm.move_Insert(move_Input)
                pmove = playerMove
                presult = result
                round += 1
            elif (playerMove == 1
                  and aiMove == 3):  #Player: rock, AI: Scissors
                dbm = DBManager()
                playerWins += 1
                result = 1
                move_Input = []
                move_Input.append(pID)
                move_Input.append(pmove)
                move_Input.append(presult)
                move_Input.append(playerMove)
                move_Input.append(result)
                move_Input.append(round)
                dbm.move_Insert(move_Input)
                pmove = playerMove
                presult = result
                round += 1
            elif (playerMove == 2 and aiMove == 1):  #Player: Paper, AI: Rock
                dbm = DBManager()
                playerWins += 1
                result = 1
                move_Input = []
                move_Input.append(pID)
                move_Input.append(pmove)
                move_Input.append(presult)
                move_Input.append(playerMove)
                move_Input.append(result)
                move_Input.append(round)
                dbm.move_Insert(move_Input)
                pmove = playerMove
                presult = result
                round += 1
            elif (playerMove == 2
                  and aiMove == 3):  #Player: Paper, AI: Scissors
                dbm = DBManager()
                aiWins += 1
                result = 0
                move_Input = []
                move_Input.append(pID)
                move_Input.append(pmove)
                move_Input.append(presult)
                move_Input.append(playerMove)
                move_Input.append(result)
                move_Input.append(round)
                dbm.move_Insert(move_Input)
                pmove = playerMove
                presult = result
                round += 1
            elif (playerMove == 3
                  and aiMove == 1):  #Player: Scissors, AI: Rock
                dbm = DBManager()
                aiWins += 1
                result = 0
                move_Input = []
                move_Input.append(pID)
                move_Input.append(pmove)
                move_Input.append(presult)
                move_Input.append(playerMove)
                move_Input.append(result)
                move_Input.append(round)
                dbm.move_Insert(move_Input)
                pmove = playerMove
                presult = result
                round += 1
            elif (playerMove == 3
                  and aiMove == 2):  #Player: Scissors, AI: Paper
                dbm = DBManager()
                playerWins += 1
                result = 1
                move_Input = []
                move_Input.append(pID)
                move_Input.append(pmove)
                move_Input.append(presult)
                move_Input.append(playerMove)
                move_Input.append(result)
                move_Input.append(round)
                dbm.move_Insert(move_Input)
                pmove = playerMove
                presult = result
                round += 1
            else:
                print("No Move Present")

            print("Player Win: " + str(playerWins))
            print("AI Win: " + str(aiWins))
            if (playerWins < 2 and aiWins < 2):
                conn.sendall("2".encode('ascii'))
                conn.sendall(str(playerWins).encode('ascii'))
                conn.sendall(str(aiWins).encode('ascii'))

            print("send another move!")

            #print("Player move: " + playerMove ". AI move: " + aiMove)

            #conn.sendall(data)
        print("Game Over.")
        if (playerWins == 2):
            print("Player wins")
            return "1"
        else:
            print("AI wins")
            return "0"