public void Training() { int Number_Of_Games = 5; int gameTimeInSeconds = 120; int maxTurns = 15; Stopwatch watch = new Stopwatch(); watch.Start(); //for (int i = 0; i < Number_Of_Games; i++) while (watch.Elapsed.TotalSeconds < gameTimeInSeconds) { TheBoard.StartGame(); TurnCount = 0; RefreshUI(); while (MainDeckCards.Count > 1) { if (TurnCount > maxTurns) { ShowTotals = true; break; } ProcessCurrentTurn(); } JSONwriter.RecordScoreString(MakeScoreString()); UpdateModel(); } }
private static void RecordMoveandResults(BoardState state, CardChoice choice, Card card, CardPlacement placement, int change) { DecisionResults results = new DecisionResults(); results.DrawChoice = choice; results.DrawnCardValue = card.Number; results.PlacementChoice = placement; results.HandValueChange = change; JSONwriter.RecordStateAndResults(state, results); }
public void Run() { //List<Thread> threadList = new List<Thread>(); List <Task> taskList = new List <Task>(); //Util.StartWatch(); //Util.l($"Počet záznamů v cache: {Util.outputDataCache.Count()}"); foreach (var s in sampleNames) { taskList.Add(Task.Run(() => Algorithm(s))); /*Thread t = new Thread(() => Algorithm(s)); * t.Start();*/ //threadList.Add(t); //Algorithm(s); } Task.WaitAll(taskList.ToArray()); List <string> outputList = new List <string>(); //Hlavní výstupy List <string> secondaryOutputList = new List <string>(); //Vedlješí výstupy string[] splittedOutputName = { }; foreach (var item in Util.outputDataCache) { foreach (var output in item.output) { if (output.Key.StartsWith("M_")) { //Zpracování pro hlavní výstupy splittedOutputName = output.Key.Split('_'); if (!outputList.Contains(splittedOutputName[1])) // Název výstupu bez M_ { //if (splittedOutputName.Count() <=1) Util.l($"{output.Key.StartsWith("M_")}:{output.Key}:{splittedOutputName.Count()}"); outputList.Add(splittedOutputName[1]); } } //Zpracování pro vedlejší výstupy else { if (!secondaryOutputList.Contains(output.Key)) { secondaryOutputList.Add(output.Key); } } } } List <string> orpList = new List <string>(); foreach (var orp in Util.outputDataCache) { if (!orpList.Contains(orp.nameOrp)) { orpList.Add(orp.nameOrp); } } int[,,] mainData = new int [sampleNames.Count, outputList.Count, orpList.Count]; //Hodnoty pro hlavní výstupy int[,,] secondaryData = new int [sampleNames.Count, secondaryOutputList.Count, orpList.Count]; //Hodnoty pro vedlejší výstupy List <CloudSettings> settings = Model.Cloud.SETTINGSGetSettings(); List <CloudOutput> filter = new List <CloudOutput>(); for (int i = 0; i < sampleNames.Count; i++) { foreach (var item in Util.outputDataCache) { if (item.sampleName == sampleNames[i]) { filter.Add(item); } } //Uložení havních výstupů for (int j = 0; j < outputList.Count; j++) { for (int k = 0; k < orpList.Count; k++) { foreach (var item in filter) { if (item.nameOrp == orpList[k]) { if (item.output.ContainsKey("M_" + outputList[j])) { mainData[i, j, k] = ((int)item.output["M_" + outputList[j]]); } else { mainData[i, j, k] = (-1); } } } } } //Uložení vedlejších výstupů for (int j = 0; j < secondaryOutputList.Count; j++) { for (int k = 0; k < orpList.Count; k++) { foreach (var item in filter) { if (item.nameOrp == orpList[k]) { if (item.output.ContainsKey(secondaryOutputList[j])) { secondaryData[i, j, k] = ((int)item.output[secondaryOutputList[j]]); } else { secondaryData[i, j, k] = (-1); } } } } } } //Vytváření souboru root //Hlavní výstupy /*JSONwriter.CreateJsonRoot( * new JObject * ( * new JProperty("orplist", orpList), * new JProperty("outputlist", outputList), * new JProperty("outputresultcolor", new JArray() { * GetValueFromSettingsList(settings, "output_result-1_color"), * GetValueFromSettingsList(settings, "output_result0_color"), * GetValueFromSettingsList(settings, "output_result1_color"), * GetValueFromSettingsList(settings, "output_result2_color"), * GetValueFromSettingsList(settings, "output_result3_color") }) * ), * "root_main" * ); * //Vedlejší výstupy * JSONwriter.CreateJsonRoot( * new JObject * ( * new JProperty("orplist", orpList), * new JProperty("outputlist", secondaryOutputList), * new JProperty("outputresultcolor", new JArray() { * GetValueFromSettingsList(settings, "output_result-1_color"), * GetValueFromSettingsList(settings, "output_result0_color"), * GetValueFromSettingsList(settings, "output_result1_color"), * GetValueFromSettingsList(settings, "output_result2_color"), * GetValueFromSettingsList(settings, "output_result3_color") }) * ), * "root_secondary" * );*/ //Všechno dohromady JSONwriter.CreateJsonRoot( new JObject ( new JProperty("orplist", orpList), new JProperty("mainoutputlist", outputList), new JProperty("secondaryoutputlist", secondaryOutputList), new JProperty("outputresultcolor", new JArray() { GetValueFromSettingsList(settings, "output_result-1_color"), GetValueFromSettingsList(settings, "output_result0_color"), GetValueFromSettingsList(settings, "output_result1_color"), GetValueFromSettingsList(settings, "output_result2_color"), GetValueFromSettingsList(settings, "output_result3_color") }) ), "root" ); var arrayMain = JArray.FromObject(mainData); var arraySec = JArray.FromObject(secondaryData); JSONwriter.CreateJson( new JObject ( new JProperty("samplename", sampleNames), new JProperty("maindata", arrayMain), new JProperty("secondarydata", arraySec) ), "_" + Util.GetModelDate() );; //Vytváření souboru konkrétních dat //Hlavní výstupy /*JSONwriter.CreateJson( * new JObject * ( * new JProperty("samplename",sampleNames), * new JProperty("data", arrayMain) * ), * "_main" * );*/ //Vedlejší výstupy /*JSONwriter.CreateJson( * new JObject * ( * new JProperty("samplename", sampleNames), * new JProperty("data", arraySec) * ), * "_secondary" * );*/ //Util.l($"Počet záznamů v cache: {Util.outputDataCache.Count()}"); //Util.StopWatch("Vypočet dokončen!"); //Output(); }