どう書く?org の Hello, world!その2 に投稿するときに考えたスクリプトの中からボツになった(ルールを満たしていないものや、ルールを満たしていても不満なもの)のを紹介。
ちなみに投稿したのは以下の。
_0( 0 ) = 31, 13, 11, 73, 38, 44, 48, 8, 78, 16, 11, 69
_0( 12 ) = 111, 51, 37, 9, 138, 35, 10, 22, 112, 28, 32, 11
_0( 24 ) = 108, 33, 10, 46, 110, 74, 30, 10, 161, 10, 9, 74
_0( 36 ) = 193, 9, 9, 72, 228, 32, 27, 9, 249, 37, 12, 39
_0( 48 ) = 225, 76, 31, 10, 221, 36, 10, 44, 273, 77, 15, 11
_0( 60 ) = 280, 84, 7, 14, 335, 44, 9, 40, 359, 33, 12, 51
_0( 72 ) = 338, 80, 53, 9, 383, 47, 14, 45, 412, 36, 31, 8
_0( 84 ) = 438, 39, 9, 43, 412, 78, 29, 7, 405, 41, 12, 40
_0( 96 ) = 461, 34, 9, 53, 464, 44, 29, 10, 503, 10, 8, 73
_0( 108 ) = 564, 10, 10, 78, 540, 40, 28, 9, 532, 45, 11, 39
_0( 120 ) = 536, 76, 32, 10, 592, 13, 12, 52, 591, 75, 14, 12
_1 = 0
do
bgscr _1 + 1, _0( _1 + 2 ), _0( _1 + 3 ), 0, _0( _1 + 0 ), _0( _1 + 1 )
_1 += 4
until _1 > 128
小さなウィンドウ 34 個を組み合わせて「 Hello, world! 」と表示しています。
_1, _2, _3 ... という名前に変更する。for など)は使ってよいとする(そうでないとループもできない)。#define はこれだけでもうアウト( e が 2 つ)。for ~ next か、 do ~ until でないと出来ない数 = 1819043144, 1998597231, 1684828783, 33
文 = ""
memcpy 文, 数, 13
mes 文数 = 1819043144, 1998597231, 1684828783, 33
dupptr 文, varptr( 数 ), 13, 2
mes 文#include "gdi32.as"
数 = 1819043144, 1998597231, 1684828783, 33
textout hdc, 0, 0, varptr( 数 ), 13
redraw数 = 72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33, 10
文 = ""
repeat 13
文 += strf( "%c", 数.cnt )
loop
mes 文数 = 72, 101, 108, 108, 111, 44, 32, 119, 111, 114, 108, 100, 33, 10
文 = ""
for 回, 0, 13
;文 += strf( "%c", 数.回 )
poke 文, 回, 数.回
next
mes 文エル = "l"
オー = "o"
mes "He" + エル + エル + オー + ", w" + オー + "r" + エル + "d!"線( 0 ) = 38, 275, 40, 206, 87, 238, 38, 241, 84, 275, 87, 211
線( 12 ) = 143, 243, 114, 244, 132, 229, 143, 243, 113, 229, 130, 228
線( 24 ) = 110, 253, 113, 229, 127, 274, 108, 253, 147, 260, 127, 273
線( 36 ) = 165, 275, 165, 200, 196, 273, 197, 202, 252, 234, 232, 227
線( 48 ) = 257, 253, 254, 234, 245, 272, 258, 253, 225, 272, 245, 272
線( 60 ) = 220, 252, 225, 272, 233, 225, 219, 251, 284, 270, 278, 269
線( 72 ) = 288, 280, 284, 270, 274, 295, 288, 280, 349, 267, 334, 228
線( 84 ) = 366, 235, 349, 267, 379, 269, 363, 225, 396, 225, 378, 268
線( 96 ) = 440, 229, 425, 226, 452, 258, 442, 230, 434, 272, 452, 258
線( 108 ) = 418, 268, 434, 273, 409, 249, 419, 267, 426, 224, 409, 248
線( 120 ) = 468, 273, 468, 229, 485, 230, 468, 238, 493, 233, 485, 230
線( 132 ) = 509, 272, 508, 205, 569, 271, 566, 201, 549, 225, 565, 235
線( 144 ) = 534, 238, 549, 225, 539, 266, 534, 238, 553, 277, 539, 266
線( 156 ) = 568, 264, 553, 276, 599, 262, 599, 206, 603, 271, 597, 270
for カウント, 0, 168, 4
line 線( カウント ), 線( カウント + 1 ), 線( カウント + 2 ), 線( カウント + 3 )
next// http://ja.doukaku.org/comment/3457/ から
mes {"
## # # # # # ##
## # # # # # ##
## # ### # # #### # # # #### #### # # ##
###### # # # # # # # # # # # # # # #### ##
## # #### # # # # # # # # # # # # # ##
## # # # # # # ## # # # # # # # # #
## # ### # # #### # #### #### # # #### ##"}位置( 0 ) = 34, 200, 33, 211, 32, 222, 33, 233, 32, 242, 32, 252, 32, 262, 43, 232
位置( 16 ) = 53, 232, 66, 233, 79, 201, 76, 211, 76, 221, 75, 231, 79, 242, 76, 251
位置( 32 ) = 77, 258, 109, 239, 116, 239, 125, 239, 134, 239, 137, 232, 133, 222, 127, 217
位置( 48 ) = 116, 217, 109, 223, 105, 233, 105, 245, 109, 255, 122, 261, 131, 262, 138, 255
位置( 64 ) = 159, 198, 159, 210, 160, 220, 160, 230, 160, 240, 158, 249, 160, 260, 193, 199
位置( 80 ) = 192, 209, 191, 219, 192, 228, 191, 235, 191, 241, 191, 252, 190, 257, 235, 222
位置( 96 ) = 223, 223, 217, 231, 216, 238, 217, 247, 221, 255, 227, 260, 236, 263, 245, 263
位置( 112 ) = 249, 254, 254, 245, 251, 234, 246, 226, 278, 264, 284, 275, 273, 283, 329, 222
位置( 128 ) = 333, 233, 338, 244, 341, 254, 349, 247, 354, 234, 357, 227, 363, 237, 367, 247
位置( 144 ) = 371, 255, 379, 249, 384, 241, 386, 232, 388, 223, 422, 220, 415, 224, 407, 234
位置( 160 ) = 408, 242, 408, 251, 414, 258, 420, 263, 428, 265, 436, 261, 440, 253, 442, 243
位置( 176 ) = 441, 231, 436, 226, 430, 221, 463, 222, 463, 228, 466, 238, 464, 243, 464, 255
位置( 192 ) = 464, 265, 471, 230, 482, 227, 505, 198, 508, 209, 508, 218, 507, 226, 505, 237
位置( 208 ) = 504, 246, 504, 255, 504, 261, 561, 197, 561, 207, 561, 217, 562, 228, 562, 236
位置( 224 ) = 562, 244, 562, 252, 562, 261, 567, 263, 556, 226, 546, 221, 537, 226, 533, 234
位置( 240 ) = 529, 241, 528, 248, 531, 255, 536, 258, 542, 264, 549, 264, 594, 204, 592, 213
位置( 256 ) = 593, 224, 593, 233, 593, 243, 593, 263
カウント = 0
do
pos 位置( カウント ), 位置( カウント + 1 )
mes "■"
カウント += 2
until カウント >= 264矩形( 0 ) = 31, 203, 41, 275, 38, 234, 85, 241, 78, 206, 88, 274
矩形( 12 ) = 111, 241, 147, 249, 147, 246, 138, 225, 143, 228, 112, 218
矩形( 24 ) = 108, 223, 117, 268, 110, 264, 139, 273, 161, 200, 169, 273
矩形( 36 ) = 193, 199, 201, 270, 228, 222, 254, 230, 249, 227, 260, 265
矩形( 48 ) = 225, 266, 255, 275, 230, 226, 221, 269, 273, 267, 287, 277
矩形( 60 ) = 280, 274, 286, 287, 335, 234, 343, 273, 359, 223, 370, 273
矩形( 72 ) = 338, 270, 390, 278, 383, 237, 396, 281, 412, 226, 442, 233
矩形( 84 ) = 438, 229, 446, 271, 412, 268, 440, 274, 416, 231, 405, 270
矩形( 96 ) = 461, 224, 469, 276, 464, 234, 492, 243, 503, 200, 510, 272
矩形( 108 ) = 564, 200, 573, 277, 540, 230, 567, 238, 532, 235, 542, 273
矩形( 120 ) = 536, 266, 567, 275, 592, 203, 603, 254, 591, 265, 604, 276
for カウント, 0, length( 矩形 ), 4
boxf 矩形( カウント + 0 ), 矩形( カウント + 1 ), 矩形( カウント + 2 ), 矩形( カウント + 3 )
next// 文字列内に含まれる半角アルファベット(大文字&小文字)のそれぞれの出現回数を数えます
#define ctype IsSjisKanji(%1) ((((%1)^$20)-$a1&$ff)<=$3b)
sdim script, 8192
dim countLower, 26
dim countUpper, 26
mesbox script, 640, 200
button gosub "数える", *count
stop
*count
memset countLower, 0, 26 * 4
memset countUpper, 0, 26 * 4
repeat strlen( script )
char = peek( script, cnt )
if IsSjisKanji( char ) {
continue cnt + 2
}
if char >= 'a' && char <= 'z' {
countLower( char - 'a' ) ++
}
if char >= 'A' && char <= 'Z' {
countUpper( char - 'A' ) ++
}
loop
color 255, 255, 255 : boxf
color
repeat 26
if countLower( cnt ) >= 2 {
font "", 13, 1
color 255, 0, 0
} else : if countLower( cnt ) == 1 {
font "", 12, 1
color 0, 0, 255
} else {
font "", 12
color
}
pos ( cnt \ 6 ) * 70, ( cnt / 6 ) * 20 + 230
mes strf( "%c", 'a' + cnt ) + " : " + str( countLower( cnt ) )
loop
repeat 26
if countUpper( cnt ) >= 2 {
font "", 13, 1
color 255, 0, 0
} else : if countUpper( cnt ) == 1 {
font "", 12, 1
color 0, 0, 255
} else {
font "", 12
color
}
pos ( cnt \ 6 ) * 70, ( cnt / 6 ) * 20 + 350
mes strf( "%c", 'A' + cnt ) + " : " + str( countUpper( cnt ) )
loop
return