Mercurial > eagle-eye
view inference.pl @ 27:dd85b55eec2a
implemented basic inference engine.
author | "Rex Tsai <chihchun@kalug.linux.org.tw>" |
---|---|
date | Fri, 10 Oct 2008 03:38:49 +0800 |
parents | |
children | 99723b8f348b |
line wrap: on
line source
#!/usr/bin/perl use strict; use Ikariam; use Data::Dumper; package main; our $cities; our $server = 's2.ikariam.tw'; sub Warn { my ($city, $msg) = @_; printf("WARNING: http://%s/index.php?view=city&id=%s (%s) %s \n", $server, $city, $cities->{$city}->{name}, $msg); } our $i = new Ikariam($server, "chihchun", "c795d57d"); $i->login; $cities = $i->check; $i->logout; print(Dumper($cities)); sub rule_happiness { my $id = shift; if($cities->{$id}->{happiness} > 3) { Warn($id, sprintf("is not happy (%s)!", $cities->{$id}->{happiness_text})); } } sub rule_resource { my $id = shift; # checking goods foreach my $good (qw/wood wine marble crystal/) { if($cities->{$id}->{$good} <= 100) { Warn($id, sprintf("Running out %s!", $good)); } } } # Checking rules foreach my $procedure (qw/rule_happiness rule_resource/) { foreach my $id (keys(%$cities)) { eval(sprintf("%s(%s);", $procedure, $id)); } }