Skip to content

Instantly share code, notes, and snippets.

@takeshy
Created September 28, 2013 09:55
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save takeshy/6740488 to your computer and use it in GitHub Desktop.
Save takeshy/6740488 to your computer and use it in GitHub Desktop.
第14回 オフラインリアルタイムどう書く http://nabetani.sakura.ne.jp/hena/ord14linedung/
Weapons = ['a','c', 'e', 'g', 'i', 'k']
class Monster
@Weak =
'B': 'a'
'D': 'c'
'F': 'e'
'H': 'g'
'J': 'i'
'L': 'k'
@Treasure =
'B': 'c'
'D': 'e'
'F': 'g'
'H': 'i'
'J': 'k'
'L': 'a'
constructor: (name)->
@name = name
@alive = true
@
fight: (equipments)->
if Monster.Weak[@name] in equipments
@alive = false
Monster.Treasure[@name]
Battle =
'Weapons': Weapons
'Monster': Monster
'fight': (field)->
equipments = []
monsters = []
for some in field.split("")
if some in Weapons
equipments.push(some)
else
monsters.push(new Monster(some))
total_won = null
num == 0
while total_won == null || num != 0
num = 0
for monster in monsters
if monster.alive
result = monster.fight(equipments)
if result
num += 1
equipments.push(result)
total_won = if total_won then total_won + num else num
total_won
if typeof window == 'undefined'
module.exports = Battle
require('../test_helper.js');
var Battle = require('../battle.js');
var Data = {
gLDLBgBgHDaD: 6,
DBcDLaLgDBH: 6,
JJca: 0,
FJDLBH: 0,
HJBLFDg: 6,
HBaDLFJ: 6,
DJaHLB: 2,
gDLHJF: 3,
cJFgLHD: 5,
FFBJaJJ: 1,
FJeJFBJ: 2,
iJFFJJB: 3,
JBJiLFJF: 5,
JDiFLFBJJ: 8,
BDFDFFDFFLLFFJFDBFDFFFFDDFaDBFFB: 28,
DDFBFcBDFFFFFFLBFDFFBFLFDFDJDFDF: 24,
FDLBFDDBFFFeFFFFFDFBLDDFDDFBFFJF: 16,
FDBFFLFDFFDBBDFFBJDLFgDFFFDFFDFF: 0,
FDiFLDFFFFBDDJDDBFBFDFFFBFFDFLFF: 31,
FDFDJBLBLBFFDDFFFDFFFFFDDFBkFDFF: 30,
HBkFFFFHBLH: 3,
FBHHFFFHLaB: 2,
LFHFBBcHFHF: 0,
LFBHFFeFHBH: 7,
LgFHHHBFBFF: 3,
FFiFHBHLBFH: 0,
BFHHFFHBeFLk: 10,
FHFaBBHFHLFg: 5,
FFgacaFg: 0,
JHDaDcBJiiHccBHDBDH: 9,
FHJJLckFckFJHDFF: 12,
DeDHJHDFHJBLHDLLDHJLBDD: 22,
gJLLLJgJgJLJL: 0,
DaaaDDD: 0,
HFeJFHiBiiBJeJBBFFB: 9,
FJFFJDBHBHaLJBHJHDLHkLLLFFFgJgHJLHkJkB: 32,
giFLBiBJLLJgHBFJigJJJBLHFLDLL: 23,
cgkLJcLJJJJgJc: 2,
LDFHJHcFBDBLJBLFLcFJcDFBL: 22,
JJHHHkHJkHLJk: 1,
kHHBBaBgHagHgaHBBB: 11,
HDBFFDHHHDFLDcHHLFDcJD: 20,
HFFFHeFFee: 7,
gLLDHgDLgFL: 1,
JJJBBaBBHBBHaLBHJ: 7,
FBFBgJBDBDgF: 0,
LLLLakakLakLL: 7,
HeJHeJe: 0,
LDFLBLLeBLDBBFFBLFBB: 4,
}
QUnit.test('monster', function() {
QUnit.expect(2);
m = new Battle.Monster('B');
QUnit.equal(m.fight(['a']),Battle.Monster.Treasure['B'])
QUnit.equal(m.fight(['c']),null)
});
QUnit.test('battle', function() {
QUnit.expect(Object.keys(Data).length);
for(var battle in Data){
QUnit.equal(Battle.fight(battle),Data[battle]);
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment