def create_server(self,s_name,field_xy): if global_state == 0 or shut_down_level != 0: return ChooseType.button4.config(state="disabled") # addition game field size check GameWindow.vSer.set(s_name) m_split=field_xy.split('X') try: x_size = int(m_split[0]) except: x_size = 10 try: y_size = int(m_split[1]) except: y_size = 10 if (x_size < 2 or x_size > MAX_GF_SIZE): print 'The gamefield\'s dimensions size should be between 3 and '+str(MAX_GF_SIZE)+' !' x_size = 10 if (y_size < 2 or y_size > MAX_GF_SIZE): print 'The gamefield\'s dimensions size should be between 3 and '+str(MAX_GF_SIZE)+' !' y_size = 10 # Start the world CreateServer.local_world = engine.World(x_size,y_size) et = engine.engine_thread(ENGINE_SLEEP, CreateServer.local_world) et.start() THREADS.append(et) # Initialize the server server_sock = server.init_server() set_globvar(server_sock.getsockname()) st = server.server_thread(s_name, server_sock, CreateServer.local_world) st.start() # Start the server thread THREADS.append(st) # Initialize the broadcaster bc_sock = server.init_broadcaster() # Start broadcasting thread bt = server.announce_bc_thread(bc_sock, BROADCASTING_PORT, s_name, CreateServer.local_world) bt.start() THREADS.append(bt)
def main(): # First screen in GUI. If user selects to be a server, initialize the server and the world. mode = raw_input('Welcome! Start server: S, Join game: Enter: ').upper() # This will be the second screen in the GUI if mode == 'S': # Get Server name s_name = raw_input('Enter server name: ') # Get game field size x_size = 7 # For the time being doesn't matter y_size = 7 # Start the world world = engine.World(x_size,y_size) et = engine.engine_thread(0.5, world) et.start() THREADS.append(et) # Initialize the server server_sock = server.init_server() st = server.server_thread(s_name, server_sock, world) st.start() # Start the server thread THREADS.append(st) # Initialize the broadcaster bc_sock = server.init_broadcaster() # Start broadcasting thread bt = server.announce_bc_thread(bc_sock, BROADCASTING_PORT, s_name) bt.start() THREADS.append(bt) # This will be the third screen in the GUI # Join a local game pl_name = raw_input('Enter your name: ') pl_class = raw_input('Enter your class! Frog: FROG, Fly: FLY, Spectator:S: ') print 'Joining a local game!' # This is the fourth screen in the GUI runtime_game_handler(pl_name, pl_class, world) else: # This will be the third screen in the GUI # Join a remote game pl_name = raw_input('Enter your name: ') pl_class = raw_input('Enter your class! Frog: FROG, Fly: FLY, Spectator:S: ') print 'Joining a remote game!' # Start the listening thread. refresh = True while refresh: print 'Refreshing the server list...' client_term.listen_broadcasts(BROADCASTING_PORT, SERVER_LIST, LISTENING_TIMEOUT) nr = 1 for server_el in SERVER_LIST: print str(nr)+". Name: "+str(server_el[0])+".\n IP: "+str(server_el[1])+".\n Timestamp: "+str(time.asctime()) answer = raw_input("Want to refresh the list again? Y = Yes, N = No: ").upper() if answer == 'N': refresh = False answer = 0 while answer < 1 or answer > len(SERVER_LIST): reply = raw_input('Choose the server you with to connect to using the appropriate list index (1,2,3...): ') answer = int(reply) print 'Thank you and have a great game!' server_id = SERVER_LIST[int(answer) - 1] print server_id # This is the fourth screen in the GUI client_term.client_task(server_id[1],pl_name,pl_class)