同じアルファベットを二度以上使わず Hello, World!

どう書く?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! 」と表示しています。

メモ

ボツスクリプト集

アルファベットを数えるスクリプト

// 文字列内に含まれる半角アルファベット(大文字&小文字)のそれぞれの出現回数を数えます
#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

インフォメーション

公開日時
2007年12月28日 午後10時48分30秒
最終更新日時
2007年12月28日 午後11時6分37秒
カテゴリ
HSP