public void Save(TPackage package) { IDictionary <string, string> dict = getParameterList(); foreach (KeyValuePair <string, string> item in dict) { PropertyInfo pinfo = package.GetType().GetProperty(item.Key.Substring(1)); if (pinfo != null) { _command.Parameters[item.Key].Value = pinfo.GetValue(package, null); } } try { if (_connection.State != ConnectionState.Open) { _connection.Open(); } _command.ExecuteNonQuery(); _connection.Close(); } catch (SqlException ex) { Toos.Msg_Error("错误:SQL数据库{0}\n", ex.Message); } catch (Exception exp) { Toos.Msg_Error("错误:{0}!\n", exp.ToString()); } }
public override void Execute() { int result = integrationModel.Result; GameOverArgs e = evt.data as GameOverArgs; #region 更新积分 if (e.PlayWin) { integrationModel.PlayerIntergration += result; } else { integrationModel.PlayerIntergration -= result; } if (e.ComputerLeftWin) { integrationModel.ComputerLeftIntergration += result; } else { integrationModel.ComputerLeftIntergration -= result; } if (e.ComputerRightWin) { integrationModel.ComputerRightIntergration += result; } else { integrationModel.ComputerRightIntergration -= result; } #endregion #region 保存数据 GameData data = new GameData(); data.playerIntergration = integrationModel.PlayerIntergration; data.computerLeftIntergration = integrationModel.ComputerLeftIntergration; data.computerRightIntergration = integrationModel.ComputerRightIntergration; Toos.SaveData(data); #endregion //更新积分UI dispatcher.Dispatch(ViewEvent.UPDATE_INTEGRATION, data); cardModel.InitCardLibary(); roundModel.InitRound(); PoolManager.Instance.HideAllObject("Card"); //显示一个游戏结束的面板 Toos.CreateUIpanel(PanelType.GameOverPanel); dispatcher.Dispatch(ViewEvent.SHOW_INTERGRATION, data); }
/// <summary> /// 读取保存数据 /// </summary> private void GetDaTa() { string fileName = Consts.DataPath; FileInfo fileInfo = new FileInfo(fileName); if (fileInfo.Exists) { GameData oldData = Toos.GeyDataWithOutBom(); //保存数据 intergrationModel.ComputerLeftIntergration = oldData.computerLeftIntergration; intergrationModel.ComputerRightIntergration = oldData.computerRightIntergration; intergrationModel.PlayerIntergration = oldData.playerIntergration; } }
static void Main(string[] args) { Faker faker = new Faker(); Bar f = faker.Create <Bar>(); Console.WriteLine(f == null); Faker faker2 = new Faker(); Too _too = faker2.Create <Too>(); Faker _faker = new Faker(); Dict _testdict = _faker.Create <Dict>(); Assembly ass = Assembly.LoadFile("C:\\Users\\USER\\source\\repos\\ClassLibrary3\\GeneratorsLib\\bin\\Debug\\GeneratorsLib.dll"); Type[] tt = ass.GetTypes(); Toos ssss = _faker.Create <Toos>(); }
/// <summary> /// 接受来自 /// </summary> public override void Execute() { //将倍数传到数据模块 int multiple = (int)evt.data; Debug.Log(intergrationModel.Multiples + " " + intergrationModel.BasePoint + " " + intergrationModel.Result); intergrationModel.Multiples = multiple; //------------------点击完双倍单倍之后就开始游戏了---------------------- Toos.CreateUIpanel(PanelType.BackgroundPanel); Toos.CreateUIpanel(PanelType.CharacterPanel); Toos.CreateUIpanel(PanelType.InteractionPanel); }
public override void Execute() { //创建面板 Toos.CreateUIpanel(PanelType.StartPanel); //初始化数据 intergrationModel.Initintergration(); cardModel.InitCardLibary(); roundModel.InitRound(); //-----读取数据---------------- GetDaTa(); //dispatcher.Dispatch(ViewEvent.UPDATE_INTEGRATION, oldData); }
public void ThreadCallBack(Object obj) { _clinet = obj as ThreadTcpClinet; _networkstream = _clinet.TcpClinet.GetStream(); _formatter = new BinaryFormatter(); bool running = true; TSqlAdapter SqlAdapter = new TSqlAdapter(); try { while (running) { _package = (TPackage)_formatter.Deserialize( _networkstream); if (_package.MagicId == 0) { running = false; Toos.Msg_Warn("客户端{0:D5}[{1}]请求结束会话\n", _clinet.ThreadId, _clinet.TcpClinet.Client.RemoteEndPoint.ToString()); break; } SqlAdapter.Save(_package); Toos.Msg_Message("{0}=>{1}#{2};{3};{4}\n", _clinet.TcpClinet.Client.RemoteEndPoint.ToString(), Toos.GetLocalIP(), _package.NickFrom, _package.NickTo, _package.Text); } } catch (Exception ex) { Toos.Msg_Error("错误:{0}\n", ex.StackTrace); } finally { Toos.Msg_Warn("线程{0:D5},远程{1} 结束 [OK] .\n", _clinet.ThreadId, _clinet.TcpClinet.Client.RemoteEndPoint.ToString()); _networkstream.Close(); } }
/// <summary> /// 寻找手牌 /// </summary> /// <returns></returns> public List <Card> FindSelectCard() { CardUI[] cardUIs = characterUI.CreatePoint.GetComponentsInChildren <CardUI>(); tempUI = new List <CardUI>(); tempCard = new List <Card>(); for (int i = 0; i < cardUIs.Length; i++) { if (cardUIs[i].IsSelectes) { tempUI.Add(cardUIs[i]); tempCard.Add(cardUIs[i].Card); } } Toos.Sort(tempCard, true); return(tempCard); }
public void Start() { int i = 1; Toos.Msg("服务启动监听 @ {0} .\n", System.ConsoleColor.Green, _tcplistener.LocalEndpoint.ToString()); _tcplistener.Start(); while (true) { _clinet = new ThreadTcpClinet(); _clinet.ThreadId = i; _clinet.TcpClinet = _tcplistener.AcceptTcpClient(); TJobs work = new TJobs(); ThreadPool.QueueUserWorkItem(work.ThreadCallBack, _clinet); Toos.Msg_Warn("客户端({0:D5}) @ {1} 连接[OK]\n", i++, _clinet.TcpClinet.Client.RemoteEndPoint.ToString()); } }
/// <summary> /// 请求玩家出牌事件的回调 /// </summary> /// <param name="payload"></param> private void onPlayPayCard(IEvent payload) { List <Card> cardList = characterView.player.FindSelectCard(); CardType cardType; Rulers.CanPop(cardList, out cardType); //还需要根据上次出牌的类型 if (cardType != CardType.None) { //可以出牌 PlayCardArg e = new PlayCardArg(cardList.Count, Toos.GetWeight(cardList, cardType), CharacterType.Player, cardType); dispatcher.Dispatch(CommandEvent.PlayCard, e); } else { Debug.Log("请选择正确的牌"); } }
public static void Main(string[] args) { int _port = 8888; string _serverip; int minWorkerThreads, maxWorkerThreads; int minCompletionThreads, maxCompletionThreads; System.Threading.ThreadPool.GetMinThreads(out minWorkerThreads, out minCompletionThreads); // Get the maximum number of completion threads System.Threading.ThreadPool.GetMaxThreads(out maxWorkerThreads, out maxCompletionThreads); // Set the new max worker threads, but keep the old max completion threads //ThreadPool.SetMaxThreads(someDifferentValue, maxCompletionThreads); Toos.Msg_Message("本服务器默认提供最小线程数:{0:D5};最大线程数:{1:D5}\n", minWorkerThreads, maxWorkerThreads); if (args.Length > 0) { Toos.Msg_Message("*本服务器IP:{0}\n", args[0]); _serverip = args[0]; } else { Toos.Msg_Message("本服务器IP:{0}\n", Toos.GetLocalIP()); Toos.Msg_Message("输入IP地址或者直接回车使用默认地址:"); _serverip = Console.ReadLine(); if (_serverip == "") { _serverip = Toos.GetLocalIP(); } } TServer server = new TServer(_serverip, _port); server.Start(); }
/// <summary> /// 排序 /// </summary> /// <param name="asc">升序asc 降序desc</param> public virtual void Sort(bool asc) { Toos.Sort(_cardList, asc); SortCardUI(_cardList); }
public static void Main(string[] args) { string ipString; int port = 8888; TPackage _package; IFormatter _formater = new BinaryFormatter(); NetworkStream _networkstream; Random rand = new Random(); IPAddress ipaddress = new IPAddress(0); if (args.Length > 0 && IPAddress.TryParse(args[0], out ipaddress)) { ipString = args[0]; Toos.Msg_Message("远程服务器地址:{0}", ipString); } else { Toos.Msg_Message("请输远程服务器地址:"); ipString = Console.ReadLine(); } TcpClient clinet = new TcpClient(); clinet.Connect(new IPEndPoint(IPAddress.Parse(ipString), port)); Toos.Msg_Message("发送超时:{0:D};接受超时{1:D}", clinet.SendTimeout, clinet.ReceiveTimeout); _networkstream = clinet.GetStream(); Toos.Msg_Error("正在连接{0}:{1} ...\n", ipString, port); Toos.Msg_Message("程序运行中按任意键退出:D\n"); while (!Console.KeyAvailable) { _package = new TPackage() { NickFrom = "发送:" + rand.Next(), NickTo = "接收:" + rand.Next(), Text = "数据:" + rand.Next(), QQTo = rand.Next().ToString(), QQFrom = rand.Next().ToString(), DTime = DateTime.Now, MagicId = 1 }; System.Threading.Thread.Sleep(500); try { _formater.Serialize(_networkstream, _package); Toos.Msg_Message("{0}=>{1}#{2};{3};{4}\n", Toos.GetLocalIP(), ipString, _package.NickFrom, _package.NickTo, _package.Text); } catch (Exception ex) { Toos.Msg_Error("错误:{0}\n", ex.Message); } } //发送魔术包! _package = new TPackage() { NickFrom = "准备" + rand.Next(), NickTo = "结束" + rand.Next(), Text = "通讯" + rand.Next(), DTime = DateTime.Now, MagicId = 0 }; _formater.Serialize(_networkstream, _package); _networkstream.Close(); clinet.Close(); }
IEnumerator DelayOneSecound(ComputerSmartArgs obj) { yield return(new WaitForSeconds(1f)); bool can = false; switch (obj.characterType) { case CharacterType.ComputerRight: can = characterView.ComputerRight.ComputerSemarPlayCard(obj.cardType, obj.weight, obj.lenght, obj.biggerst == CharacterType.ComputerRight); if (can) { List <Card> cardList = characterView.ComputerRight.SelectCards; CardType cardType = characterView.ComputerRight.currType; //--------------------------添加牌到桌面---------------- characterView.Desk.Clear(); //添加牌之前把桌面清空下。这里可以做一个剩余牌数(记牌器),把出的牌临时放到一个数组里面,把总牌数减去手牌减去临时数组,就是剩余牌数,这是一个扩展 foreach (Card card in cardList) { characterView.AddCard(CharacterType.Desk, card, false); } //-----------------可以出牌------------------- PlayCardArg ee = new PlayCardArg(cardList.Count, Toos.GetWeight(cardList, cardType), CharacterType.ComputerRight, cardType); if (!characterView.ComputerRight.HasCard) { Identity r = characterView.ComputerRight.Identity; Identity l = characterView.ComputerLeft.Identity; Identity p = characterView.player.Identity; GameOverArgs eee = new GameOverArgs() { ComputerRightWin = true, ComputerLeftWin = l == r ? true : false, PlayWin = p == r ? true: false, }; dispatcher.Dispatch(CommandEvent.GameOver, eee); } else { dispatcher.Dispatch(CommandEvent.PlayCard, ee); } } else { dispatcher.Dispatch(CommandEvent.PassCard); } break; case CharacterType.ComputerLeft: can = characterView.ComputerLeft.ComputerSemarPlayCard(obj.cardType, obj.weight, obj.lenght, obj.biggerst == CharacterType.ComputerLeft); if (can) { List <Card> cardList = characterView.ComputerLeft.SelectCards; CardType cardType = characterView.ComputerLeft.currType; //--------------------------添加牌到桌面---------------- characterView.Desk.Clear(); //添加牌之前把桌面清空下。这里可以做一个剩余牌数(记牌器),把出的牌临时放到一个数组里面,把总牌数减去手牌减去临时数组,就是剩余牌数,这是一个扩展 foreach (Card card in cardList) { characterView.AddCard(CharacterType.Desk, card, false); } //-----------------可以出牌------------------- PlayCardArg ee = new PlayCardArg(cardList.Count, Toos.GetWeight(cardList, cardType), CharacterType.ComputerLeft, cardType); if (!characterView.ComputerLeft.HasCard) { Identity r = characterView.ComputerRight.Identity; Identity l = characterView.ComputerLeft.Identity; Identity p = characterView.player.Identity; GameOverArgs eee = new GameOverArgs() { ComputerLeftWin = true, ComputerRightWin = r == l ? true : false, PlayWin = p == l ? true : false, }; dispatcher.Dispatch(CommandEvent.GameOver, eee); } else { dispatcher.Dispatch(CommandEvent.PlayCard, ee); } } else { dispatcher.Dispatch(CommandEvent.PassCard); } break; default: break; } }