コード例 #1
0
        /// <summary>
        /// Executes the specified arguments.
        /// </summary>
        /// <param name="args">The arguments.</param>
        /// <param name="client">The client.</param>
        /// <returns>System.String.</returns>
        public string Execute(string[] args, TcpClient client = null)
        {
            string name = args[0];

            SearchableMazeAdapter searchableMaze = model.Join(name, client);

            return(searchableMaze.MyMaze.ToJSON());
        }
コード例 #2
0
        /// <summary>
        /// Executes the specified arguments.
        /// </summary>
        /// <param name="args">The arguments.</param>
        /// <param name="client">The client.</param>
        /// <returns>System.String.</returns>
        public string Execute(string[] args, TcpClient client = null)
        {
            string name = args[0];
            int    rows = int.Parse(args[1]);
            int    cols = int.Parse(args[2]);

            SearchableMazeAdapter searchableMaze = model.GenerateMaze(name, rows, cols);

            return(searchableMaze.MyMaze.ToJSON());
        }
コード例 #3
0
 /// <summary>
 /// Initializes a new instance of the <see cref="Game"/> class.
 /// </summary>
 /// <param name="maze">The maze.</param>
 /// <param name="client">The client.</param>
 /// <exception cref="System.ArgumentNullException">maze</exception>
 public Game(SearchableMazeAdapter maze, TcpClient client)
 {
     if (maze == null)
     {
         throw new ArgumentNullException(nameof(maze));
     }
     this.maze = maze;
     joinable  = true;
     players   = new List <TcpClient>();
     players.Add(client);
 }
コード例 #4
0
ファイル: Model.cs プロジェクト: sofferor/ex3
        /// <summary>
        /// Starts the specified name.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <param name="rows">The rows.</param>
        /// <param name="cols">The cols.</param>
        /// <param name="client">The client.</param>
        /// <returns>SearchableMazeAdapter.</returns>
        public SearchableMazeAdapter Start(string name, int rows, int cols, TcpClient client)
        {
            //generate the maze
            SearchableMazeAdapter searchableMaze = GenerateMaze(name, rows, cols);

            Game game = new Game(searchableMaze, client);

            games.Add(name, game);

            //waiting for another player to connect.
            while (game.Joinable == true)
            {
                System.Threading.Thread.Sleep(50);
            }

            return(searchableMaze);
        }
コード例 #5
0
ファイル: Model.cs プロジェクト: sofferor/ex3
        /// <summary>
        /// Generates the maze.
        /// </summary>
        /// <param name="name">The name.</param>
        /// <param name="rows">The rows.</param>
        /// <param name="cols">The cols.</param>
        /// <returns>SearchableMazeAdapter.</returns>
        public SearchableMazeAdapter GenerateMaze(string name, int rows, int cols)
        {
            //if the maze is allready exist we return it.
            if (searchableMazes.ContainsKey(name))
            {
                return(searchableMazes[name]);
            }

            DFSMazeGenerator mazeGenerator = new DFSMazeGenerator();
            Maze             maze          = mazeGenerator.Generate(rows, cols);

            maze.Name = name;

            //adapt the maze.
            SearchableMazeAdapter searchableMaze = new SearchableMazeAdapter(maze);

            searchableMazes.Add(name, searchableMaze);

            return(searchableMaze);
        }