예제 #1
0
			if handler in gameclients.keys():
				#remove from game
				gamename = gameclients[handler]
				#if a player remove returns true, game is empty, end it
				if games[gamename].remove_player(clients[handler]):
					#remove button from game
					lobby.remove_game(gamename)
					del games[gamename]
				else:
					#update other's boards to reflect missing player
					msg = {'type':'update', 'board':{'players':games[gamename].getasdict('players')}, 'state':games[gamename]._started}
					broadcastGame(gamename, msg, handler)
					
					if not games[gamename]._started:
						if not lobby.has(gamename):
							lobby.add_button(gamename)
					
				del gameclients[handler]
				
				#add to lobby and send initial lobby message
				lobbyclients.append(handler)
				lobbymsg = {'type':'init', 'lobby':lobby.to_list()}
				broadcastLobby(lobbymsg)
			
		else:
			#FOR HANLDER IN LOBBY
			if handler in lobbyclients:
				#lobby.update returns either "Create Game" or "Game# X"
				update = lobby.update(event)
				
				#CREATE GAME GASE