58 lines
860 B
Plaintext
58 lines
860 B
Plaintext
DEFINE COUNT="20"
|
|
CHAR ARRAY sideA="BXDCNGRTQFJHVAOEFLPZ"
|
|
CHAR ARRAY sideB="OKQPATEGDSWUINBRSYCM"
|
|
BYTE ARRAY used(COUNT)
|
|
|
|
BYTE FUNC ToUpper(BYTE c)
|
|
IF c>='a AND c<='z THEN
|
|
RETURN (c-'a+'A)
|
|
FI
|
|
RETURN (c)
|
|
|
|
BYTE FUNC CanBeUsed(CHAR c)
|
|
BYTE i
|
|
|
|
FOR i=0 TO COUNT-1
|
|
DO
|
|
IF used(i)=0 AND (sideA(i+1)=c OR sideB(i+1)=c) THEN
|
|
used(i)=1
|
|
RETURN (1)
|
|
FI
|
|
OD
|
|
RETURN (0)
|
|
|
|
BYTE FUNC Check(CHAR ARRAY s)
|
|
BYTE i
|
|
CHAR c
|
|
|
|
FOR i=0 TO COUNT-1
|
|
DO used(i)=0 OD
|
|
|
|
FOR i=1 TO s(0)
|
|
DO
|
|
c=ToUpper(s(i))
|
|
IF CanBeUsed(c)=0 THEN
|
|
RETURN (0)
|
|
FI
|
|
OD
|
|
RETURN (1)
|
|
|
|
PROC Test(CHAR ARRAY s)
|
|
Print(s) Print(": ")
|
|
IF Check(s) THEN
|
|
PrintE("can be made")
|
|
ELSE
|
|
PrintE("can not be made")
|
|
FI
|
|
RETURN
|
|
|
|
PROC Main()
|
|
Test("a")
|
|
Test("bARk")
|
|
Test("book")
|
|
Test("TReat")
|
|
Test("coMMon")
|
|
Test("SQuaD")
|
|
Test("CoNfUsE")
|
|
RETURN
|