Ejemplo n.º 1
0
	def __init__(self):
			self.num_of_clients = 0
			self.clients = []

			# Defining server address and port
			# 'localhost' or '127.0.0.1' or '' are all same
			self.host = '127.0.0.1'
			self.host = self.get_ip()
			# Use port > 1024, below it all are reserved
			self.port = 1234

			# Creating socket object
			sock = socket()

			# Binding socket to a address. bind() takes tuple of host and port.
			try:
				sock.bind((self.host, self.port))
			except Exception as msg:
					print "Could not start server.\n", msg
					print "Restarting the game."
					main.Begin()
					sys.exit()

		# Listening at the address, 5 denotes the number of clients can queue
			sock.listen(5)

			start_new_thread(self.server_thread, (sock, ))
Ejemplo n.º 2
0
    def recv(self, clientSocket):

        jsonData = clientSocket.recv(4196)
        if not jsonData:
            print "No data received from server.\nRestarting Game."
            main.Begin()
            sys.exit()

        data = jsonData.split("::")
        jsonCards = data[0]
        self.exTurn = self.turn  #Keeping last player's turn
        self.myTurn = int(data[1])
        jsonPlayers = data[2]
        jsonTblCards = data[3]
        jsonThings = data[4]
        self.winners = data[5]

        self.myCards = json.loads(jsonCards)
        self.tableCards = json.loads(jsonTblCards)
        self.winners = json.loads(self.winners)
        self.things = json.loads(jsonThings)
        self.turn = int(self.things[0])
        self.numberOfPlayers = int(self.things[1])
        self.exPot = self.pot  #Keeping the previous round's pot
        self.pot = int(self.things[2])
        self.toCallAmount = int(self.things[3])
        self.infoFlag = int(self.things[4])
        self.winCards = self.things[5]
        self.maxBet = self.things[6]
        self.resultRating = int(self.things[7])

        jsonPlayers = json.loads(jsonPlayers)
        self.players = {0: []}
        for key in jsonPlayers:
            obj = player.Player(jsonPlayers[key]['turn'],
                                jsonPlayers[key]['name'])
            obj.fold = jsonPlayers[key]['fold']
            obj.pot = jsonPlayers[key]['pot']
            obj.money = jsonPlayers[key]['money']
            obj.currentRoundBet = jsonPlayers[key]['currentRoundBet']
            obj.isActive = jsonPlayers[key]['isActive']

            self.players[key] = obj

        self.NAMES = []
        self.MONEY = []
        self.ROUNDBET = []
        for o in range(self.numberOfPlayers):
            self.NAMES.append(self.players[str(o)].name)
            self.MONEY.append("$" + str(self.players[str(o)].money))
            self.ROUNDBET.append("$" +
                                 str(self.players[str(o)].currentRoundBet))
Ejemplo n.º 3
0
    def __init__(self):

        self.num_of_clients = 0
        self.clients = []

        # Defining server address and port

        self.host = '127.0.0.1'  #'localhost' or '127.0.0.1' or '' are all same
        self.host = self.get_ip()
        self.port = 1234  #Use port > 1024, below it all are reserved

        #Creating socket object
        sock = socket()

        #Binding socket to a address. bind() takes tuple of host and port.
        try:
            sock.bind((self.host, self.port))
        except Exception as msg:
            print "Could not start server.\n", msg
            print "Restarting the game."
            main.Begin()
            sys.exit()

        #print self.get_ip()
        #print self.get_port()
        #print self.get_num_of_clients()
        #print([l for l in ([ip for ip in socket.gethostbyname_ex(socket.gethostname())[2] if not ip.startswith("127.")][:1], [[(s.connect(('8.8.8.8', 80)), s.getsockname()[0], s.close()) for s in [socket.socket(socket.AF_INET, socket.SOCK_DGRAM)]][0][1]]) if l][0][0])

        #self.clients.append(sock)

        #Listening at the address
        sock.listen(5)  #5 denotes the number of clients can queue

        #t1 = Thread(target=self.serverthread, args=(scriptA + argumentsA))

        start_new_thread(self.server_thread, (sock, ))
