our @choices;
our %choices;
our @invotes;
+our $defcho;
sub addchoice {
- my $cho = shift @_;
- $choices{$cho} = { @_, Index => (scalar @choices) };
- push @choices, $cho;
+ my $choname = shift @_;
+ my $cho = $choices{$choname} = { @_, Index => (scalar @choices) };
+ push @choices, $choname;
+ return $cho;
}
while (<>) {
next if m/^\s*\#/;
next unless m/\S/;
if (m/^([A-Z]+)\s*\=\s*(\S.*)$/) {
- my ($cho, $desc) = ($1,$2);
- my $smaj;
+ my ($choname, $desc) = ($1,$2);
+ my $cho = addchoice($choname, Desc => $desc);
if ($desc =~ m/\[(\d+):(\d+)\]/) {
- $smaj = [$1,$2];
- }
- addchoice($cho, Desc => $desc, Smaj => $smaj);
+ $cho->{Smaj} = [$1,$2];
+ } elsif ($desc =~ m/\[default\]/) {
+ $defcho = $cho;
+ }
} elsif (m/^V:\s+(\S+)\s+(\S.*)/) {
push @invotes, [ $1, $2 ];
} else {
}
}
-if (!$choices{FD}) {
- addchoice('FD', Desc => "Further Discussion");
+$defcho ||= $choices{FD};
+if (!$defcho) {
+ $defcho = addchoice('FD', Desc => "Further Discussion");
}
-
-our $chofd = $choices{FD};
-
-die "FD has smaj?!" if $chofd->{Smaj};
+my $defi = $defcho->{Index};
+die "FD has smaj?!" if $defcho->{Smaj};
our @vab; # $vab[$ia][$ib] = V(A,B)
}
}
foreach my $ia (0..$#vs) {
- foreach my $ib (0..$#vs) {
+ foreach my $ib ($ia+1..$#vs) {
my $va = $vs[$ia];
my $vb = $vs[$ib];
if ($va < $vb) { $vab[$ia][$ib]++; }
elsif ($vb < $va) { $vab[$ib][$ia]++; }
}
}
- }
+ };
die "voter $voter $@" if $@;
}
-print p %choices;
-print p @vab;
+foreach my $iy (-2..$#choices) {
+ foreach my $ix (-2..$#choices) {
+ if ($iy==-1) {
+ if ($ix==-1) {
+ printf "+" or die;
+ } else {
+ printf "------" or die;
+ }
+ } elsif ($ix==-1) {
+ printf "|" or die;
+ } elsif ($ix==-2 && $iy==-2) {
+ printf "V(Y,X)" or die;
+ } elsif ($iy==-2) {
+ printf "%5s ", $choices[$ix] or die $!;
+ } elsif ($ix==-2) {
+ printf "%5s ", $choices[$iy] or die $!;
+ } else {
+ my $v = \( $vab[$iy][$ix] );
+ $$v += 0;
+ if ($$v) {
+ printf "%5d ", $$v or die $!;
+ } else {
+ printf "%5s ", "" or die $!;
+ }
+ }
+ }
+ printf "\n" or die $!;
+}
+
+#p %choices;
+#p @vab;