38 lines
1.1 KiB
Plaintext
38 lines
1.1 KiB
Plaintext
#!/usr/bin/env jsish
|
|
/* ABC problem, in Jsish. Can word be spelled with the given letter blocks. */
|
|
var blocks = "BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM";
|
|
|
|
function CheckWord(blocks, word) {
|
|
var re = /([a-z]*)/i;
|
|
if (word !== re.exec(word)[0]) return false;
|
|
for (var i = 0; i < word.length; i++) {
|
|
var letter = word.charAt(i);
|
|
var length = blocks.length;
|
|
// trying both sides
|
|
var reg = new RegExp("([a-z]"+letter + "|" + letter+"[a-z])", "i");
|
|
// remove block once a letter is used
|
|
blocks = blocks.replace(reg, "");
|
|
if (blocks.length === length) return false;
|
|
}
|
|
return true;
|
|
};
|
|
|
|
var words = [ "A", "BARK", "BOOK", "TREAT", "COMMON", "SQUAD", "CONFUSE" ];
|
|
|
|
puts("Using blocks:", blocks);
|
|
for(var i = 0; i<words.length; i++)
|
|
puts(CheckWord(blocks, words[i]) ? "can" : "can't", "spell", words[i]);
|
|
|
|
/*
|
|
=!EXPECTSTART!=
|
|
Using blocks: BO XK DQ CP NA GT RE TG QD FS JW HU VI AN OB ER FS LY PC ZM
|
|
can spell A
|
|
can spell BARK
|
|
can't spell BOOK
|
|
can spell TREAT
|
|
can't spell COMMON
|
|
can spell SQUAD
|
|
can spell CONFUSE
|
|
=!EXPECTEND!=
|
|
*/
|