public void StartNewGame(Func <string, MYCIN_TERM_FACTOR> AskFunc) { Characters = new List <character>(); Questions = new List <question>(); foreach (var item in dbe.Characters) { Characters.Add(new character(item)); } foreach (var item in dbe.Questions) { Questions.Add(new question(item)); } TrackAnsweredQuestions = new Stack <question>(); TrackFirstCharacterChange = new Stack <character>(); var RandomCharacter = new character(Characters.PickRandom()); var RandomQuestion = RandomCharacter.questions.PickRandom(); var qIndex = Questions.FindIndex(x => x.id == RandomQuestion.id); var ans = AskFunc(Questions[qIndex].value); Questions[qIndex].Answer = ans; TrackFirstCharacterChange.Push(new character(Characters.FirstOrDefault())); TrackAnsweredQuestions.Push(Questions[qIndex]); foreach (var c in Characters) { c.questions.Shuffle(); } }
public long Add(character character) { db.characters.Add(character); db.SaveChanges(); Load(); return(db.characters.ToList().LastOrDefault().id); }
public void Update(int characterID, character newCharacterData) { db.Entry(newCharacterData).State = EntityState.Modified; db.Configuration.ValidateOnSaveEnabled = false; db.SaveChanges(); db.Configuration.ValidateOnSaveEnabled = true; Load(); }
public character(character c) { this.id = c.id; this.name = c.name; this.description = c.description; this.img_path = c.img_path; this.Score = c.Score; this.ScoreTracking = new Stack <double>(c.ScoreTracking.Reverse()); this.questions = new List <question>(c.questions); }
private int FindNextQuestionIndex(character c) { foreach (var item in c.questions) { var qIndex = Questions.FindIndex(x => x.id == item.id); if (!Questions[qIndex].IsAnswered) { return(qIndex); } } return(-1); }
public async Task Append() { await Task.Run(() => { try { var fileLines = File.ReadAllLines(filepath, Encoding.Default); if (fileLines.FirstOrDefault() == defaultStartLine || string.IsNullOrEmpty(fileLines.FirstOrDefault())) { BeforeReturn(); return; } var newCharacter = new character(); newCharacter.name = fileLines[0]; newCharacter.description = fileLines[1]; newCharacter.img_path = string.Empty; var newCharacter_Questons = fileLines.Skip(3).ToArray(); fileLines = null; var qCollection = HandleQuestions(newCharacter_Questons); if (qCollection.Count == 0) { BeforeReturn(); return; } newCharacter.questions = qCollection; newCharacter.id = db.Add(newCharacter); newCharacter.img_path = string.Format("Design/characters/{0}.png", newCharacter.id); db.Update((int)newCharacter.id, newCharacter); new Bitmap(100, 100).Save(newCharacter.img_path); BeforeReturn(); return; } catch { BeforeReturn(); return; } }); }