/// <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 }
/// <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 }