public static ViewModel CreateAddition(int max) { var count = Random.Next (2, max + 1); var first = Random.Next (1, count); var second = count - first; var vm = new ViewModel (); var itemImage = ItemHelper.Next (); var itemTitle = System.IO.Path.GetFileNameWithoutExtension (itemImage); Enumerable.Range (1, first).ForEach (x => { vm.FirstItems.Add(new Item{ Image = itemImage, Title = itemTitle, Selected = (i)=> { SoundPlayer.Speak(i.Count); vm.FirstActivated(); vm.Update(); } }); }); Enumerable.Range (1, second).ForEach (x => { vm.SecondItems.Add(new Item{ Image = itemImage, Title = itemTitle, Selected = (i)=> { SoundPlayer.Speak(i.Count); vm.SecondActivated(); vm.Update(); } }); }); return vm; }
void newModel() { if (model != null) model.Dispose (); model = ViewModel.CreateAddition (10); model.Finished = finished; view.SetupModel (model); SoundPlayer.SpeakIntro (); }
public void SetupModel(ViewModel model) { this.model = model; firstCard.Clear (); secondCard.Clear (); totalView.Clear (); firstCard.Items = model.FirstItems.Select (x => new ItemView (x) { Tapped = (i) => { i.Select (model.FirstCount); }, }).ToList (); secondCard.Items = model.SecondItems.Select (x => new ItemView (x) { Tapped = (i)=>{ i.Select(model.SecondCount); }, }).ToList(); model.FirstActivated = () => { secondCard.Lock(); firstCard.Activated (); }; model.FirstCompleted = (i) => { firstCard.Completed(i); secondCard.Activated(); }; model.SecondActivated = () => { secondCard.Activated(); firstCard.Lock(); }; model.SecondCompleted = (i) => { secondCard.Completed(i); firstCard.Activated(); }; model.OneCompleted = async () => { await Task.Delay(1000); PulseOperator(); SoundPlayer.SpeakPlus(); }; }
public void SetupModel(ViewModel model) { this.model = model; firstCard.Clear (); secondCard.Clear (); totalView.Clear (); HideNumbers (); firstCard.Items = model.FirstItems.Select (x => new ItemView (x) { Tapped = (i) => { i.Select (model.FirstCount); }, }).ToList (); secondCard.Items = model.SecondItems.Select (x => new ItemView (x) { Tapped = (i)=>{ i.Select(model.SecondCount); }, }).ToList(); model.FirstActivated = () => { secondCard.Lock(); firstCard.Activated (); }; model.FirstCompleted = (i) => { firstCard.Completed(i); secondCard.Activated(); }; model.SecondActivated = () => { secondCard.Activated(); firstCard.Lock(); }; model.SecondCompleted = (i) => { secondCard.Completed(i); firstCard.Activated(); }; model.OneCompleted = async () => { await Task.Delay(1000); if(!model.AreBothFinished()){ PulseOperator(); SoundPlayer.SpeakPlus(); } else if(model.Level == 1) { await SoundPlayer.SpeakQuestion(); totalView.Activated(); } else { await SoundPlayer.SpeakQuestion(); ShowNumbers(); } }; model.FlipTotal = () => { UpdateTotal(); }; model.WrongValue = () => { //TODO: play error }; }