The stupid question is the question not asked PerlMonks

### Re: Re: Battle script

by Dog and Pony (Priest)
 on Jun 06, 2002 at 13:29 UTC ( #172182=note: print w/replies, xml ) Need Help??

in reply to Re: Battle script

A variation where the stronger one strikes (potentially)harder (and the one that gets the upper hand has the advantage):
```> perl -e "\$a=\$b=100;while(\$a>0&&\$b>0){\$a-=rand(\$b/10);\$b-=rand(\$a/10)
+;print qq(\$a | \$b\n)}"

You have moved into a dark place.
It is pitch black. You are likely to be eaten by a grue.

Replies are listed 'Best First'.
Re: Re: Re: Battle script
by rob_au (Abbot) on Jun 06, 2002 at 14:46 UTC
Oh no! You have inadvertantly tipped the scale of battle to favour the a opponent by the fact of its first attack and the effect which this has on the probability (random seed) for the retalitory attack of b - But what if the battle forces of b launch a preemptory attack?

Consider the following where Quantum::Entanglement has been used such that the victor is truly not known until the battle has been fought!

```#!/usr/bin/perl

use Quantum::Entanglement;

my \$opponent1 = entangle(1, 'a', 1, 'b');
my \$opponent2 = p_op(\$opponent1, 'eq', 'a', sub{'b'}, sub{'a'});

\$a = \$b = 100;

\$opponent1 = "\$opponent1";
\$opponent2 = "\$opponent2";

{
no strict 'refs';
while (\$\$opponent1 > 0 && \$\$opponent2 > 0){
\$\$opponent1 -= rand(\$\$opponent2 / 10);
\$\$opponent2 -= rand(\$\$opponent1 / 10);
print qq(\$\$opponent1 | \$\$opponent2\n)
}
print "And the winner is ... '",
((\$\$opponent1 < 0) ? \$opponent1 : \$opponent2),
"'\n";
}

Yes, I was bored :-)

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

How do I use this? | Other CB clients
Other Users?