public Animal(MutexTable table, int range, int tickTimeMsec, WanderDelegate wander, EvadeOrHuntDelegate evadeOrHunt) { _thread = new Thread(doBehaviour); _thread.SetApartmentState(ApartmentState.STA); if (table == null) throw new NullReferenceException(); _table = table; _tickTimeMsec = tickTimeMsec; if (range <= 0) throw new InvalidOperationException(); _range = range; if (evadeOrHunt == null || wander == null) throw new InvalidOperationException(); _evadeOrHunt = evadeOrHunt; _wander = wander; _symbol = new Ellipse(); Dispatcher.FromThread(_table.WindowThread).BeginInvoke(DispatcherPriority.Render, (Action)(() => { _table.DrawingGrid.Children.Add(_symbol); } )); }
public Wolf(MutexTable table, WanderDelegate wander, EvadeOrHuntDelegate evadeOrHunt) : base(table, table.WolfRange, table.WolfTickTimeMsec, wander, evadeOrHunt) { _symbol.Height = 12; _symbol.Width = 12; _symbol.Fill= System.Windows.Media.Brushes.Blue; _symbol.StrokeThickness = 2; }
public Wolf(MutexTable table, WanderDelegate wander, EvadeOrHuntDelegate evadeOrHunt) : base(table, table.WolfRange, table.WolfTickTimeMsec, wander, evadeOrHunt) { _symbol.Height = 12; _symbol.Width = 12; _symbol.Fill = System.Windows.Media.Brushes.Blue; _symbol.StrokeThickness = 2; }
public Sheep(MutexTable table, WanderDelegate wander, EvadeOrHuntDelegate evadeOrHunt) : base(table, table.SheepRange, table.SheepTickTimeMsec, wander, evadeOrHunt) { //do nothing for now _symbol.Height = 10; _symbol.Width = 10; _symbol.Stroke = System.Windows.Media.Brushes.Red; _symbol.Fill = System.Windows.Media.Brushes.Red; _symbol.StrokeThickness = 2; }
public Animal(MutexTable table, int range, int tickTimeMsec, WanderDelegate wander, EvadeOrHuntDelegate evadeOrHunt) { _thread = new Thread(doBehaviour); _thread.SetApartmentState(ApartmentState.STA); if (table == null) { throw new NullReferenceException(); } _table = table; _tickTimeMsec = tickTimeMsec; if (range <= 0) { throw new InvalidOperationException(); } _range = range; if (evadeOrHunt == null || wander == null) { throw new InvalidOperationException(); } _evadeOrHunt = evadeOrHunt; _wander = wander; _symbol = new Ellipse(); Dispatcher.FromThread(_table.WindowThread).BeginInvoke(DispatcherPriority.Render, (Action)(() => { _table.DrawingGrid.Children.Add(_symbol); } )); }
private void Window_Loaded(object sender, RoutedEventArgs e) { tb = new MutexTable(50, 9, 5, grid, 300); grid.ShowGridLines = true; }