Exemplo n.º 1
0
        /// <summary>
        /// The entry point of the program, where the program control starts and ends.
        /// </summary>
        /// <param name='args'>
        /// The command-line arguments.
        /// </param>
        public static void Main( string[] args )
        {
            #region UNIT TEST
            if ( Array.Exists<string>( args, (x) => x == "--test" ) ) {
                Scrabble.Testing.Tests.start();
                return;
            }
            #endregion

            Gtk.Application.Init( Environment.GetCommandLineArgs()[0] , ref args );

            #region INIT WINDOW
            var startwin = new Scrabble.GUI.StartWindow();
            startwin.Show();
            Gtk.Application.Run();
            #endregion

            #region MAIN WINDOW
            try {
                Scrabble.Game.InitialConfig.game.window = new Scrabble.GUI.ScrabbleWindow( Scrabble.Game.InitialConfig.client );
                Scrabble.Game.InitialConfig.game.window.ShowAll();
                while( true ) {
                    Gtk.Application.RunIteration();
                    lock(  Scrabble.Game.InitialConfig.game.gameLock ) {
                        if( Scrabble.Game.InitialConfig.game.newData ) {
                            Scrabble.Game.InitialConfig.game.newData = false;
                            Scrabble.Game.InitialConfig.game.Window.Update();
                        }
                    }
                    lock( Scrabble.Game.InitialConfig.game.gameLock ) {
                        if(	Scrabble.Game.InitialConfig.game.yourTurn ) {
                            Scrabble.Game.InitialConfig.game.clientTurn();
                        }
                    }
                    #region END
                    if( Scrabble.Game.InitialConfig.game.window.end ) {
                        try {
                            Scrabble.Game.InitialConfig.game.clientThread.Abort();
                        } catch (NullReferenceException) { /* no network players */ }
                        break;
                    }
                    #endregion
                }
            } catch (Exception e) {
                Gtk.MessageDialog md = new Gtk.MessageDialog(
                    null,
                    DialogFlags.Modal,
                    MessageType.Error,
                    ButtonsType.Ok,
                    e.Message );
                md.Run();
            } finally {
            #if DEBUG
                if( Scrabble.Game.InitialConfig.logStreamAI != null )
                    Scrabble.Game.InitialConfig.logStreamAI.Close();
            #endif
            }
            #endregion
        }
Exemplo n.º 2
0
        /// <summary>
        /// The entry point of the program, where the program control starts and ends.
        /// </summary>
        /// <param name='args'>
        /// The command-line arguments.
        /// </param>
        public static void Main(string[] args)
        {
            #region UNIT TEST
            if (Array.Exists <string>(args, (x) => x == "--test"))
            {
                Scrabble.Testing.Tests.start();
                return;
            }
            #endregion

            Gtk.Application.Init(Environment.GetCommandLineArgs()[0], ref args);

            #region INIT WINDOW
            var startwin = new Scrabble.GUI.StartWindow();
            startwin.Show();
            Gtk.Application.Run();
            #endregion

            #region MAIN WINDOW
            try {
                Scrabble.Game.InitialConfig.game.window = new Scrabble.GUI.ScrabbleWindow(Scrabble.Game.InitialConfig.client);
                Scrabble.Game.InitialConfig.game.window.ShowAll();
                while (true)
                {
                    Gtk.Application.RunIteration();
                    lock (Scrabble.Game.InitialConfig.game.gameLock) {
                        if (Scrabble.Game.InitialConfig.game.newData)
                        {
                            Scrabble.Game.InitialConfig.game.newData = false;
                            Scrabble.Game.InitialConfig.game.Window.Update();
                        }
                    }
                    lock (Scrabble.Game.InitialConfig.game.gameLock) {
                        if (Scrabble.Game.InitialConfig.game.yourTurn)
                        {
                            Scrabble.Game.InitialConfig.game.clientTurn();
                        }
                    }
                    #region END
                    if (Scrabble.Game.InitialConfig.game.window.end)
                    {
                        try {
                            Scrabble.Game.InitialConfig.game.clientThread.Abort();
                        } catch (NullReferenceException) { /* no network players */ }
                        break;
                    }
                    #endregion
                }
            } catch (Exception e) {
                Gtk.MessageDialog md = new Gtk.MessageDialog(
                    null,
                    DialogFlags.Modal,
                    MessageType.Error,
                    ButtonsType.Ok,
                    e.Message);
                md.Run();
            } finally {
#if DEBUG
                if (Scrabble.Game.InitialConfig.logStreamAI != null)
                {
                    Scrabble.Game.InitialConfig.logStreamAI.Close();
                }
#endif
            }
            #endregion
        }