private void CalcRowHeight() { GInfo.AddGraphics(null); try { rowHeight = Form.ScrollBar.SmallChange = AppearanceMatch.CalcTextSize(GInfo.Graphics, "Wg", 0).ToSize().Height + HoverElement.ContentMargins.Height; } finally { GInfo.ReleaseGraphics(); } }
private void JoinToGame(byte[] data) { GInfo jGame = (GInfo)SerializationUtils.DeSerialization(data); Console.WriteLine(User.UserNick + " хочет подключиться к игре " + jGame.userOpp.UserNick); server.JoinToGame(User, jGame); }
private void CancelGame(byte[] data) { GInfo cGame = (GInfo)SerializationUtils.DeSerialization(data); Console.WriteLine(cGame.userOpp.UserNick + " хочет отменить игру " + cGame.gameID.ToString()); server.RemoveGame(cGame); }
protected virtual int CalcRowPreviewEditorHeight(int rowHandle, RepositoryItem item) { if (!View.OptionsView.ShowPreview || View.IsGroupRow(rowHandle) || View.IsFilterRow(rowHandle)) { return(0); } int res = (View.OptionsView.ShowPreviewRowLines != DevExpress.Utils.DefaultBoolean.False ? 1 : 0); int eventHeight = View.RaiseMeasurePreviewHeightAccessMetod(rowHandle); if (eventHeight != -1) { return(eventHeight == 0 ? 0 : res + eventHeight); } Graphics g = GInfo.AddGraphics(null); try { IHeightAdaptable ha = fRowPreviewViewInfo as IHeightAdaptable; if (ha != null) { fRowPreviewViewInfo.EditValue = View.GetRowPreviewValue(rowHandle); res = ha.CalcHeight(GInfo.Cache, this.CalcRowPreviewWidth(rowHandle) - this.PreviewIndent - (GridRowPreviewPainter.PreviewTextIndent * 2)); } res = Math.Max(fRowPreviewViewInfo.CalcMinHeight(g), res); } finally { GInfo.ReleaseGraphics(); } res += GridRowPreviewPainter.PreviewTextVIndent * 2; return(res); }
public void OpenGame(GInfo game) { Game g = new Game(this.gameID, new UserInfo[] { game.userOpp, null }); AddOpenGame(g); UpdateOpenedGames(); }
public void JoinToGame(UserInfo user, GInfo game) { UserInfo[] users = new UserInfo[] { game.userOpp, user }; Game jGame = new Game(game.gameID, users); this.AddGame(jGame); //посылаем игрокам информацию для начала игры GInfo gameI = new GInfo(users[0], jGame.gameInfo.gameID); byte[] sendData = SerializationUtils.Serialization( MessTypeUtil.MessageTypes[(int)MessTypeUtil.TypeMEnum.NewGame], gameI); this.SendToUser(users[1], sendData); gameI.userOpp = users[1]; gameI.gameID = jGame.gameInfo.gameID; sendData = SerializationUtils.Serialization( MessTypeUtil.MessageTypes[(int)MessTypeUtil.TypeMEnum.NewGame], gameI); this.SendToUser(users[0], sendData); //удаляем из списка открытых игр this.RemoveGame(game); }
private void btnCreateGame_Click(object sender, EventArgs e) { GInfo newGame = new GInfo(currUser, 0); byte[] message = SerializationUtils.Serialization( MessTypeUtil.MessageTypes[(int)MessTypeUtil.TypeMEnum.OpenGame], newGame); SendData(message); btnCancelGame.Enabled = true; }
/// <summary> /// is called before solution is evolved to setup the specie /// </summary> protected virtual void StartFinding() { lock (SpecInfo) { SpecInfo = new SpeciesInfo(); } GInfo.IncrementTotalSpecies(); InitializeUpdateInfo(); NewSpecieEvent(); }
private void btnCancelGame_Click(object sender, EventArgs e) { if (openedGame == null) { return; } byte[] message = SerializationUtils.Serialization( MessTypeUtil.MessageTypes[(int)MessTypeUtil.TypeMEnum.CancelGame], openedGame); SendData(message); btnCancelGame.Enabled = false; btnCreateGame.Enabled = true; openedGame = null; }
public void UpdateOpenedGames() { List <GInfo> openGames = new List <GInfo>(); foreach (Game item in OpenGames) { GInfo gi = new GInfo(item.gameInfo.user1, item.gameInfo.gameID); openGames.Add(gi); } byte[] games = SerializationUtils.Serialization( MessTypeUtil.MessageTypes[(int)MessTypeUtil.TypeMEnum.UpdateGames], openGames); SendAll(games); }
public void RemoveGame(GInfo game) { Game rGame = null; foreach (Game item in OpenGames) { if (game.gameID == item.gameInfo.gameID) { rGame = item; break; } } OpenGames.Remove(rGame); UpdateOpenedGames(); }
private void btnJoinGame_Click(object sender, EventArgs e) { if (lbGames.SelectedIndex == -1) { return; } GInfo joinGame = openedGames[lbGames.SelectedIndex]; if (joinGame.userOpp.UserNumber == currUser.UserNumber) { return; } byte[] message = SerializationUtils.Serialization( MessTypeUtil.MessageTypes[(int)MessTypeUtil.TypeMEnum.Join], joinGame); SendData(message); }
protected override void OnEditValueChanged() { base.OnEditValueChanged(); if (OwnerEdit == null) { GInfo.AddGraphics(null); try { CalculateButtonsRect(GInfo.Graphics); } finally { GInfo.ReleaseGraphics(); } } }
protected virtual BaseEditViewInfo CreateRowPreviewViewInfo(RepositoryItem item) { BaseEditViewInfo info = item.CreateViewInfo(); UpdateEditViewInfo(info); Graphics g = GInfo.AddGraphics(null); try { info.CalcViewInfo(g); } finally { GInfo.ReleaseGraphics(); } return(info); }
private void AcceptGame(byte[] data) { UserInfo[] users = (UserInfo[])SerializationUtils.DeSerialization(data); Game game = new Game(server.gameID, users); server.AddGame(game); GInfo gameI = new GInfo(users[0], game.gameInfo.gameID); byte[] sendData = SerializationUtils.Serialization( MessTypeUtil.MessageTypes[(int)MessTypeUtil.TypeMEnum.NewGame], gameI); server.SendToUser(users[1], sendData); gameI.userOpp = users[1]; gameI.gameID = game.gameInfo.gameID; sendData = SerializationUtils.Serialization( MessTypeUtil.MessageTypes[(int)MessTypeUtil.TypeMEnum.NewGame], gameI); server.SendToUser(users[0], sendData); }
protected override void CalcRowPreviewInfo(RowInfo ri) { base.CalcRowPreviewInfo(ri); bool graphic_is_created = (GInfo.Graphics != null); if (!graphic_is_created) { GInfo.AddGraphics(null); } try { CalcPreviewElementBounds(ri); } finally { if (!graphic_is_created) { GInfo.ReleaseGraphics(); } } }
private void LeaveGame(byte[] data) { GInfo game = (GInfo)SerializationUtils.DeSerialization(data); server.InterruptGame(User, game); }
private void OpenNewGame(byte[] data) { GInfo newG = (GInfo)SerializationUtils.DeSerialization(data); server.OpenGame(newG); }
// получение сообщений private void ReceiveMessage() { try { while (true) { if (!connect) { this.Invoke(new MethodInvoker(() => { textBoxChat.Clear(); })); break; } byte[] data = new byte[64]; // буфер для получаемых данных int bytes = 0; MemoryStream memStream = new MemoryStream(); do { bytes = stream.Read(data, 0, data.Length); memStream.Write(data, 0, bytes); }while (stream.DataAvailable); byte[] allData = memStream.ToArray(); if (allData.Length < 3) { continue; } if (MessTypeUtil.MessageCheck(allData, MessTypeUtil.TypeMEnum.Message)) { //MessageBox.Show("Hiiii"); string message = (string)SerializationUtils.DeSerialization(allData); // добавляем полученное сообщение в текстовое поле this.Invoke(new MethodInvoker(() => { textBoxChat.Text = DateTime.Now.ToShortTimeString() + " " + message + "\r\n" + textBoxChat.Text; })); } else if (MessTypeUtil.MessageCheck(allData, MessTypeUtil.TypeMEnum.Entrance)) { users = (List <UserInfo>)SerializationUtils.DeSerialization(allData); this.Invoke(new MethodInvoker(() => { lbUsers.Items.Clear(); foreach (UserInfo item in users) { lbUsers.Items.Add(item.UserNick + "(" + item.UserRating.ToString() + ")"); } })); } else if (MessTypeUtil.MessageCheck(allData, MessTypeUtil.TypeMEnum.Exit)) { users = (List <UserInfo>)SerializationUtils.DeSerialization(allData); this.Invoke(new MethodInvoker(() => { lbUsers.Items.Clear(); foreach (UserInfo item in users) { lbUsers.Items.Add(item.UserNick + "(" + item.UserRating.ToString() + ")"); } })); } else if (MessTypeUtil.MessageCheck(allData, MessTypeUtil.TypeMEnum.Offer)) { if (offer) { return; } UserInfo userOpp = (UserInfo)SerializationUtils.DeSerialization(allData); this.Invoke(new MethodInvoker(() => { if (MessageBox.Show("Игрок " + userOpp.UserNick + " предлагает игру." + "\n\rВступить в игру?", this.Text, MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button2) == System.Windows.Forms.DialogResult.Yes) { offer = true; UserInfo[] users1 = { userOpp, currUser }; byte[] message = SerializationUtils.Serialization( MessTypeUtil.MessageTypes[(int)MessTypeUtil.TypeMEnum.Accept], users1); SendData(message); } })); } else if (MessTypeUtil.MessageCheck(allData, MessTypeUtil.TypeMEnum.NewGame)) { currentGame = (GInfo)SerializationUtils.DeSerialization(allData); this.Invoke(new MethodInvoker(() => { offer = true; gameForm.Show(); gameForm.Refresh(); gameForm.SetOpp(currentGame.userOpp.UserNick); btnCancelGame.Enabled = false; btnCreateGame.Enabled = true; this.Hide(); })); } else if (MessTypeUtil.MessageCheck(allData, MessTypeUtil.TypeMEnum.Start)) { UserInfo userToMove = (UserInfo)SerializationUtils.DeSerialization(allData); this.Invoke(new MethodInvoker(() => { if (currUser.UserNumber == userToMove.UserNumber) { gameForm.SetGame(true); } else { gameForm.SetGame(false); } })); } else if (MessTypeUtil.MessageCheck(allData, MessTypeUtil.TypeMEnum.Move)) { Move move = (Move)SerializationUtils.DeSerialization(allData); this.Invoke(new MethodInvoker(() => { gameForm.AttackF(move); })); } else if (MessTypeUtil.MessageCheck(allData, MessTypeUtil.TypeMEnum.Attack)) { Move move = (Move)SerializationUtils.DeSerialization(allData); this.Invoke(new MethodInvoker(() => { gameForm.MarkF(move); })); } else if (MessTypeUtil.MessageCheck(allData, MessTypeUtil.TypeMEnum.Win)) { int newR = (int)SerializationUtils.DeSerialization(allData); MessageBox.Show("Вы победили!"); this.Invoke(new MethodInvoker(() => { currUser.UserRating = newR; gameForm.Hide(); this.Show(); })); offer = false; currentGame = null; } else if (MessTypeUtil.MessageCheck(allData, MessTypeUtil.TypeMEnum.Lose)) { int newR = (int)SerializationUtils.DeSerialization(allData); MessageBox.Show("Вы проиграли!"); this.Invoke(new MethodInvoker(() => { currUser.UserRating = newR; gameForm.Hide(); this.Show(); })); offer = false; currentGame = null; } else if (MessTypeUtil.MessageCheck(allData, MessTypeUtil.TypeMEnum.GMessage)) { GameMessage gMess = (GameMessage)SerializationUtils.DeSerialization(allData); this.Invoke(new MethodInvoker(() => { gameForm.NewMessage(gMess.mess); })); } else if (MessTypeUtil.MessageCheck(allData, MessTypeUtil.TypeMEnum.UpdateGames)) { openedGames = (List <GInfo>)SerializationUtils.DeSerialization(allData); this.Invoke(new MethodInvoker(() => { lbGames.Items.Clear(); foreach (GInfo item in openedGames) { if (item.userOpp.UserNumber == currUser.UserNumber) { btnCreateGame.Enabled = false; openedGame = item; } lbGames.Items.Add(item.userOpp.UserNick); } })); } else if (MessTypeUtil.MessageCheck(allData, MessTypeUtil.TypeMEnum.LoginError)) { this.Invoke(new MethodInvoker(() => { authForm.LoginError(); })); } else if (MessTypeUtil.MessageCheck(allData, MessTypeUtil.TypeMEnum.LoginAccomplish)) { //MessageBox.Show("Hiii"); currUser = (UserInfo)SerializationUtils.DeSerialization(allData); this.Invoke(new MethodInvoker(() => { lblUser.Text = "Игрок: " + currUser.UserNick; authForm.Hide(); this.Show(); })); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } }
public void InterruptGame(UserInfo loser, GInfo game) { Game currGame = null; foreach (Game item in Games) { if (item.gameInfo.gameID == game.gameID) { currGame = item; break; } } UserInfo winner; if (currGame.gameInfo.user1.UserNumber == loser.UserNumber) { winner = currGame.gameInfo.user2; } else { winner = currGame.gameInfo.user1; } int[] ratings = GetElo(winner.UserRating, loser.UserRating); winner.UserRating = ratings[0]; loser.UserRating = ratings[1]; byte[] sendData1 = SerializationUtils.Serialization( MessTypeUtil.MessageTypes[(int)MessTypeUtil.TypeMEnum.Win], winner.UserRating); SendToUser(winner, sendData1); sendData1 = SerializationUtils.Serialization( MessTypeUtil.MessageTypes[(int)MessTypeUtil.TypeMEnum.Lose], loser.UserRating); SendToUser(loser, sendData1); Console.WriteLine("Игра завершена"); Console.WriteLine("Победитель: " + winner.UserNick); Console.WriteLine("Проигравший: " + loser.UserNick); foreach (UserInfo item in users) { if (item.UserNumber == winner.UserNumber) { item.UserRating = winner.UserRating; } if (item.UserNumber == loser.UserNumber) { item.UserRating = loser.UserRating; } } //обновляем рейтинг в базе данных usersDatabase.UpdateRating(winner, winner.UserRating); usersDatabase.UpdateRating(loser, loser.UserRating); Games.Remove(currGame); //обновляем список пользователей на клиенте byte[] sendData2 = SerializationUtils.Serialization( MessTypeUtil.MessageTypes[(int)MessTypeUtil.TypeMEnum.Entrance], Users); SendAll(sendData2); }
protected virtual void StartFinding() { GInfo.IncrementTotalSpecies(); NewSpecieEvent(); }