static void Main(string[] args) { // [1] 그냥 호출 Driver.Right(); Driver.Left(); Driver.Boost(); Console.WriteLine(); // [2] 대리자 선언 할당 같이 //Driver driver = new Driver(); // static으로 만들면 인스턴트 만들지 X // 집가는 대리자 생성 GoHome goHome = new GoHome(Driver.Left); goHome += Driver.Right; goHome += Driver.Boost; goHome.Invoke(); Console.WriteLine(); //[3] 대리자 선언, 할당 따로 Meeting meeting; meeting = new Meeting(Hi); meeting += LTNS; meeting(); Console.WriteLine(); //[4] 스태틱 메서드 아닐때 Insa insa = new Insa(); Meeting meeting2 = new Meeting(insa.Bye); // 다른 대리자는 인스턴트 이름 다르게 생성 meeting2(); }
public Sequencer <BlackBoard> BuildTree(BlackBoard blackboard) { Sequencer <BlackBoard> rootNode = new Sequencer <BlackBoard>(blackboard); Iddle iddleNode = new Iddle(blackboard); rootNode.AddChild(iddleNode); Sequencer <BlackBoard> mining = new Sequencer <BlackBoard>(blackboard); rootNode.AddChild(mining); GoToMine goMineNode = new GoToMine(blackboard); Mine mineNode = new Mine(blackboard); mining.AddChild(goMineNode); mining.AddChild(mineNode); Sequencer <BlackBoard> depositing = new Sequencer <BlackBoard>(blackboard); rootNode.AddChild(depositing); GoHome goHomeNode = new GoHome(blackboard); Deposit depoNode = new Deposit(blackboard); depositing.AddChild(goHomeNode); depositing.AddChild(depoNode); return(rootNode); }
static void Main(string[] args) { // [1] 메서드 따로 따로 호출 CarDriver.GoLeft(); CarDriver.GoForward(); CarDriver.GoRight(); // [2] 대리자를 통한 메서드 등록 및 호출 GoHome go = new GoHome(CarDriver.GoLeft); go += new GoHome(CarDriver.GoForward); go += new GoHome(CarDriver.GoRight); go += new GoHome(CarDriver.GoLeft); // 등록 go -= new GoHome(CarDriver.GoLeft); // 취소 go(); // 집에 갑시다... 한번 호출 console.log(); // [3] 대리자를 통해서 한번에 2개의 메서드 호출... Say say; // [a] 대리자 형 변수 선언 say = new Say(Hi); // [b] Hi 메서드 지정 say += new Say(Hello); // [c] Hello 메서드 지정 say(); // [d] 대리자로 두 개의 메서드 호출 // [4] 대리자를 통해서 호출 Insa insa = new Insa(); Say say2 = new Say(insa.Bye); say2 += new Say(insa.Bye); say2(); }
void Start() { text = GameObject.FindGameObjectWithTag("PlayerWinsText").GetComponent <TextMeshProUGUI>(); chooseHomeScript = FindObjectOfType <GoHome>(); thisHomeBush = this.gameObject; }
void HandleNavigationManagerPropertyChanged(object sender, PropertyChangedEventArgs e) { switch (e.PropertyName) { case NavigationManager.Properties.IsHome: GoHome.RaiseExecuteChanged(); break; } }
public MainViewModel() { Router = new RoutingState(); GoHome = ReactiveCommand.CreateFromObservable(() => Router.NavigateAndReset.Execute(new TitleViewModel(this))); GoBack = Router.NavigateBack; GoHome.Execute().Subscribe(); }
void Start() { currentHunger = 0; maxHunger = 5; bugText.text = "Bugs: " + currentHunger + "/" + maxHunger; chameleonIsFull = false; chooseHomeScript = FindObjectOfType <GoHome>(); }
public override bool AfterExitingRabbitHole() { BabyBasket babyBasket = Actor.GetObjectInRightHand() as BabyBasket; GoHome goHome = GoHome.Singleton.CreateInstance(Actor.LotHome, Actor, GetPriority(), false, false) as GoHome; if (SimFollowers != null) { goHome.SimFollowers = new List <Sim>(); foreach (Sim sim in SimFollowers) { if (sim.LotHome != Actor.LotHome) { Relationship relationship = Relationship.Get(Actor, sim, false); if (relationship == null || relationship.LTR.Liking < Pregnancy.kLikingToGoHomeWithMother) { continue; } sim.GreetSimOnLot(Actor.LotHome); } goHome.SimFollowers.Add(sim); } } Actor.InteractionQueue.PushAsContinuation(goHome, true); GoInsideLot instance = GoInsideLot.Singleton.CreateInstance(Actor.LotHome, Actor, GetPriority(), false, false) as GoInsideLot; Actor.InteractionQueue.PushAsContinuation(instance, true); if (babyBasket != null) { Pregnancy.PutDownBabyBasket instance2 = Pregnancy.PutDownBabyBasket.Singleton.CreateInstance(babyBasket, Actor, GetPriority(), false, false) as Pregnancy.PutDownBabyBasket; Actor.InteractionQueue.PushAsContinuation(instance2, true); Pregnancy.SetupPickUpBabiesInBasket(Actor, babyBasket, GetPriority(), false, false); } return(base.AfterExitingRabbitHole()); }
private bool FinishAdoption(Sim pet) { if (pet != null) { pet.InteractionQueue.CancelAllInteractions(); pet.SetObjectToReset(); SpeedTrap.Sleep(); pet.UpdateBlockTime(); Actor.ShowTNSAndPlayStingIfSelectable("sting_pet_adopt", TNSNames.AdoptLitterTNS, Target, pet, null, null, pet.IsFemale, false, new object[] { pet }); if (pet == Sim.ActiveActor) { LotManager.SelectNextSim(); } if (pet.Household != null) { pet.Household.Remove(pet.SimDescription); } Actor.Household.Add(pet.SimDescription); Relationships.CheckAddHumanParentFlagOnAdoption(Actor.SimDescription, pet.SimDescription); if (Actor.Partner != null) { Relationships.CheckAddHumanParentFlagOnAdoption(Actor.Partner, pet.SimDescription); } InteractionInstance entry = new SocialInteractionA.Definition("Talk To Pet", new string[0x0], null, false).CreateInstance(pet, Actor, GetPriority(), false, false); List <Sim> list = new List <Sim>(); list.Add(pet); GoHome home = GoHome.Singleton.CreateInstance(Actor.LotHome, Actor, GetPriority(), false, false) as GoHome; home.SimFollowers = list; Actor.InteractionQueue.AddNext(home); return(Actor.InteractionQueue.AddNext(entry)); } return(false); }
private void GoHomeButton_Click(object sender, EventArgs e) { this.Dismiss(); GoHome?.Invoke(this, new EventArgs()); }
private void buttonAddQuestion_Click(object sender, RoutedEventArgs e) { if (question.Id == 0) { bool dateCheck = true; foreach (var item in questionsRepo.Data) { if ((DateTime)datePicker.SelectedDate == item.Date) { dateCheck = false; break; } } if (dateCheck && (DateTime)datePicker.SelectedDate >= DateTime.Now.Date) { List <Answer> newAnswers = new List <Answer>(); if (!String.IsNullOrEmpty(textBoxQuestionText.Text)) { var newDate = (DateTime)datePicker.SelectedDate; var newQuestion = new Question { Date = newDate.Date, Text = textBoxQuestionText.Text, Explanation = textBoxExplanation.Text, }; int textCount = 0; int checkCount = 0; int checkNull = 0; List <Answer> answers = new List <Answer> { new Answer { Text = textBox1.Text, IsCorrect = (bool)checkBox1.IsChecked }, new Answer { Text = textBox2.Text, IsCorrect = (bool)checkBox2.IsChecked }, new Answer { Text = textBox3.Text, IsCorrect = (bool)checkBox3.IsChecked }, new Answer { Text = textBox4.Text, IsCorrect = (bool)checkBox4.IsChecked } }; foreach (var item in answers) { if (!String.IsNullOrEmpty(item.Text)) { textCount++; } if (item.IsCorrect) { checkCount++; } if (String.IsNullOrEmpty(item.Text) && item.IsCorrect) { checkNull++; } } if (textCount > 0) { if (checkCount > 0) { if (checkNull == 0) { foreach (var item in answers) { if (!String.IsNullOrEmpty(item.Text)) { newAnswers.Add(item); } } newQuestion.Answers = newAnswers; questionsRepo.AddItem(newQuestion); MessageBox.Show("Your question was successefully added", "Success", MessageBoxButton.OK, MessageBoxImage.Information); GoHome?.Invoke(); } else { MessageBox.Show("You can't pick empty answer as a correct one", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } } else { MessageBox.Show("You can't create question without choosing at least one correct answer", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } } else { MessageBox.Show("You can't create question without answers", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } } else { MessageBox.Show("You can't create question without text", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } } else { MessageBox.Show("You can't create question for this date", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } } //редактирование вопроса и ответов к нему else { bool dateCheck = true; if (question.Date != (DateTime)datePicker.SelectedDate) { foreach (var item in questionsRepo.Data) { if ((DateTime)datePicker.SelectedDate == item.Date) { dateCheck = false; break; } } } if (dateCheck && (DateTime)datePicker.SelectedDate >= DateTime.Now.Date) { List <Answer> answers = new List <Answer>(); question.Date = (DateTime)datePicker.SelectedDate; question.Explanation = textBoxExplanation.Text; question.Text = textBoxQuestionText.Text; if (!String.IsNullOrEmpty(question.Text)) { var checkBoxes = GetCheckBoxes(); bool res = true; int checkNull = 0; int textCount = 0; var removeAnswers = new List <Answer>(); foreach (var answer in question.Answers) { CheckBox cb = checkBoxes.FirstOrDefault(c => chbAnswerDict[c.Name] == answer.Id); var tb = cb.Content as TextBox; if (!String.IsNullOrEmpty(tb.Text)) { textCount++; answer.Text = tb.Text; answer.IsCorrect = (bool)cb.IsChecked; if ((bool)cb.IsChecked) { checkNull++; } //answerRepo.EditItem(answer, answer.Id); } else if ((bool)cb.IsChecked) { MessageBox.Show("You can't pick empty answer as a correct one", "Error", MessageBoxButton.OK, MessageBoxImage.Error); res = false; } else { removeAnswers.Add(answer); } checkBoxes.Remove(cb); } if (checkBoxes.Count() > 0) { foreach (var cb in checkBoxes) { var tb = cb.Content as TextBox; if (!String.IsNullOrEmpty(tb.Text)) { var newAnswer = new Answer { Text = tb.Text, IsCorrect = (bool)cb.IsChecked }; if ((bool)cb.IsChecked) { checkNull++; } textCount++; question.Answers.Add(newAnswer); } else if ((bool)cb.IsChecked) { MessageBox.Show("You can't pick empty answer as a correct one", "Error", MessageBoxButton.OK, MessageBoxImage.Error); res = false; } } } if (textCount > 0) { if (checkNull > 0) { if (res) { foreach (var item in removeAnswers) { question.Answers.Remove(item); answerRepo.RemoveItem(item); } questionsRepo.EditItem(question, question.Id); MessageBox.Show("Your question was successefully edited", "Success", MessageBoxButton.OK, MessageBoxImage.Information); GoHome?.Invoke(); } } else { MessageBox.Show("You can't create question without choosing at least one correct answer", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } } else { MessageBox.Show("You can't create question without answers", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } } else { MessageBox.Show("You can't create question without text", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } } else { MessageBox.Show("You can't create question for this date", "Error", MessageBoxButton.OK, MessageBoxImage.Error); } } }
static void Main(string[] args) { #region 单例测试 //for (int i = 0; i < 10; i++) //{ // Console.WriteLine("实例ID:{0}", Singleton.Instance.InstanceId); //} #endregion #region 工厂模式 //Database database = DatabaseFactory.CreateDatabase<SqlServerDatabase>(); //database.ExecuteSql(); //database = DatabaseFactory.CreateDatabase<MySqlDatabase>(); //database.ExecuteSql(); //database = DatabaseFactory.CreateDatabase<OracleDatabase>(); //database.ExecuteSql(); #endregion #region 抽象工厂模式 //CarFactory carFactory = new SHFactory(); //Car car = carFactory.CreateGeep(); //car.Run(); //car = carFactory.CreateSuv(); //car.Run(); //car = carFactory.CreateTruck(); //car.Run(); //carFactory = new GZFactory(); //car = carFactory.CreateGeep(); //car.Run(); //car = carFactory.CreateSuv(); //car.Run(); //car = carFactory.CreateTruck(); //car.Run(); #endregion #region 模板方法模式 //Daily daily; //Console.WriteLine("我的日常:"); //daily = new MyDaily(); //daily.Routine(); //Console.WriteLine("老板的日常:"); //daily = new BossDaily(); //daily.Routine(); #endregion #region 代理模式 //IDepartmentManager assistant = new DepartAssistant(new Minister()); //assistant.Apply(); //assistant.Appove(); //assistant.Loan(); #endregion #region 建造者模式 //var maJiang = new MaJiang(); //var pocker = new Pocker(); //var sing = new Sing(); //var entertainmentBuilder = new EntertainmentBuilder(); //Console.WriteLine("张三娱乐:"); //var zhangsanEntertainment = entertainmentBuilder.Build(new List<Activity> { maJiang, pocker }); //zhangsanEntertainment.HaveFun(); //Console.WriteLine(); //Console.WriteLine("李四娱乐:"); //var lisiEntertainment = entertainmentBuilder.Build(new List<Activity> { maJiang, sing }); //lisiEntertainment.HaveFun(); //Console.WriteLine(); //Console.WriteLine("王五娱乐:"); //var wangwuEntertainment = entertainmentBuilder.Build(new List<Activity> { sing }); //wangwuEntertainment.HaveFun(); //Console.WriteLine(); //Console.WriteLine("赵六娱乐:"); //var zhaoliuEntertainment = entertainmentBuilder.Build(new List<Activity> { maJiang, pocker, sing }); //zhaoliuEntertainment.HaveFun(); //Console.WriteLine(); #endregion #region 装饰模式 //Woman fengjie = new CommonWoman(); //fengjie.Describe(); //Woman liuyifei = new CommonWoman(); //liuyifei = new ColoredHairWoman(liuyifei); //liuyifei = new LongLeggedWoman(liuyifei); //liuyifei = new PlentifulWoman(liuyifei); //liuyifei.Describe(); #endregion #region 策略模式 Console.WriteLine("我要回家:"); GoHome homing = new GoHome(new Walking()); homing.Transport(); homing = new GoHome(new Bus()); homing.Transport(); homing = new GoHome(new Metro()); homing.Transport(); #endregion Console.Read(); }