Verteiltesystheme/Code/Main.py

54 lines
1.1 KiB
Python

import sys
import threading
from Code.Communication.Direction import Direction
from Code.Communication.Member import Member
from Code.Communication.Neighbours import Neighbours
from Code.Communication.Server import Server
from Code.UI.PlayingField import run_game, GameState
if __name__ == "__main__":
"""
Getting the args
- own ip
- own port
Optional: A neighbour:
- ip
- port
- direction
"""
args = sys.argv
print(args)
if len(args) >= 3:
own_ip = args[1]
own_port = int(args[2])
else:
print("using default ip 0.0.0.0")
print("using default port 8080")
own_ip = "0.0.0.0"
own_port = 8080
neighbours = Neighbours(own_process=Member(own_ip, own_port))
counter = 0
n_direction = Direction.LEFT
if len(args) > 5:
n_direction = args[5]
if len(args) >= 5:
n_ip = args[3]
n_port = int(args[4])
counter= neighbours.connect(Direction[n_direction], n_ip, n_port)
game_state = GameState(neighbours,counter)
server = Server(neighbours, game_state)
serverThread = threading.Thread(target=server.start)
serverThread.start()
run_game(game_state)
print("finished game")
server.stop_server()