Ejemplo n.º 4
0
    def main(self, clientSocket, screen):

        self.turn = -1
        self.pot = 0
        g = Graphics()

        while 1:

            self.recv(clientSocket)
            self.update_game()
            g.order_players(self.myTurn, self.numberOfPlayers)
            g.init_gui(screen, self.myTurn, self.turn, self.numberOfPlayers,
                       self.myCards, self.infoFlag, self.MONEY, self.NAMES,
                       self.ROUNDBET)
            self.update_screen(screen, g)

            if self.myTurn == self.turn:

                g.create_buttons(screen,
                                 self.toCallAmount)  #Creating all 4 buttons
                slider1 = mygui.Slider(
                    screen, (450, 450),
                    (self.toCallAmount,
                     self.maxBet))  #Creating the raise slider

                pygame.display.update()  #Displaying the buttons

                quit = False
                while not quit:
                    for event in pygame.event.get():
                        if event.type == QUIT:
                            pygame.quit()
                            sys.exit()

                        #Slider event handle
                        slider1.event_slider(event, pygame.mouse.get_pos())
                        slider1.slider_update(screen)

                        #Mouse Hover handling
                        g.mouse_hover(screen, self.toCallAmount)

                        #Mouse click handling
                        isSend, state = g.mouse_click(screen, event,
                                                      self.toCallAmount,
                                                      self.maxBet,
                                                      slider1.getValue())

                        #Sending data if button clicked
                        if isSend == True:
                            data = clientSocket.send(str(state))
                            if not data:
                                print "Server not receiving data.\nRestarting Game."
                                main.Begin()
                                sys.exit()

                            quit = True
                            break

            else:
                g.remove_buttons(screen)
                g.create_transparent_buttons(screen)
                g.slider_remove(screen)

                pygame.display.update()

            g.end_hand(screen, self.infoFlag, self.winners, self.winCards,
                       self.resultRating)  #Result and winner display
            pygame.display.update()
Ejemplo n.º 5
0
	def recv(self, clientSocket):
		#cls()

		jsonData = clientSocket.recv(4196)
		if not jsonData:
			print "No data received from server.\nRestarting Game."
			main.Begin()
			sys.exit()

		data = jsonData.split("::")
		jsonCards = data[0]
		self.exTurn = self.turn  #Keeping last player's turn
		self.myTurn = int(data[1])
		jsonPlayers = data[2]
		jsonTblCards= data[3]
		jsonThings = data[4]
		self.winners = data[5]

		self.myCards = json.loads(jsonCards)
		self.tableCards = json.loads(jsonTblCards)
		self.winners = json.loads(self.winners)
		self.things = json.loads(jsonThings)
		self.turn = int(self.things[0])
		self.numberOfPlayers = int(self.things[1])
		self.exPot = self.pot    #Keeping the previous round's pot
		self.pot = int(self.things[2])
		self.toCallAmount = int(self.things[3])
		self.infoFlag = int(self.things[4])
		self.winCards = self.things[5]
		self.maxBet = self.things[6]
		self.resultRating = int(self.things[7])

		#print 'my cards :', self.myCards

		print 'My Cards'
		print '========================='
		for x in self.myCards:
			if x[0] == 'S':
				print 'Spade   : ', u'\u2660',  
			elif x[0] == 'H':
				print 'Heart   : ', u'\u2665',
			elif x[0] == 'D':
				print 'Diamond : ', u'\u2666',
			elif x[0] == 'C':
				print 'Club    : ', u'\u2663',
			if x[1] < 11:
				print x[1]
			elif x[1] == 11:
				print 'Jack'
			elif x[1] == 12:
				print 'Queen'
			elif x[1] == 13:
				print 'King'
			elif x[1] == 14:
				print 'A'
		print '-------------------------'

		print 'Table Cards'
		print '-------------------------'
		for x in self.tableCards:
			if x[0] == 'S':
				print 'Spade   : ', u'\u2660',  
			elif x[0] == 'H':
				print 'Heart   : ', u'\u2665',
			elif x[0] == 'D':
				print 'Diamond : ', u'\u2666',
			elif x[0] == 'C':
				print 'Club    : ', u'\u2663',
			if x[1] < 11:
				print x[1]
			elif x[1] == 11:
				print 'Jack'
			elif x[1] == 12:
				print 'Queen'
			elif x[1] == 13:
				print 'King'
			elif x[1] == 14:
				print 'A'
		print '========================='

		print 'turn : ', self.turn
		#cls()

		jsonPlayers = json.loads(jsonPlayers)
		self.players = {0:[]}
		for key in jsonPlayers:
			obj = player.Player(jsonPlayers[key]['turn'], jsonPlayers[key]['name'])
			obj.fold = jsonPlayers[key]['fold']
			obj.pot = jsonPlayers[key]['pot']
			obj.money = jsonPlayers[key]['money']
			obj.currentRoundBet = jsonPlayers[key]['currentRoundBet']
			obj.isActive = jsonPlayers[key]['isActive']

			self.players[key] = obj

		self.NAMES = []
		self.MONEY = []
		self.ROUNDBET = []
		for o in range(self.numberOfPlayers):
			self.NAMES.append(self.players[str(o)].name)
			self.MONEY.append("$"+str(self.players[str(o)].money))
			self.ROUNDBET.append("$"+str(self.players[str(o)].currentRoundBet))
