# Guardian of Middle-earth (#159)

**URL:** <https://www.ruby-forum.com/t/guardian-of-middle-earth-159/133890>\
**Category:** Ruby\
**Created:** [April 4, 2008, 5:48pm UTC](https://www.ruby-forum.com/t/guardian-of-middle-earth-159/133890 "2008-04-04T17:48:16Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![mansfiem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/fbc32d/32.png) [@mansfiem](https://www.ruby-forum.com/u/mansfiem)\
**Post date:** [April 4, 2008, 5:48pm UTC](https://www.ruby-forum.com/t/guardian-of-middle-earth-159/133890/1 "2008-04-04T17:48:16Z")

</div>

Well, I finally finished the move and caught up on sleep, and I’m now  
back and ready to start quizzing again. Keep in mind that the last  
quiz presented (i.e. Food Database) was removed for a rethink, so this  
week is again quiz #159.

The three rules of Ruby Q. 2:

1. Please do not post any solutions or spoiler discussion for this  
quiz until 48 hours have passed from the time on this message.

2. Support Ruby Q. 2 by submitting ideas as often as you can! (A  
permanent, new website is in the works for Ruby Q. 2. Until then,  
please visit the temporary website at

3. Enjoy!

Suggestion: A [QUIZ] in the subject of emails about the problem  
helps everyone on Ruby T. follow the discussion. Please reply to  
the original quiz message, if you can.

-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-

Quiz #159  
Guardian of Middle-earth

I’m a Tolkien fan, and I like computer games. So when the Lord of the  
Rings MMORPG showed up, I eagerly jumped into a virtual Middle-earth.  
My name is Gwalorin, I’m a Dwarf, a Guardian of the weak, and a  
drinker of many fine ales.

In an effort to be more effective in combat, I’d like to study my past  
combats and learn what I can from them. Perhaps there is something in  
the combat log that can show me how to be a more effective Guardian.

\*\*\* Your task this week will be to analyze the combat log and provide  
some statistics on attack types and creatures fought. \*\*\*

What kind of statistics? At the least, you should include average  
damage inflicted per creature, and also average damage per attack  
type. As an example, your report might look like this:

```
Creature Name Average
------------- -------
Brush Hunter 52
Brush Prowler 43
Vile Moor-web 44

Attack Name Average
----------- -------
Bash 84
Shield-blow 58
Sting 40

```

I’m making two combat logs available (compressed in zip format):  
Guardian[1] and Hunter[2]. Unzip these to get the combat logs as text  
files.

To give you an idea of the information available, let’s take a brief  
look at some parts of the combat log.

```
The Brush Hunter wounds you with Melee Common Med for
25 points of Common.

```

We’re interested in my effectiveness, not that of the creatures  
fought. You may ignore all lines that show a creature hitting me.

```
You wound the Brush Hunter for 30 points of Common damage.
You wound the Brush Hunter with Bash for 104 points of Common

```

damage.

Note that there are a couple, similar forms for reporting damage that  
I’ve inflicted. The first form is a simple, non-named attack; the  
second form is a special, named attack (in this case, called “Bash”).

From both of these forms, four pieces of information can be extracted:

1. The creature hit (e.g. “Brush Hunter”)
2. The attack type (e.g. “Bash”, or “Basic” for non-named)
3. The amount of damage inflicted
4. The type of damage inflicted (e.g. “Common”)

It is from this information that you should generate your report.

If you want to go beyond basic averages, a few other suggestions  
include:

```
* Minimums, maximums and frequency of use
* Counts of creatures killed (based on lines such as "Your mighty

```

blow defeated the Brush Hunter.")  
\* Variation based on damage type (while my Guardian’s combat log  
shows only Common damage, my Hunter’s log has more variety).

Finally, if you really want some extra credit, incorporate the  
following information about some of the skills. A fully-featured stats  
analyzer would take these into account.

Guardian Skills:

```
* Retaliation: Only available after a parry, each use of this

```

skill may be followed by one of Overwhelm, Whirling Retaliation or  
Thrust.  
\* Shield-swipe: Only available after a block, each use of this  
skill may be followed by Bash. Additionally, each use of Shield-swipe  
is potentially reported twice (i.e. swipe left followed by swipe  
right). Both swipes are part of a single attack. How do you determine  
whether two Shield-swipes count as one attack with two hits, or two  
separate attacks (the first with one hit and one miss)? If I inflict  
no other damage from other attack types between two Shield-swipes,  
then the two count as a single attack.  
\* Sweeping Cut: Like Shield-swipe, this is actually two attacks in  
one; use the same guidelines as Shield-swipe for determining whether  
two cuts are part of the same attack or separate attacks. In  
additionally, Sweeping Cut may hit multiple foes – any that are in  
range and in front of the Guardian.

Hunter Skills:

```
* Agile Rejoinder: Only available after a parry.
* Blindside and Swift Bow: Both skills are like Shield-swipe

```

above, allowing for two hits in one attack against one opponent.  
\* Rain of Arrows: Hits multiple targets in close proximity.  
\* Swift Bow: Another two attacks in one, against one opponent.  
\* Quick Shot vs. Quick Shot: Elvish Arrow (and similar): These are  
both the same skill, the latter with Light Oil applied to the arrows  
(inflicts Light damage). A comparison of the same skill with and  
without using Light Oil would be interesting.

[1] Guardian’s combat log: [http://www.splatbang.com/files/guardian.zip](http://www.splatbang.com/files/guardian.zip)  
[2] Hunter’s combat log: [http://www.splatbang.com/files/hunter.zip](http://www.splatbang.com/files/hunter.zip)

---

<div class="post-metadata">

**Author:** ![mansfiem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/fbc32d/32.png) [@mansfiem](https://www.ruby-forum.com/u/mansfiem)\
**Post date:** [April 9, 2008, 9:25pm UTC](https://www.ruby-forum.com/t/guardian-of-middle-earth-159/133890/2 "2008-04-09T21:25:49Z")

</div>

On Apr 4, 6:47 pm, Matthew M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Quiz #159  
> Guardian of Middle-earth

[snip]

> \*\*\* Your task this week will be to analyze the combat log and provide  
> some statistics on attack types and creatures fought. \*\*\*
> 
> What kind of statistics? At the least, you should include average  
> damage inflicted per creature, and also average damage per attack  
> type. As an example, your report might look like this:

Pardon me if I appear to be speaking for the others, but to me this is  
one of the distracting `features’ of the quiz lately–vague problem  
formulation. Personally, I have just too much of this stuff at  
work. 🙂

To me, the appeal of the quiz is that problems are clearly formulated  
and can be solved in reasonable time. Also, put it one way or the  
other–the quiz is like a challenge, and it’s always interesting to  
see how your solution compares to what others have come up with. When  
the problem statement is that vague, it’s not very likely that anyone  
can reasonably compare his solution with any other one…

Please come back to short, clearly stated quizzies, and I believe most  
of us will participate with great enthusiasm! 🙂

---

<div class="post-metadata">

**Author:** ![mansfiem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/fbc32d/32.png) [@mansfiem](https://www.ruby-forum.com/u/mansfiem)\
**Post date:** [April 10, 2008, 12:14am UTC](https://www.ruby-forum.com/t/guardian-of-middle-earth-159/133890/3 "2008-04-10T00:14:47Z")

</div>

> > What kind of statistics? At the least, you should include average  
> > damage inflicted per creature, and also average damage per attack  
> > type. As an example, your report might look like this:
> 
> Pardon me if I appear to be speaking for the others, but to me this is  
> one of the distracting `features’ of the quiz lately–vague problem  
> formulation. Personally, I have just too much of this stuff at  
> work. 🙂

“Average damage per attack type” and “average damage inflicted per  
creature” is vague?

---

<div class="post-metadata">

**Author:** ![mansfiem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/fbc32d/32.png) [@mansfiem](https://www.ruby-forum.com/u/mansfiem)\
**Post date:** [April 10, 2008, 12:33pm UTC](https://www.ruby-forum.com/t/guardian-of-middle-earth-159/133890/4 "2008-04-10T12:33:48Z")

</div>

On Thu, 10 Apr 2008 04:25:11 +0900, Alex S.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> > What kind of statistics? At the least, you should include average  
> > other–the quiz is like a challenge, and it’s always interesting to  
> > see how your solution compares to what others have come up with. When  
> > the problem statement is that vague, it’s not very likely that anyone  
> > can reasonably compare his solution with any other one…
> 
> Please come back to short, clearly stated quizzies, and I believe most  
> of us will participate with great enthusiasm! 🙂

I fully agree with what Alex wrote.

On top of that I would like to add that it is crucial for my  
participation  
that I can create a working solution within a couple of hours of  
starting  
to read the challenge.

Any time requirement above two hours greatly diminishes the chance that  
I  
will find the time to finish a solution within the 48 hour timelimit.  
Weekends are family time, and time for participating in full day  
activities, so ruby quizzes are solved in the late evenings or early  
mornings.

The earlier quizzes were attractive because the challenges was so unlike  
what I do at work. Parsing simple file formats, doing basic statistics  
on  
their content and trying to figure out “what the customer wants” from  
reading vague jargon filled texts is something people pay me to do at  
work.

Please get the quiz back to the purely artifical simplistic world of CS  
😉

```
Kristian

```

---

<div class="post-metadata">

**Author:** ![mansfiem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/fbc32d/32.png) [@mansfiem](https://www.ruby-forum.com/u/mansfiem)\
**Post date:** [April 10, 2008, 12:00pm UTC](https://www.ruby-forum.com/t/guardian-of-middle-earth-159/133890/5 "2008-04-10T12:00:48Z")

</div>

On Apr 10, 1:14 am, Matthew M. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> creature" is vague?  
> Well, not really. 🙂

But there’s also “at the least” and “your report _might_ look like  
this” and then you go into great detail no one would really get if  
he’s not a Lord of the Rings MMORPG fan too, IMHO.

As a quiz solver, it’s much more rewarding being creative in actually  
_solving_ the quiz rather than detailing/improving the quiz problem  
statement, I believe.

---

<div class="post-metadata">

**Author:** ![mansfiem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/fbc32d/32.png) [@mansfiem](https://www.ruby-forum.com/u/mansfiem)\
**Post date:** [April 10, 2008, 5:00pm UTC](https://www.ruby-forum.com/t/guardian-of-middle-earth-159/133890/6 "2008-04-10T17:00:43Z")

</div>

> “Average damage per attack type” and “average damage inflicted per  
> creature” is vague?

It’s probably more difficult than it looks like at first sight to find  
the right balance between being too vague and telling to much. In this  
quiz, “average damage” was a little bit of a downer for me since it  
clearly stated what has to be done – and which IMHO didn’t sound like  
too much fun but rather like something I have done quite a few times  
before.

I also think it would be better to avoid any statements about extra  
credits (unless you ask for a demonstration of very advanced  
wizardry).

I liked the LOTR setting though. I think it’s a good idea to wrap up  
CS problems so that they sound like fun. Nevertheless, there still has  
to be a problem that’s intriguing enough to make people want to solve  
it. As the weather is getting warmer on the Northern hemisphere …  
okay, this means it’s getting colder on the Southern one. Well, time  
is precious.

I was rather surprised to see the number 159 again. IMHO Erik V’s  
solution for the original #159 quiz would have well been worth a short  
review/mention.

I look forward to reading about the next quiz.

---

<div class="post-metadata">

**Author:** ![mansfiem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/fbc32d/32.png) [@mansfiem](https://www.ruby-forum.com/u/mansfiem)\
**Post date:** [April 10, 2008, 6:26pm UTC](https://www.ruby-forum.com/t/guardian-of-middle-earth-159/133890/7 "2008-04-10T18:26:43Z")

</div>

> On top of that I would like to add that it is crucial for my participation  
> that I can create a working solution within a couple of hours of starting  
> to read the challenge.

I had a basic solution working in 10 minutes.

I suppose that a lot of the extra wording of the quiz was my attempt  
to head off questions. Instead of keeping the quiz description short  
and allowing discussion, I’ve attempted to try and answer everything  
about the quiz in the initial description, which makes it look much  
more involved than it needs to be. And really, I shouldn’t be  
attempting to head off questions… half the fun is the discussion  
that follows.

Okay, I think what I’ll do is take this same quiz and rewrite it for  
tomorrow, and we’ll try it again. (This will be easier to rewrite than  
the Food Database quiz, which I’m still considering how to break  
down.)

---

<div class="post-metadata">

**Author:** ![mansfiem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/fbc32d/32.png) [@mansfiem](https://www.ruby-forum.com/u/mansfiem)\
**Post date:** [April 10, 2008, 6:28pm UTC](https://www.ruby-forum.com/t/guardian-of-middle-earth-159/133890/8 "2008-04-10T18:28:30Z")

</div>

> The paragraph that threw me off a little was:
> 
> “We’re interested in my effectiveness, not that of the creatures  
> fought. You may ignore all lines that show a creature hitting me.”
> 
> I was, at first, thinking effectiveness would take into account  
> defense as well as offense.

Initially, my thought was that there wasn’t really any good  
information there, but I think I agree with you… no reason that  
information couldn’t be collected as well.

---

<div class="post-metadata">

**Author:** ![mansfiem](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/m/fbc32d/32.png) [@mansfiem](https://www.ruby-forum.com/u/mansfiem)\
**Post date:** [April 10, 2008, 3:16pm UTC](https://www.ruby-forum.com/t/guardian-of-middle-earth-159/133890/9 "2008-04-10T15:16:29Z")

</div>

On Thu, Apr 10, 2008 at 5:32 AM, Kristian Elof Sørensen [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
wrote:

> I fully agree with what Alex wrote.

I’m not so sure. I think maybe just the way it was worded turned me  
off, but I wouldn’t call it overly “vague”. I think it’s a perfectly  
fine quiz.

The paragraph that threw me off a little was:

“We’re interested in my effectiveness, not that of the creatures  
fought. You may ignore all lines that show a creature hitting me.”

I was, at first, thinking effectiveness would take into account  
defense as well as offense.

Todd
