NB. Christmas
NB. To continue, please consult the code grid in the manual. Enter the code at row 2978, column 3083.


n=:]+[:-:[:*/_2 _1++ NB. ROW n COL

REPEATS=: 2978 n 3083


START=: 20151125

PART1=: (33554393x|252533x*])^:(REPEATS-1)x:START


PART2=: 'finish the other 5!'





NB. Day 21

Note 'information'

 hero

 Weapons:    Cost  Damage  Armor
 Dagger        8     4       0
 Shortsword   10     5       0
 Warhammer    25     6       0
 Longsword    40     7       0
 Greataxe     74     8       0

 Armor:      Cost  Damage  Armor
 Leather      13     0       1
 Chainmail    31     0       2
 Splintmail   53     0       3
 Bandedmail   75     0       4
 Platemail   102     0       5

 Rings:      Cost  Damage  Armor
 Damage +1    25     1       0
 Damage +2    50     2       0
 Damage +3   100     3       0
 Defense +1   20     0       1
 Defense +2   40     0       2
 Defense +3   80     0       3


 100 hit points.



 BOSS
 Hit Points: 103
 Damage: 9
 Armor: 2
)

read=: 1!:1@:boxopen
Until=: 2 :'u^:(0-:v)^:_'
odd=: 1&(2b10001 b.)
even=: -.@:odd

NAMES=: 'HERODAMAGE HEROARMOR HEROHP BOSSDAMAGE BOSSARMOR BOSSHP MELEE'
(NAMES)=: i.#;:NAMES

battle=: fight Until death
play=: cleanup@:battle@:prepare

melee=: MELEE&{
next=: MELEE >:@:{`[`]} ]
fight=: next@:turn
turn=: (hero)`(boss)@.(odd@:melee)
hero=: BOSSHP&(((BOSSHP{])-(1>.(HERODAMAGE{])-(BOSSARMOR{])))`[`]})
boss=: HEROHP&(((HEROHP{])-(1>.(BOSSDAMAGE{])-(HEROARMOR{])))`[`]})
death=: 1 e.1>(HEROHP,BOSSHP)&{
cleanup=: ]

prepare=: 3 : 0   NB. prepare HERODAMAGE,HEROARMOR

 NB. 100 hit points.

 NB. BOSS
 NB. Hit Points: 103
 NB. Damage: 9
 NB. Armor: 2

 A=. 0#~#;:NAMES
 A=. HEROHP (100"_)`[`]} A
 A=. HERODAMAGE (({.y)"_)`[`]} A
 A=. HEROARMOR (({:y)"_)`[`]} A
 A=. BOSSHP (103"_)`[`]}A
 A=. BOSSDAMAGE (9"_)`[`]}A
 A=. BOSSARMOR (2"_)`[`]}A
)

test_prepare=: 3 : 0   NB. prepare HERODAMAGE,HEROARMOR

NB.For example, suppose you have 8 hit points, 5 damage, and 5 armor, and that the boss has 12 hit points, 7 damage, and 2 armor:

 A=. 0#~#;:NAMES
 A=. HEROHP (8"_)`[`]} A
 A=. HERODAMAGE (({.y)"_)`[`]} A
 A=. HEROARMOR (({:y)"_)`[`]} A
 A=. BOSSHP (12"_)`[`]}A
 A=. BOSSDAMAGE (7"_)`[`]}A
 A=. BOSSARMOR (2"_)`[`]}A
)

WEAPON=:  _3[\  8  4  0  10  5  0  25  6  0  40 7  0  74  8 0
ARMOR=: 0,_3[\ 13  0  1  31  0  2  53  0  3  75 0  4 102  0 5
RINGS=: 0,_3[\ 25 1 0 50 2 0 100 3 0 20 0 1 40 0 2 80 0 3
A=:{<"1 L:0 WEAPON;ARMOR;RINGS;RINGS
B=:(~.L:1),A
C=: +/&:>&>B  NB. C is an N by 3 array of cost, damage, armor
D=:(#~ 0 < ([: play }.)"1)C

PART1=: {.{./:~D


PART2=: {.{.\:~(#~ 1 > ([: play }.)"1)C

----------------------------------------------------------------------
For information about J forums see http://www.jsoftware.com/forums.htm

Reply via email to