Another possible extension is to add new statements to the language. More importantly, one could set the set of statements that could be used in a specific version. This enables to solve the same puzzle with different sets of statements, i.e., with different languages.
See, e.g., Brusilovsky, P., Calabrese, E., Hvorecky, J., Kouchnirenko, A., & Miller, P. (1997). Mini-languages: a way to learn programming principles. Education and Information Technologies, 2(1), 65–83. https://doi.org/10.1023/A:1018636507883
Another possible extension is to add new statements to the language. More importantly, one could set the set of statements that could be used in a specific version. This enables to solve the same puzzle with different sets of statements, i.e., with different languages.
See, e.g., Brusilovsky, P., Calabrese, E., Hvorecky, J., Kouchnirenko, A., & Miller, P. (1997). Mini-languages: a way to learn programming principles. Education and Information Technologies, 2(1), 65–83. https://doi.org/10.1023/A:1018636507883