/// <summary> /// おじゃまを相手のフィールドに送る /// </summary> /// <param name="ojamas">送るおじゃまの量と種類</param> private void ThrowOjama(OjamaCalculator ojamas) { var n = ojamas.Calculate(); for (var i = 0; i < n; ++i) { var ojama = new OjamaBall(SpriteBatch, Camera, GameMain, this) { IsHard = ojamas.IsHard(), Size = BallSize }; OtherField.EnqueueOjama(ojama); } }
public Word Clone() { var clone = new Word { Id = (string)Id.Clone(), Guid = Guid, Vernacular = (string)Vernacular.Clone(), Plural = (string)Plural.Clone(), Created = (string)Created.Clone(), Modified = (string)Modified.Clone(), PartOfSpeech = (string)PartOfSpeech.Clone(), OtherField = (string)OtherField.Clone(), ProjectId = (string)ProjectId.Clone(), Accessibility = Accessibility, Audio = new List <string>(), EditedBy = new List <string>(), History = new List <string>(), Senses = new List <Sense>(), Note = Note.Clone() }; foreach (var file in Audio) { clone.Audio.Add((string)file.Clone()); } foreach (var id in EditedBy) { clone.EditedBy.Add((string)id.Clone()); } foreach (var id in History) { clone.History.Add((string)id.Clone()); } foreach (var sense in Senses) { clone.Senses.Add(sense.Clone()); } return(clone); }
public Word Clone() { var clone = new Word { Id = Id.Clone() as string, Vernacular = Vernacular.Clone() as string, Plural = Plural.Clone() as string, Created = Created.Clone() as string, Modified = Modified.Clone() as string, PartOfSpeech = PartOfSpeech.Clone() as string, OtherField = OtherField.Clone() as string, ProjectId = ProjectId.Clone() as string, Audio = new List <string>(), EditedBy = new List <string>(), History = new List <string>(), Senses = new List <Sense>() }; foreach (var file in Audio) { clone.Audio.Add(file.Clone() as string); } foreach (var id in EditedBy) { clone.EditedBy.Add(id.Clone() as string); } foreach (var id in History) { clone.History.Add(id.Clone() as string); } foreach (var sense in Senses) { clone.Senses.Add(sense.Clone()); } return(clone); }
public override void StartTurn() { IsRunning = true; var turnInfo = new StringBuilder(); turnInfo.Append(CurrentField.GenerateTurnInfoString()); turnInfo.Append(OtherField.GenerateTurnInfoString()); var gameLogger = GameMain.GameLogger; var stopWatch = new Stopwatch(); stopWatch.Start(); _inputQueue.Enqueue(turnInfo.ToString()); var task = Task.Factory.StartNew(() => { gameLogger.Write("AI入力待ち->"); int x, y; var aiLogger = CurrentField.AiLogger; var input = _playerAi.StandardOutput.ReadLine(); aiLogger.OutputLogger.WriteLine(input); AiOutputs.Add(input ?? ""); var lines = input?.Split(' '); if (_token.IsCancellationRequested) { return; } stopWatch.Stop(); _totalThinkTime += stopWatch.Elapsed; LeftThinkTimes.Add(LeftMilliseconds); if (lines == null || lines.Length != 2 || !int.TryParse(lines[0], out x) || !int.TryParse(lines[1], out y)) { stopWatch.Stop(); _totalThinkTime += stopWatch.Elapsed; LeftThinkTimes.Add(LeftMilliseconds); OutPut = new Point(); Dispose(); gameLogger.WriteLine("AIの出力が無効 (" + stopWatch.ElapsedMilliseconds + "ms, left " + LeftMilliseconds / 1000 + "s)"); return; } if (TotalTimeLimit < _totalThinkTime) { OutPut = new Point(); gameLogger.WriteLine("合計思考時間の時間制限超過:" + x + " " + y + " (" + stopWatch.ElapsedMilliseconds + "ms, left " + LeftMilliseconds / 1000 + "s)"); return; } gameLogger.WriteLine("OK:" + x + " " + y + " (" + stopWatch.ElapsedMilliseconds + "ms, left " + LeftMilliseconds / 1000 + "s)"); OutPut = new Point(x, y); }); try { if (!task.Wait(10000)) { gameLogger.WriteLine("1ターンの時間制限超過:" + task.Status); Dispose(); return; } } catch (AggregateException exception) when(exception.InnerExceptions.Any(e => e is OperationCanceledException)) { return; } gameLogger.WriteLine("ターン終了:" + OutPut + " 入力待ちタスク:" + task.Status); IsRunning = false; }
private void SetValue_D() { if (FSelectedBlockFieldItem_D == null) return; FSelectedBlockFieldItem_D.Description = tbCaption_D.Text; FSelectedBlockFieldItem_D.CheckNull = cbCheckNull_D.Text; FSelectedBlockFieldItem_D.DefaultValue = tbDefaultValue_D.Text; FSelectedBlockFieldItem_D.ControlType = cbControlType_D.Text; FSelectedBlockFieldItem_D.ComboRemoteName = tbComboRemoteName_D.Text; FSelectedBlockFieldItem_D.ComboEntityName = tbComboEntityName_D.Text; FSelectedBlockFieldItem_D.ComboTextField = cbComboDisplayField_D.Text; FSelectedBlockFieldItem_D.ComboValueField = cbComboValueField_D.Text; if (!String.IsNullOrEmpty(tbComboRemoteName_D.Text) && tbComboRemoteName_D.Text.Contains(".")) { if (radioButtonEntity.Checked) { String[] combo_DRemoteNames = tbComboRemoteName_D.Text.Split(new char[] { '.' }, StringSplitOptions.RemoveEmptyEntries); List<COLDEFInfo> colDefObjects = WzdUtils.GetColumnDefination(combo_DRemoteNames[0], combo_DRemoteNames[1], this.tbComboEntityName_D.Text, cbEEPAlias.Text); if (colDefObjects != null) { COLDEFInfo colDefObject = colDefObjects.Find(c => c.FIELD_NAME == cbComboDisplayField_D.Text); if (colDefObject != null) FSelectedBlockFieldItem_D.ComboTextFieldCaption = colDefObject.CAPTION; colDefObject = colDefObjects.Find(c => c.FIELD_NAME == cbComboValueField_D.Text); if (colDefObject != null) FSelectedBlockFieldItem_D.ComboValueFieldCaption = colDefObject.CAPTION; } if (tbOtherFields_D.Text != null) { String[] otherFields = tbOtherFields_D.Text.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); FSelectedBlockFieldItem_D.ComboOtherFields = new List<OtherField>(); foreach (String item in otherFields) { if (item != FSelectedBlockFieldItem_D.ComboTextField && item != FSelectedBlockFieldItem_D.ComboValueField) { OtherField of = new OtherField(); of.FieldName = item; if (colDefObjects != null) { COLDEFInfo colDefObject = colDefObjects.Find(c => c.FIELD_NAME == item); if (colDefObject != null) of.FieldCaption = colDefObject.CAPTION; } FSelectedBlockFieldItem_D.ComboOtherFields.Add(of); } } } SYS_REFVAL aSYS_REFVAL = new SYS_REFVAL(); aSYS_REFVAL.REFVAL_NO = "SL." + FSelectedBlockFieldItem_D.ComboEntityName; aSYS_REFVAL.TABLE_NAME = FSelectedBlockFieldItem_D.ComboEntityName; aSYS_REFVAL.SELECT_ALIAS = FSelectedBlockFieldItem_D.ComboRemoteName; aSYS_REFVAL.DISPLAY_MEMBER = FSelectedBlockFieldItem_D.ComboTextField; aSYS_REFVAL.VALUE_MEMBER = FSelectedBlockFieldItem_D.ComboValueField; if (FSelectedBlockFieldItem_D.ComboOtherFields != null) { foreach (OtherField of in FSelectedBlockFieldItem_D.ComboOtherFields) { aSYS_REFVAL.SELECT_COMMAND += of.FieldName + ";"; } } List<object> lParams = new List<object>(); lParams.Add(aSYS_REFVAL); WzdUtils.SaveDataToTable(lParams, "SYS_REFVAL"); } else if (radioButtonInfoCommand.Checked) { DataSet dsCOLDEF = GetDataFromCOLDEF(tbComboEntityName_D.Text); if (dsCOLDEF.Tables.Count > 0 && dsCOLDEF.Tables[0].Rows.Count > 0) { DataRow[] drsDisplay = dsCOLDEF.Tables[0].Select(String.Format("FIELD_NAME='{0}'", cbComboDisplayField_D.Text)); if (drsDisplay.Count() > 0) FSelectedBlockFieldItem_D.ComboTextFieldCaption = drsDisplay[0]["CAPTION"].ToString(); DataRow[] drsValue = dsCOLDEF.Tables[0].Select(String.Format("FIELD_NAME='{0}'", cbComboDisplayField_D.Text)); if (drsValue != null) FSelectedBlockFieldItem_D.ComboValueFieldCaption = drsValue[0]["CAPTION"].ToString(); } if (tbOtherFields_D.Text != null) { String[] otherFields = tbOtherFields_D.Text.Split(new char[] { ';' }, StringSplitOptions.RemoveEmptyEntries); FSelectedBlockFieldItem_D.ComboOtherFields = new List<OtherField>(); foreach (String item in otherFields) { if (item != FSelectedBlockFieldItem_D.ComboTextField && item != FSelectedBlockFieldItem_D.ComboValueField) { OtherField of = new OtherField(); of.FieldName = item; if (dsCOLDEF.Tables.Count > 0 && dsCOLDEF.Tables[0].Rows.Count > 0) { DataRow[] drs = dsCOLDEF.Tables[0].Select(String.Format("FIELD_NAME='{0}'", item)); if (drs.Count() > 0) of.FieldCaption = drs[0]["CAPTION"].ToString(); } FSelectedBlockFieldItem_D.ComboOtherFields.Add(of); } } } else { } String selectCommand = String.Empty; if (FSelectedBlockFieldItem_D.ComboOtherFields != null) { foreach (OtherField of in FSelectedBlockFieldItem_D.ComboOtherFields) { selectCommand += of.FieldName + ";"; } } SetDataToSYS_REFVAL(FSelectedBlockFieldItem_D.ComboEntityName, FSelectedBlockFieldItem_D.ComboTextField, FSelectedBlockFieldItem_D.ComboValueField, FSelectedBlockFieldItem_D.ComboRemoteName, selectCommand); } } FSelectedBlockFieldItem_D.QueryMode = cbQueryMode_D.Text; FSelectedBlockFieldItem_D.EditMask = tbEditMask_D.Text; //FSelectedListViewItem.SubItems[1].Text = FSelectedBlockFieldItem.Description; //FSelectedListViewItem.SubItems[2].Text = FSelectedBlockFieldItem.CheckNull; //FSelectedListViewItem.SubItems[3].Text = FSelectedBlockFieldItem.DefaultValue; //FSelectedListViewItem.SubItems[4].Text = FSelectedBlockFieldItem.RefValNo; //FSelectedListViewItem.SubItems[5].Text = FSelectedBlockFieldItem.QueryMode; //FSelectedListViewItem.SubItems[6].Text = FSelectedBlockFieldItem.EditMask; }