Mercurial > eagle-eye
diff 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 diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/inference.pl Fri Oct 10 03:38:49 2008 +0800 @@ -0,0 +1,49 @@ +#!/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)); + } +}