Perl Monk, Perl Meditation PerlMonks

### Re^5: implementing a scrabble-esque game on Termux III

by tybalt89 (Prior)
 on Dec 03, 2019 at 08:43 UTC Need Help??

```    my \$newmask = ( \$old ^ \$word ) =~ tr/\0/\xff/cr;
\$flip and ( \$board, \$heights ) = flip \$board, \$heights;
substr \$board, \$pos, length \$word, \$word;

substr \$heights, \$pos, length \$highs,
( \$highs & \$newmask ) =~ tr/0-4/1-5/r | ( \$highs & ~\$newmask );
\$flip and ( \$board, \$heights ) = flip \$board, \$heights;
my \$tiles = join '', @tiles;
say "word is \$word";
\$tiles =~ s/\$_// for split //, \$word & \$newmask;

let me try...

```    my \$newmask = ( \$old ^ \$word ) =~ tr/\0/\xff/cr;

\$newmask is "\xff" where the old and new words differ, that is a new tile must be used. It is "\0" where no tile is to be placed (using existing board state).

```    \$flip and ( \$board, \$heights ) = flip \$board, \$heights;
substr \$board, \$pos, length \$word, \$word;

#say "new mask is \$newmask"; # \$newmask has unprintable characters
+, use something like Data::Dump that will show them.
substr \$heights, \$pos, length \$highs,
( \$highs & \$newmask ) =~ tr/0-4/1-5/r | ( \$highs & ~\$newmask );

hehehe! GOAL => increment the stack sizes for only the new tiles.

\$highs & \$newmask produces a string that only has non-null characters where new tiles are to be played. In other words, it isolates the stacks for the new tiles, everywhere else is "\0".
=~ tr/0-4/1-5/r increments the height for each place a new tile is played.
~\$newmask inverts \$newmask to be "\xff" only where old tiles remain visible.
\$highs & ~\$newmask produces a string with only the unchanged stack values (and "\0" where the new values are).
Finally, the | puts the old and new stack counts together so they can be replaced in the heights string.

```    \$flip and ( \$board, \$heights ) = flip \$board, \$heights;
my \$tiles = join '', @tiles;
say "word is \$word";
\$tiles =~ s/\$_// for split //, \$word & \$newmask;

This removes the tiles that are used for this word from the string of all tiles, soon to be replaced in @tiles.

Hope this helps...

Replies are listed 'Best First'.
Re^6: implementing a scrabble-esque game on Termux III and how best to create a main data structure
by Aldebaran (Deacon) on Dec 10, 2019 at 05:19 UTC
Hope this helps...

It does. I was able to see these masks by unpacking them as hexidecimal. Here's a bit of output:

Fishing for tips. Thanks for your comment,

Create A New User
Node Status?
node history
Node Type: note [id://11109582]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others examining the Monastery: (8)
As of 2020-11-30 12:10 GMT
Sections?
Information?
Find Nodes?
Leftovers?
Voting Booth?

No recent polls found

Notices?