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)
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"