Browse Source

ntvl.pl/LPST.pm - refactored the test board to be in notational evaluator. Added accessors for enums. wrote some functions for reading notation and determining whose move it is

master
gashapwn 3 years ago
parent
commit
001ebf5c6d
2 changed files with 118 additions and 15 deletions
  1. +61
    -1
      LPST.pm
  2. +57
    -14
      ntvl.pl

+ 61
- 1
LPST.pm View File

@@ -723,10 +723,70 @@ sub new {
} map {
$AXIS_RV{$_}
}(1...11);
return bless $self, $class;
}

sub P1 {
return $P1;
}
sub P2 {
return $P2;
}

sub MG_A {
return $MG_A;
}
sub MG_I{
return $MG_I;
}
sub MG_N{
return $MG_N;
}
sub MG_IT{
return $MG_I;
}
sub MG_H{
return $MG_H;
}
sub MG_S{
return $MG_S;
}
sub MG_RC{
return $MG_RO;
}
sub MG_HS{
return $MG_H;
}
sub MG_RO{
return $MG_RC;
}
sub MG_B{
return $MG_B;
}
sub MG_P{
return $MG_P;
}
sub MG_IM{
return $MG_I;
}
sub MG_F{
return $MG_F;
}
sub MG_QS{
return $MG_QS;
}
sub MG_AU{
return $MG_A;
}
sub MG_SY{
return $MG_SY;
}
sub MG_Q{
return $MG_Q;
}


binmode(STDOUT, ":utf8");

return 1;


+ 57
- 14
ntvl.pl View File

@@ -10,23 +10,66 @@ use LPST;

my $b;

# my $m1 = "F7";
# my $m1 = "C10";
# my $m2 = "B3";
# my $c1 = $MG_SY;
# my $c2 = $MG_A;
# Move types
my $SUMMON = 0b00000001;
my $MOVE = 0b00000010;
my $CAPTURE = 0b00000100;
my $SACRIFICE = 0b00001000;
# my $SPELL = 0b10000000;
my $DRAW = 0b01000000;

# $board{$m1} = $P1.$DIV.$c1;
# $board{$m2} = $P2.$DIV.$c2;
sub mt1($$){
my ($s0, $tc) = (shift, shift);

return $SUMMON if $s0 =~ /\*/;
return $MOVE if $s0 =~ /([A-Za-z]{1,2}[0-9]{1,2}){2}/;
return $CAPTURE if $s0 =~ /\~/;
return $SACRIFICE if $s0 =~ /([A-Za-z]{1,2}[0-9]{1,2}' ?){2}/;
return $DRAW if $tc <= 1;
}

sub f2($$$){
my ($s0, $tc, $apl) = (shift, shift, shift);
my $mt0;

$mt0 = mt1($s0, $tc);
}

sub f1($){
my $ns0 = shift;
my $apl;
my $tc;

$apl = LPST->P1;

# for my $el (get_block_cell($P1)){
# printf("%s\n", $el);
# }
$tc = 0;
for my $s0 (split(/\n/, $ns0)){
$apl = f2($s0, $tc, $apl);
# printf(">>%s\n", $s0);
$tc++;
}
}

# shade_all_mvmt($P1);
# disp_board();
my $ns0;

$b = LPST->new();
$ns0 = "";
$ns0 .= "A I It Au\n";
$ns0 .= "H S Im Im\n";

f1($ns0);


my $m1 = "C10";
my $m2 = "B3";
my $c1 = LPST->MG_SY;
my $c2 = LPST->MG_A;

# $b = LPST->new();

# $board{$m1} = $P1.$DIV.$c1;
# $board{$m2} = $P2.$DIV.$c2;

# $b->shade_all_p1_mvmt();
$b->disp_board();
# $b->disp_board();

Loading…
Cancel
Save