How to resolve the algorithm ABC problem step by step in the FBSL programming language

Published on 12 May 2024 09:40 PM

How to resolve the algorithm ABC problem step by step in the FBSL programming language

Table of Contents

Problem Statement

You are given a collection of ABC blocks   (maybe like the ones you had when you were a kid).
There are twenty blocks with two letters on each block. A complete alphabet is guaranteed amongst all sides of the blocks. The sample collection of blocks:

Write a function that takes a string (word) and determines whether the word can be spelled with the given collection of blocks.

The rules are simple:

Let's start with the solution:

Step by Step solution about How to resolve the algorithm ABC problem step by step in the FBSL programming language

Source code in the fbsl programming language

#APPTYPE CONSOLE
SUB MAIN()
	BlockCheck("A")
	BlockCheck("BARK")
	BlockCheck("BooK")
	BlockCheck("TrEaT")
	BlockCheck("comMON")
	BlockCheck("sQuAd")
	BlockCheck("Confuse")
	pause
END SUB

FUNCTION BlockCheck(str)
	print str " " iif( Blockable( str ), "can", "cannot" ) " be spelled with blocks."
END FUNCTION

FUNCTION Blockable(str AS STRING)
	DIM blocks AS STRING = "BOXKDQCPNAGTRETGQDFSJWHUVIANOBERFSLYPCZM"
	DIM C AS STRING = ""
	DIM POS AS INTEGER = 0
	
	FOR DIM I = 1 TO LEN(str)
		C = str{i}
		POS = INSTR(BLOCKS, C, 0, 1) 'case insensitive
		IF POS > 0 THEN
			'if the pos is odd, it's the first of the pair
			IF POS MOD 2 = 1 THEN
				'so clear the first and the second
				poke(@blocks + pos - 1," ")
				poke(@blocks + pos," ")
			'otherwise, it's the last of the pair	
			ELSE
				'clear the second and the first
				poke(@blocks + pos - 1," ")
				poke(@blocks + pos - 2," ")
			END IF
		ELSE
		'not found, so can't be spelled
		RETURN FALSE
		END IF
	NEXT
	'got thru to here, so can be spelled
	RETURN TRUE
END FUNCTION


  

You may also check:How to resolve the algorithm Number names step by step in the Swift programming language
You may also check:How to resolve the algorithm Rename a file step by step in the Yorick programming language
You may also check:How to resolve the algorithm Doubly-linked list/Definition step by step in the Action! programming language
You may also check:How to resolve the algorithm History variables step by step in the Haskell programming language
You may also check:How to resolve the algorithm Catamorphism step by step in the Maple programming language