Mon programme anti-RienFER

if ( me.has(me.objects.guitar) ) { me.objects.guitarCase.put(me.objects.guitar)); }
//if ( me.has(me.objects.guitar2) ) { me.objects.guitarCase2.put(me.objects.guitar2)); }
if ( me.objects.bed.isNotDone() ) {
 me.do(me.objects.bed.tasksMorning);
}
if ( me.history.select('type=shower').last.date != Universe.time.today ) {
  me.do(new TaskWash());
}
if (me.history.select('type=meal').last.date != Universe.time.today) {
  me.do(new TaskEat());
}
if ( me.objects.bills.position.isOn(me.objects.desktop) ) {
 me.do(me.objects.bills.select('type=check').deposit());
 me.do(me.objects.bills.putOnComputer());
 me.do(me.objects.bills.putInsideDrawer());
}
if ( me.objects.dishes.select('state=dirt').length > 8 ) {
 me.do(me.objects.dishes.select('state=dirt').taskWashing);
}
if (me.objects.clothes.isNotWashes() ) {
 // note: taskWashing is not executed when there is less than 12 items
 me.do(me.objects.clothes.select('color=white').taskWashing);
 me.do(me.objects.clothes.select('color=gray').taskWashing);
 me.do(me.objects.clothes.select('color=black').taskWashing);
 me.do(me.objects.clothes.select('type=shirt').taskHandWashing);
}
if (me.objects.select('type=recyclable and usage=complete').position.inside(me.objects.room)) {
 me.do(me.objects.select('type=recyclable and usage=complete').taskRecycle);
}
if (me.objects.appartment.floor.state == 'dirt') {
 me.do(me.objects.appartment.floor.taskSweep);
}


// Example on implementation
class animal { void live(); void die(int time); void reproduce(Animal& animal); void sleep(int time); void eat(); }
class mammals : public animal {}
class Human : public mammals {
 void do(Task& task) { task.doer = this; task.execute(); task.date=Universe.time.today; history.add(task); }
 list<Object> objects;
 list<Task> history;
}
class Task { virtual void execute() = 0; }
class TaskWashing : public Task { void execute() { /* ... */ } }
class TaskShower : public Task { void execute() { doer.remove("clothes"); doer.remove("ring"); doer.remove("glasses"); doer.goInside(shower); doer.wash(); doer.goOutside(shower); doer.wear("glasses"); doer.wear("ring"); doer.wear("clothes"); } }
class Object() {}

me = Human();