September Morn Update

This commit is contained in:
Ingy döt Net 2019-09-12 10:33:56 -07:00
parent 4e2d22a71d
commit aac6731f2c
6856 changed files with 141342 additions and 21127 deletions

View file

@ -1,37 +1,45 @@
import system'routines.
import system'collections.
import extensions.
import extensions'routines.
import system'routines;
import system'collections;
import extensions;
import extensions'routines;
extension op
{
canMakeWordFrom:blocks
[
var list := ArrayList new:blocks.
canMakeWordFrom(blocks)
{
var list := ArrayList.load(blocks);
^ nil == self literal; upperCase; seekEach(:ch)
[
var index := list indexOfElement
((:word)(word indexOf:ch at:0 != -1) asComparator).
^ nil == (cast string(self)).upperCase().seekEach:(ch)
{
var index := list.indexOfElement
((word => word.indexOf(0, ch) != -1).asComparator());
if (index>=0)
[ list removeAt:index. ^ false ];
[ ^ true ]
]
]
{
list.removeAt(index); ^ false
}
else
{
^ true
}
}
}
}
public program
[
var blocks := ("BO", "XK", "DQ", "CP", "NA",
public program()
{
var blocks := new object[] {"BO", "XK", "DQ", "CP", "NA",
"GT", "RE", "TG", "QD", "FS",
"JW", "HU", "VI", "AN", "OB",
"ER", "FS", "LY", "PC", "ZM").
"ER", "FS", "LY", "PC", "ZM"};
var words := ("", "A", "BARK", "BOOK", "TREAT", "COMMON", "SQUAD", "Confuse").
var words := new object[] {"", "A", "BARK", "BOOK", "TREAT", "COMMON", "SQUAD", "Confuse"};
words forEach(:word)
[
console printLine("can make '",word,"' : ",word canMakeWordFrom:blocks).
]
]
Enumerator e := words.enumerator();
e.next();
words.forEach:(word)
{
console.printLine("can make '",word,"' : ",word.canMakeWordFrom(blocks));
}
}