Mercurial > eagle-eye
annotate inference.pl @ 28:99723b8f348b
added rule_corruption
author | "Rex Tsai <chihchun@kalug.linux.org.tw>" |
---|---|
date | Fri, 10 Oct 2008 04:42:05 +0800 |
parents | dd85b55eec2a |
children | dbec53e754e3 |
rev | line source |
---|---|
27
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
1 #!/usr/bin/perl |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
2 use strict; |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
3 use Ikariam; |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
4 use Data::Dumper; |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
5 |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
6 package main; |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
7 |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
8 our $cities; |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
9 our $server = 's2.ikariam.tw'; |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
10 sub Warn |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
11 { |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
12 my ($city, $msg) = @_; |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
13 printf("WARNING: http://%s/index.php?view=city&id=%s (%s) %s \n", |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
14 $server, $city, $cities->{$city}->{name}, $msg); |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
15 } |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
16 |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
17 our $i = new Ikariam($server, "chihchun", "c795d57d"); |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
18 $i->login; |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
19 $cities = $i->check; |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
20 $i->logout; |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
21 print(Dumper($cities)); |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
22 |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
23 sub rule_happiness |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
24 { |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
25 my $id = shift; |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
26 |
28
99723b8f348b
added rule_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
27
diff
changeset
|
27 if($cities->{$id}->{happiness} >= 3) { |
27
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
28 Warn($id, sprintf("is not happy (%s)!", $cities->{$id}->{happiness_text})); |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
29 } |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
30 } |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
31 |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
32 sub rule_resource |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
33 { |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
34 my $id = shift; |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
35 |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
36 # checking goods |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
37 foreach my $good (qw/wood wine marble crystal/) { |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
38 if($cities->{$id}->{$good} <= 100) { |
28
99723b8f348b
added rule_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
27
diff
changeset
|
39 Warn($id, sprintf("Running out %s (%d)!", $good, $cities->{$id}->{$good})); |
27
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
40 } |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
41 } |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
42 } |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
43 |
28
99723b8f348b
added rule_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
27
diff
changeset
|
44 # 貪腐 |
99723b8f348b
added rule_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
27
diff
changeset
|
45 sub rule_corruption |
99723b8f348b
added rule_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
27
diff
changeset
|
46 { |
99723b8f348b
added rule_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
27
diff
changeset
|
47 my $id = shift; |
99723b8f348b
added rule_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
27
diff
changeset
|
48 |
99723b8f348b
added rule_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
27
diff
changeset
|
49 if($cities->{$id}->{corruption} > 0) { |
99723b8f348b
added rule_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
27
diff
changeset
|
50 Warn($id, sprintf("corruption is %d", $cities->{$id}->{corruption})); |
99723b8f348b
added rule_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
27
diff
changeset
|
51 } |
99723b8f348b
added rule_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
27
diff
changeset
|
52 } |
99723b8f348b
added rule_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
27
diff
changeset
|
53 |
99723b8f348b
added rule_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
27
diff
changeset
|
54 # space |
27
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
55 # Checking rules |
28
99723b8f348b
added rule_corruption
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
27
diff
changeset
|
56 foreach my $procedure (qw/rule_happiness rule_corruption rule_resource/) { |
27
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
57 foreach my $id (keys(%$cities)) { |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
58 eval(sprintf("%s(%s);", $procedure, $id)); |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
59 } |
dd85b55eec2a
implemented basic inference engine.
"Rex Tsai <chihchun@kalug.linux.org.tw>"
parents:
diff
changeset
|
60 } |