c-urs_-toil-s/star.lua

466 lines
26 KiB
Lua
Raw Normal View History

levelsets = {
gstar = {
[ 1 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'W', 'B', 'W', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'W', 'C', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'W', 'W', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'W', 'G', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'W', 'W', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'W', },
{ 'W', 'W', 'V', 'G', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'W', },
{ 'W', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'W', 'W', 'V', 'G', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'W', 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'G', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
},
[ 2 ] = {
{ 'V', 'W', 'V', 'V', 'W', 'V', 'W', 'V', 'W', 'V', 'V', 'V', 'W', 'V', 'W', 'W', },
{ 'W', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'B', 'W', },
{ 'V', 'V', 'V', 'W', 'G', 'V', 'V', 'W', 'G', 'V', 'V', 'V', 'G', 'V', 'V', 'V', },
{ 'W', 'V', 'W', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'W', 'V', 'W', },
{ 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'W', 'V', },
{ 'W', 'V', 'V', 'V', 'V', 'W', 'C', 'W', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'W', },
{ 'V', 'V', 'V', 'W', 'V', 'V', 'W', 'V', 'W', 'V', 'V', 'V', 'W', 'G', 'G', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'V', },
{ 'V', 'W', 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'V', },
},
[ 3 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'W', 'B', 'W', },
{ 'W', 'V', 'V', 'V', 'W', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'W', 'C', 'W', },
{ 'W', 'V', 'V', 'V', 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'G', 'W', 'W', 'V', 'V', 'V', 'G', 'W', },
{ 'W', 'V', 'W', 'G', 'V', 'V', 'G', 'V', 'V', 'G', 'W', 'V', 'V', 'G', 'W', 'W', },
{ 'W', 'V', 'W', 'W', 'G', 'V', 'W', 'G', 'V', 'V', 'G', 'V', 'G', 'W', 'W', 'W', },
{ 'W', 'G', 'V', 'V', 'V', 'V', 'W', 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
},
[ 4 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'C', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'W', 'G', 'W', 'G', 'V', 'G', 'W', 'G', 'W', 'G', 'W', 'G', 'W', 'G', 'W', },
{ 'W', 'V', 'W', 'V', 'W', 'G', 'V', 'G', 'W', 'V', 'W', 'V', 'W', 'V', 'W', 'W', },
{ 'W', 'W', 'G', 'W', 'G', 'W', 'G', 'V', 'G', 'W', 'G', 'W', 'G', 'W', 'G', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'B', 'V', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
},
[ 5 ] = {
{ 'V', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'V', },
{ 'W', 'B', 'V', 'V', 'W', 'V', 'V', 'V', 'W', 'V', 'V', 'W', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'W', 'G', 'V', 'W', 'V', 'G', 'V', 'V', 'G', 'V', 'W', 'V', 'W', },
{ 'W', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'W', 'V', 'V', 'V', 'W', },
{ 'W', 'G', 'V', 'W', 'G', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'W', },
{ 'W', 'W', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'G', 'V', 'W', 'V', 'V', 'V', 'W', },
{ 'W', 'G', 'W', 'V', 'V', 'W', 'V', 'W', 'V', 'W', 'V', 'V', 'V', 'W', 'C', 'W', },
{ 'W', 'V', 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'G', 'W', 'V', 'V', 'W', 'G', 'W', },
{ 'V', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'V', },
},
[ 6 ] = {
{ 'V', 'V', 'V', 'V', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'V', 'V', 'V', 'W', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'W', 'G', 'V', 'G', 'W', },
{ 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'W', 'V', 'W', 'W', },
{ 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'B', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'W', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'W', 'V', 'V', 'V', 'W', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'W', },
{ 'W', 'C', 'V', 'W', 'V', 'V', 'V', 'G', 'V', 'V', 'W', 'W', 'G', 'V', 'V', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
},
[ 7 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'V', 'W', 'W', 'V', 'W', 'W', 'W', 'V', 'V', 'W', 'G', 'V', 'W', 'W', 'G', 'W', },
{ 'V', 'W', 'G', 'V', 'V', 'W', 'G', 'V', 'W', 'V', 'W', 'V', 'W', 'V', 'W', 'V', },
{ 'V', 'V', 'W', 'V', 'V', 'W', 'V', 'V', 'W', 'W', 'W', 'V', 'W', 'W', 'V', 'V', },
{ 'V', 'W', 'W', 'V', 'V', 'W', 'V', 'V', 'W', 'G', 'W', 'V', 'W', 'G', 'W', 'V', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'B', 'W', 'G', 'V', 'V', 'V', 'V', 'C', 'V', 'V', 'W', 'G', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
},
[ 8 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'V', },
{ 'W', 'V', 'V', 'G', 'W', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'W', },
{ 'W', 'V', 'V', 'W', 'G', 'V', 'V', 'W', 'W', 'V', 'G', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'G', 'W', 'W', 'V', 'W', 'V', 'W', 'G', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'W', 'V', 'V', 'V', 'V', 'V', 'W', 'W', 'V', 'V', 'W', 'G', 'W', 'V', 'W', },
{ 'W', 'W', 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'W', 'G', 'V', 'W', },
{ 'W', 'G', 'C', 'G', 'W', 'V', 'V', 'V', 'G', 'V', 'V', 'W', 'B', 'W', 'V', 'W', },
{ 'W', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'V', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
},
[ 9 ] = {
{ 'V', 'V', 'W', 'V', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'V', },
{ 'V', 'W', 'G', 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'B', 'W', },
{ 'W', 'G', 'V', 'G', 'W', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'W', 'V', },
{ 'V', 'W', 'V', 'W', 'V', 'V', 'G', 'W', 'W', 'V', 'V', 'G', 'W', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'W', 'G', 'V', 'W', 'G', 'C', 'G', 'V', 'V', 'V', 'V', 'G', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'G', 'W', 'W', 'V', 'V', 'V', 'V', 'V', 'W', 'V', },
{ 'W', 'G', 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'V', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'V', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'V', 'V', 'V', 'V', },
},
[ 10 ] = {
{ 'V', 'V', 'V', 'V', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'V', },
{ 'W', 'W', 'W', 'W', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'C', 'V', 'W', 'W', 'W', 'G', 'V', 'G', 'W', 'V', 'G', 'W', },
{ 'W', 'V', 'G', 'V', 'V', 'V', 'W', 'G', 'V', 'W', 'G', 'V', 'V', 'V', 'W', 'V', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'G', 'V', 'V', 'W', 'V', 'G', 'W', },
{ 'W', 'G', 'W', 'G', 'V', 'V', 'W', 'V', 'G', 'W', 'V', 'V', 'W', 'B', 'W', 'V', },
{ 'V', 'W', 'G', 'V', 'V', 'V', 'W', 'W', 'W', 'V', 'V', 'W', 'W', 'W', 'V', 'V', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'W', 'V', 'W', 'V', },
{ 'V', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'V', 'V', 'W', 'V', 'V', 'W', },
},
[ 11 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'B', 'W', },
{ 'W', 'V', 'V', 'W', 'G', 'G', 'V', 'V', 'V', 'V', 'V', 'G', 'G', 'V', 'W', 'W', },
{ 'W', 'W', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'W', 'W', 'V', 'V', 'V', 'G', 'W', },
{ 'W', 'G', 'V', 'V', 'V', 'V', 'W', 'G', 'W', 'G', 'G', 'V', 'V', 'W', 'W', 'W', },
{ 'W', 'W', 'V', 'W', 'W', 'V', 'V', 'V', 'V', 'W', 'W', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'G', 'V', 'V', 'G', 'W', 'V', 'G', 'V', 'V', 'V', 'V', 'C', 'V', 'G', 'W', },
{ 'W', 'W', 'G', 'W', 'W', 'W', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'V', 'W', 'W', },
{ 'V', 'W', 'W', 'V', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'V', },
},
[ 12 ] = {
{ 'W', 'W', 'V', 'V', 'V', 'V', 'V', 'W', 'W', 'V', 'V', 'W', 'W', 'W', 'W', 'V', },
{ 'W', 'B', 'W', 'W', 'W', 'W', 'W', 'G', 'V', 'W', 'W', 'W', 'V', 'G', 'W', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'G', 'G', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'W', },
{ 'W', 'V', 'W', 'W', 'V', 'V', 'W', 'W', 'G', 'V', 'V', 'W', 'G', 'W', 'V', 'W', },
{ 'W', 'V', 'W', 'V', 'G', 'V', 'W', 'W', 'W', 'G', 'V', 'W', 'W', 'V', 'V', 'W', },
{ 'W', 'V', 'W', 'W', 'V', 'V', 'W', 'W', 'V', 'V', 'V', 'W', 'C', 'W', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
},
[ 13 ] = {
{ 'V', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'V', },
{ 'W', 'V', 'B', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'W', 'W', },
{ 'W', 'V', 'W', 'V', 'V', 'V', 'W', 'G', 'V', 'V', 'V', 'G', 'W', 'W', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'W', 'V', 'W', },
{ 'W', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'G', 'W', },
{ 'W', 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'G', 'V', 'V', 'W', 'G', 'W', },
{ 'W', 'C', 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'G', 'V', 'W', 'V', 'W', 'V', 'W', },
{ 'V', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'V', },
},
[ 14 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'W', 'G', 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'W', 'G', 'W', },
{ 'W', 'V', 'G', 'W', 'B', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'W', 'V', 'V', 'W', },
{ 'W', 'V', 'C', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'W', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'G', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'W', },
{ 'W', 'G', 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'W', 'G', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
},
[ 15 ] = {
{ 'V', 'W', 'W', 'W', 'W', 'W', 'W', 'V', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'V', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'G', 'W', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'W', },
{ 'W', 'V', 'W', 'V', 'G', 'V', 'W', 'V', 'V', 'W', 'V', 'V', 'V', 'G', 'V', 'W', },
{ 'W', 'V', 'V', 'B', 'W', 'V', 'V', 'V', 'W', 'G', 'G', 'V', 'W', 'G', 'V', 'W', },
{ 'V', 'W', 'V', 'W', 'V', 'V', 'V', 'W', 'V', 'G', 'V', 'V', 'C', 'W', 'V', 'W', },
{ 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'W', 'G', 'V', 'W', },
{ 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'W', 'V', },
{ 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'W', },
{ 'V', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'V', },
},
[ 16 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'W', 'W', 'V', 'C', 'W', 'G', 'V', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'W', },
{ 'W', 'G', 'V', 'B', 'G', 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'W', },
{ 'W', 'W', 'V', 'W', 'W', 'W', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'W', 'W', },
{ 'W', 'W', 'V', 'V', 'V', 'V', 'V', 'G', 'W', 'G', 'W', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'G', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'W', 'G', 'V', 'V', 'W', },
{ 'W', 'W', 'V', 'G', 'V', 'V', 'V', 'V', 'W', 'W', 'W', 'W', 'G', 'V', 'V', 'W', },
{ 'W', 'W', 'G', 'W', 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
},
[ 17 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'W', 'V', 'G', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'B', 'V', 'W', },
{ 'W', 'V', 'W', 'V', 'V', 'G', 'W', 'G', 'G', 'W', 'G', 'V', 'V', 'W', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'W', 'G', 'W', 'W', 'G', 'W', 'V', 'G', 'V', 'V', 'W', },
{ 'W', 'V', 'G', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'W', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'G', 'W', 'G', 'V', 'V', 'V', 'V', 'G', 'W', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'W', 'V', 'V', 'W', 'V', 'W', 'W', 'G', 'W', 'V', 'V', 'W', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'G', 'V', 'W', 'G', 'V', 'V', 'V', 'C', 'V', 'V', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
},
[ 18 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'W', 'V', 'G', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'C', 'W', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'W', 'G', 'W', 'G', 'V', 'V', 'V', 'W', 'G', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'W', 'G', 'W', 'V', 'V', 'V', 'V', 'W', 'G', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'G', 'V', 'V', 'W', 'V', 'V', 'V', 'G', 'W', 'G', 'V', 'W', },
{ 'W', 'V', 'W', 'G', 'W', 'V', 'V', 'V', 'W', 'V', 'G', 'W', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'G', 'W', 'G', 'V', 'W', 'V', 'G', 'V', 'W', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'G', 'W', 'B', 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
},
[ 19 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'W', 'G', 'V', 'V', 'V', 'W', 'W', 'V', 'V', 'V', 'V', 'V', 'W', 'W', 'G', 'W', },
{ 'W', 'V', 'W', 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'G', 'V', 'W', },
{ 'W', 'V', 'G', 'W', 'V', 'V', 'V', 'G', 'W', 'W', 'V', 'V', 'G', 'V', 'V', 'W', },
{ 'W', 'V', 'W', 'V', 'V', 'V', 'V', 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'V', 'G', 'W', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'W', 'W', 'V', 'G', 'W', 'V', 'W', 'W', 'G', 'V', 'V', 'W', 'C', 'W', },
{ 'W', 'V', 'G', 'W', 'V', 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'W', 'W', 'B', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
},
[ 20 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'W', 'V', 'V', 'V', 'G', 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'W', 'G', 'V', 'V', 'G', 'W', 'V', 'W', 'W', 'G', 'V', 'V', 'V', 'W', 'W', },
{ 'W', 'V', 'W', 'V', 'W', 'V', 'G', 'V', 'V', 'V', 'W', 'V', 'V', 'W', 'V', 'W', },
{ 'W', 'V', 'C', 'V', 'W', 'V', 'V', 'W', 'W', 'V', 'V', 'W', 'V', 'B', 'G', 'W', },
{ 'W', 'V', 'W', 'V', 'V', 'W', 'V', 'V', 'V', 'G', 'V', 'W', 'V', 'W', 'V', 'W', },
{ 'W', 'W', 'V', 'V', 'V', 'G', 'W', 'W', 'V', 'W', 'G', 'V', 'V', 'G', 'W', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'W', 'G', 'V', 'V', 'V', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
},
[ 21 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'W', 'V', 'W', 'W', 'W', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'W', 'W', },
{ 'W', 'V', 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'W', 'W', },
{ 'W', 'V', 'V', 'V', 'W', 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'W', },
{ 'W', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'G', 'V', 'W', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'W', 'W', 'W', 'G', 'V', 'W', },
{ 'W', 'V', 'V', 'G', 'V', 'G', 'V', 'B', 'V', 'C', 'V', 'G', 'V', 'G', 'G', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', },
},
[ 22 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'W', 'G', 'W', 'V', 'V', 'W', 'G', 'W', 'V', 'W', 'G', 'V', 'V', 'W', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'G', 'V', 'V', 'V', 'W', 'V', 'V', 'W', 'G', 'V', 'V', 'G', 'V', 'V', 'W', },
{ 'W', 'W', 'V', 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'V', 'G', 'V', 'W', 'W', 'W', },
{ 'W', 'V', 'G', 'V', 'W', 'V', 'V', 'V', 'W', 'W', 'W', 'G', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'W', 'B', 'W', 'C', 'V', 'V', 'G', 'V', 'V', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', },
},
[ 23 ] = {
{ 'V', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'V', },
{ 'W', 'V', 'W', 'V', 'V', 'W', 'G', 'W', 'V', 'W', 'G', 'V', 'V', 'W', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'G', 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'W', 'V', 'V', 'V', 'W', 'V', 'V', 'V', 'G', 'V', 'W', 'G', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'W', 'G', 'V', 'V', 'W', 'V', 'V', 'G', 'G', 'V', 'G', 'V', 'W', },
{ 'W', 'W', 'G', 'V', 'W', 'V', 'V', 'V', 'W', 'W', 'V', 'G', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'W', 'B', 'W', 'C', 'V', 'V', 'G', 'V', 'V', 'W', },
{ 'V', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'V', },
{ 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', },
},
[ 24 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'W', },
{ 'W', 'V', 'W', 'W', 'G', 'V', 'G', 'V', 'V', 'V', 'V', 'W', 'W', 'G', 'W', 'W', },
{ 'W', 'V', 'W', 'G', 'V', 'V', 'V', 'V', 'V', 'G', 'W', 'V', 'V', 'W', 'W', 'W', },
{ 'W', 'V', 'G', 'G', 'V', 'V', 'G', 'W', 'V', 'W', 'W', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'W', 'G', 'V', 'G', 'V', 'W', 'V', 'V', 'V', 'V', 'W', 'W', 'V', 'W', },
{ 'W', 'V', 'W', 'W', 'V', 'V', 'V', 'B', 'W', 'C', 'W', 'W', 'W', 'G', 'G', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', },
},
[ 25 ] = {
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'W', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'W', 'V', 'W', },
{ 'W', 'V', 'G', 'V', 'W', 'W', 'G', 'V', 'V', 'V', 'G', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'V', 'V', 'V', 'W', 'G', 'V', 'V', 'G', 'V', 'V', 'W', 'W', 'V', 'V', 'W', },
{ 'W', 'V', 'G', 'V', 'V', 'V', 'V', 'W', 'W', 'V', 'V', 'W', 'G', 'V', 'V', 'W', },
{ 'W', 'V', 'W', 'G', 'V', 'V', 'V', 'G', 'W', 'V', 'V', 'V', 'V', 'G', 'V', 'W', },
{ 'W', 'V', 'W', 'W', 'G', 'V', 'W', 'B', 'V', 'C', 'V', 'V', 'V', 'V', 'V', 'W', },
{ 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', 'W', },
{ 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', 'V', },
},
}
}
local star = {
board = { },
whats_moving = 'ball',
elements = {
B = { text = "()", fg = "#0000ff", bg = "#000000" },
C = { text = "[]", fg = "#ff0000", bg = "#000000" },
W = { text = "##", fg = "#007700", bg = "#000000" },
G = { text = "<>", fg = "#ffff00", bg = "#000000" },
V = { text = " ", fg = "#000000", bg = "#000000" },
},
counters ={
gifts = 0,
moves = 0,
},
level = {
width = 16,
height = 9,
current = {
levelset = '',
name = '',
},
},
ball = { x = 0, y = 0, },
cube = { x = 0, y = 0, },
}
local function first_key( t )
for k, _ in pairs( t ) do
return k
end
end
local function init( )
star.level.levelset = first_key( levelsets )
star.level.name = first_key( levelsets[ star.level.levelset ] )
end
function move( direction )
local d = {
h = direction:match( "left" ) and -1 or direction:match( "right" ) and 1 or 0,
v = direction:match( "up" ) and -1 or direction:match( "down" ) and 1 or 0,
}
local tmp = {
x = star[ star.whats_moving ].x,
y = star[ star.whats_moving ].y,
}
while ( ( ( tmp.y + d.v > 0 ) and ( tmp.y + d.v <= star.level.height ) )
and
( ( tmp.x + d.h > 0 ) and ( tmp.x + d.h <= star.level.width ) )
and
( star.board[ tmp.y + d.v ][ tmp.x + d.h ] == 'V' )
or
( star.whats_moving:match('ball') and
( star.board[ tmp.y + d.v ][ tmp.x + d.h ] == 'G' ) ) )
do
tmp.x = tmp.x + d.h
tmp.y = tmp.y + d.v
if ( star.whats_moving:match('ball') and star.board[ tmp.y ][ tmp.x ] == 'G' )
then
star.board[ tmp.y ][ tmp.x ] = 'V'
star.counters.gifts = star.counters.gifts - 1
end
end
if ( tmp.x ~= star[ star.whats_moving ].x or tmp.y ~= star[ star.whats_moving ].y )
then
star.board[ star[ star.whats_moving ].y ][ star[ star.whats_moving ].x ] = 'V'
star[ star.whats_moving ].x = tmp.x
star[ star.whats_moving ].y = tmp.y
star.board[ star[ star.whats_moving ].y ][ star[ star.whats_moving ].x ] = star.whats_moving:match("ball") and 'B' or 'C'
star.counters.moves = star.counters.moves + 1
end
end
local function load_level( )
star.board = levelsets[ star.level.levelset ][ star.level.name ]
star.counters.gift = 0
star.counters.moves = 0
for y=1, star.level.height do
for x=1, star.level.width do
if star.board[ y ][ x ] == 'G' then
star.counters.gifts = star.counters.gifts + 1
elseif star.board[ y ][ x ] == 'B' then
star.ball.x = x
star.ball.y = y
elseif star.board[ y ][ x ] == 'C' then
star.cube.x = x
star.cube.y = y
end
end
end
end
local function next_level( )
end
local function previous_level( )
end
local function switch_moving( )
star.whats_moving = star.whats_moving:match("ball") and 'cube' or 'ball'
end
local function is_it_over( )
for y=1, star.level.height do
for x=1, star.level.width do
if star.board[ y ][ x ]:match( 'G' ) then return false end
end
end
return true
end
local function list_levelsets( )
local lst = { }
for levelset, _ in pairs( levelsets ) do
table.insert( lst, levelset )
end
return lst
end
local function list_levels_in_levelset( levelset )
local lst = { }
for level, _ in pairs( levelsets[ levelset ] ) do
table.insert( lst, level )
end
return lst
end
local function to_s ( )
local s = string.format( "%s:%i %s:(%i,%i) %s:(%i,%i) m:%i\n",
star.elements[ 'G' ].text,
star.counters.gifts,
star.elements[ 'B' ].text,
star.ball.x,
star.ball.y,
star.elements[ 'C' ].text,
star.cube.x,
star.cube.y,
star.counters.moves
)
for y=1, star.level.height do
for x=1, star.level.width do
s = s .. star.elements[ star.board[ y ][ x ] ].text
end
s = s .. "\n"
end
return s
end
star.init = init
star.load_level = load_level
star.move = move
star.switch_moving = switch_moving
star.is_it_over = is_it_over
star.list_levelsets = list_levelsets
star.list_levels_in_levelset = list_levels_in_levelset
star.to_s = to_s
-- return star
-- star = require( "star" )
star.init( )
star.load_level( )
print( star.to_s() )
moves = { "down", "right", "down", "left", "up", "right", "up", "left", "down", "right", "down", "left", "right", "up", "left", "up", "right", "up", "down", "left", "up", "right", "down", "up", "left", }
for _, m in ipairs( moves ) do
star.move( m )
print( star.is_it_over( ) and "YES \o/" or "not yet" )
end
print( star.to_s() )