Ejemplo n.º 6
0
	def main(self, clientSocket, screen):

		self.turn = -1
		self.pot = 0
		g = Graphics()

		while 1:

			self.recv(clientSocket)
			self.update_game()
			g.order_players(self.myTurn, self.numberOfPlayers)
			g.init_gui(screen, self.myTurn, self.turn, self.numberOfPlayers, self.myCards, self.infoFlag, self.MONEY, self.NAMES, self.ROUNDBET)
			self.update_screen(screen, g)

			move_input = raw_input("[C]all $" + str(self.toCallAmount) + " , [f]old, [a]ll-in, [r]aise, [q]uit")



					 



			if self.myTurn == self.turn:

				g.create_buttons(screen, self.toCallAmount) #Creating all 4 buttons
				#slider1 = mygui.Slider(screen,(450,450),(self.toCallAmount, self.maxBet))    #Creating the raise slider

				pygame.display.update() #Displaying the buttons


				#Slider event handle
				#slider1.event_slider(event, pygame.mouse.get_pos())
				#slider1.slider_update(screen)
				print '@@@@@@@@@@@@@@@@@@'
				state = None
				if move_input == "q" or move_input == "Q":
					pygame.quit()
					sys.exit()

				elif move_input == "c" or move_input == "C":
					state = self.toCallAmount

				elif move_input == "f" or move_input == "F":
					state = -1

				elif move_input == "a" or move_input == "A":
					state = self.maxBet

				elif move_input == "r" or move_input == "R":
					raiseValue = int(raw_input("enter a no between "+str(self.toCallAmount)+" and "+str(self.maxBet) + ": "))
					state = raiseValue  

				#Mouse Hover handling
				g.mouse_hover(screen, self.toCallAmount)
				print self.toCallAmount, '_____________'
				#Mouse click handling
				#isSend, state = g.mouse_click(screen, event, self.toCallAmount, self.maxBet, slider1.getValue())
				#print '************', slider1.getValue()
				#print state, '$$$$$$$$$$$$', isSend,'****#######'
				#Sending data if button clicked
				data = clientSocket.send(str(state))
				if not data:
					print "Server not receiving data.\nRestarting Game."
					main.Begin()
					sys.exit()


			else:
				g.remove_buttons(screen)
				g.create_transparent_buttons(screen)
				g.slider_remove(screen)

				pygame.display.update()

			g.end_hand(screen, self.infoFlag, self.winners, self.winCards, self.resultRating)   #Result and winner display
			pygame.display.update()