日本語プログラミング言語なでしこ公式のアプリ - サンプルプログラム掲示板

なでしこ の アプリ-サンプル

トップ 登録 検索 ヘルプ





  本文 名前  タイトル

種類 :本文
キーワード:


2020-12-12 22:28:16

76 : 大阪・関西万博(EXPO 2025)まであと何日

13行目/万博

日本語プログラミング言語なでしこ3で作られたアプリ名『大阪・関西万博(EXPO 2025)まであと何日』です。
(バージョン:3.1.2)

万博が2025年に行われます。そのカウントダウンとなります😄。

※前回(五輪)、記載比較のための例


なでしこ3

五輪

万博




2017-03-13 16:10:01

13 : 「サクラ」の和音入力支援的な

30行目/  幅は100。高さは170。 白鍵(7)と白鍵+黒鍵(12)の最小公倍数=84*2+2

※テキスト音楽「サクラ」のストトン表記で、ちょっとだけ和音をラクに入力しよう的なものです。

#-----------------------------------------------------------------------
#「サクラ」の和音入力支援的な
#-----------------------------------------------------------------------

#-----母艦設計----------------------------------------------------------
!母艦設計=「母艦の可視はオフ」
母艦をウィンドウ背景色で画面クリア。
母艦のクライアント幅は320。
母艦のクライアント高さは240。
母艦のタイトルは「和音入力」
母艦のスタイルは「枠固定」
オフに母艦の最大化ボタン有効変更。
オフに母艦の最小化ボタン有効変更。
母艦を中央移動。
#-----------------------------------------------------------------------

#-----宣言--------------------------------------------------------------
音程とは配列=「シ{~}ラ{~}ラ{~}ソ{~}ソ{~}ファ{~}ファ{~}ミ{~}レ{~}レ{~}ド{~}ド」
Noとは整数=0
MMLとは文字列=空。

#-----GUI------------------------------------------------------------
鍵盤マウス=「-1,-1」
鍵盤とはイメージ。
これについて
  可視はオン。
  位置は「10,30」
  幅は100。高さは170。 白鍵(7)と白鍵+黒鍵(12)の最小公倍数=84*2+2
  マウス出た時は~
    鍵盤マウス=「-1,-1」
    -1,-1で鍵盤描画。
  マウス押した時は~
    もし、マウスX<50ならば、
      「{音程¥(マウスY/14を切り下げ)}ー」をMML演奏。
    もし、マウスX>50ならば、
      「{音程¥(マウスY/24を切り下げの全鍵変換)}ー」をMML演奏。
  マウス移動した時は~
    もし、鍵盤マウス=「{マウスX/50を切り下げ},{マウスY/14を切り下げ}」ならば、戻る。
    違えば、もし、マウスX>50ならば、
      (マウスY/24を切り下げ),-1で鍵盤描画。
    違えば、もし、マウスX<50ならば、
      (マウスY/14を切り下げの白鍵変換),(マウスY/14を切り下げ)で鍵盤描画。
-1,-1で鍵盤描画。
#-----------------------------------------------------------
入力パネルとはパネル
これについて
  位置は「110,30」
  幅は200。高さは170。

入力画面とはイメージ。
これについて
  可視はオン。親部品は入力パネル。
  位置は「0,0」
  幅は200。高さは170。
  マウス出た時は~
    鍵盤マウス=「-1,-1」
    -1,-1で鍵盤描画。
  マウス移動した時は~
    (マウスY/14を切り下げの白鍵変換),(マウスY/14を切り下げ)で鍵盤描画。
  マウス押した時は~
    もし、押されたボタン=「右」ならば、
      もし、マウスY≧168でなければ、
        「{音程¥(マウスY/14を切り下げ)}」をMML演奏。
    違えば、
      もし、マウスY≧168でなければ、
        ノート音程はマウスY/14を切り下げ
        ノート位置は「{(マウスX/50を切り下げ)*50+1},{(マウスY/14を切り下げ)*14+1}」
        ノート作成。
        「{音程¥(マウスY/14を切り下げ)}」をMML演奏。

線色は黒色。塗り色は白色。
入力画面の0,0から200,170へ四角。

線色は$999999
11回
  入力画面の1,14*回数から199,14*回数へ線。
線色は青色。
3回
  入力画面の50*回数,1から50*回数,169へ線。
#-----------------------------------------------------------
部品間隔は0
再生ボタンとはボタン。
その位置は「10,0」
そのクリックした時は~
  MML作成。
  もし、MML=空でなければ、MMLをMML演奏。

コピーボタンとはボタン。
その位置は再生ボタンの右側。
そのクリックした時は~
  MML作成。
  MMLをコピー。

貼付ボタンとはボタン。
その位置はコピーボタンの右側。
そのテキストは「{カッコ}サクラ{カッコ閉じ}へ貼り付け」
そのWはそのテキストの文字幅取得+10。
そのクリックした時は~
  MML作成。
  MMLをコピー。
  「*テキスト音楽{カッコ}サクラ{カッコ閉じ}」を窓アクティブ。
  「*テキスト音楽{カッコ}サクラ{カッコ閉じ}」へ『^v』をキー送信。

部品間隔は10。
確認エディタとはエディタ。
その位置は鍵盤の下側。
その幅は300。
#-----------------------------------------------------------
Rメニューとはポップアップメニュー。
Rメニューに『#親部品名,部品名,テキスト,ショートカット,オプション,イベント
-,削除メニュー,削除,,,ノート削除
-,-,,,,
-,上メニュー,オクターブ↑,,,「‘」でオクターブ変更。
-,中メニュー,オクターブ通常,,,「」でオクターブ変更。
-,下メニュー,オクターブ↓,,,「”」でオクターブ変更。』をポップアップメニュー一括作成。

*ノート削除
  ノート[ノート番号]→テキストは空。
  ノート[ノート番号]→可視はオフ。

*オクターブ変更(Aで)
  音符=ノート[ノート番号]→テキスト。
  もし、(音符の1文字左部分=「‘」)または(音符の1文字左部分=「”」)ならば、
    音符=音符の1から1文字削除。
  ノート[ノート番号]→テキストは「{A}{音符}」。
  ノート[ノート番号]→幅は48。
#-----------------------------------------------------------------------

母艦の可視はオン。
#-----------------------------------------------------------
*鍵盤描画(W,Bで)
  線太さは1。線色は黒色。塗り色は白色。
  鍵盤の0,0から100,170へ四角。
  yy=1
  7回
    もし、W=回数-1ならば、塗り色は$FFCCCC
    違えば、塗り色は白色。
    鍵盤の0,yyから100,yy+24へ四角。
    yy=yy+24。
  yy=1
  12回
    もし、回数=2または回数=4または回数=6または回数=9または回数=11ならば、
      もし、B=回数-1ならば、塗り色は$CCCCFF。
      違えば、塗り色は黒色。
      鍵盤の0,yyから50,yy+14へ四角。
    yy=yy+14

*全鍵変換(Aの)
  もし、A=1ならば、2で戻る。
  違えば、もし、A=2ならば、4で戻る。
  違えば、もし、A=3ならば、6で戻る。
  違えば、もし、A=4ならば、7で戻る。
  違えば、もし、A=5ならば、9で戻る。
  違えば、もし、A=6ならば、11で戻る。

*白鍵変換(Aの)
  もし、A=2ならば、1で戻る。
  違えば、もし、A=4ならば、2で戻る。
  違えば、もし、A=6ならば、3で戻る。
  違えば、もし、A=7ならば、4で戻る。
  違えば、もし、A=9ならば、5で戻る。
  違えば、もし、A=11ならば、6で戻る。
  違えば、もし、A=0ならば、0で戻る。
  違えば、A=-1で戻る。
#-----------------------------------------------------------
*ノート作成
  ノート[No]をラベルとして作成。
  ノート[No]→親部品は入力パネル。
  ノート[No]→ポケットはNo。
  ノート[No]→位置はノート位置。
  ノート[No]→テキストは音程¥ノート音程
  ノート[No]→透明はオフ。
  ノート[No]→幅は48。
  ノート[No]→高さは12。
  ノート[No]→背景色は$FFFF99
  ノート[No]→ポップアップメニューはRメニュー
  ノート[No]→マウス押した時は~
    ノート番号は自身→ポケット
    もし、押されたボタン=「左」ならば、
      自身→背景色は$999999
      ノート移動フラグはオン。
  ノート[No]→マウス離した時は~
    もし、押されたボタン=「左」ならば、
      自身→背景色は$FFFF99
      ノート移動フラグはオフ。
      一時は自身→位置
      「{音程¥(((一時¥0,1)-1)/14)}」をMML演奏。
  ノート[No]→マウス移動した時は~
    一時は自身→位置
    (((一時¥0,1)-1)/14)の白鍵変換,(((一時¥0,1)-1)/14)で鍵盤描画。
    もし、ノート移動フラグ=オンならば、
      もし、マウスY<=0ならば、
        もし、ノート位置\0,1=1でなければ、
          ノート位置¥0,1=(ノート位置¥0,1)-14
          ノート音程=ノート音程-1
      違えば、もし、マウスY>=12ならば、
        もし、ノート位置\0,1=155でなければ、
          ノート位置¥0,1=(ノート位置¥0,1)+14
          ノート音程=ノート音程+1
      もし、マウスX<=0ならば、
        もし、ノート位置\0,0=1でなければ、
          ノート位置¥0,0=(ノート位置¥0,0)-50
      違えば、もし、マウスX>48ならば、
        もし、ノート位置\0,0=151でなければ、
          ノート位置¥0,0=(ノート位置¥0,0)+50
      自身→位置はノート位置。
      自身→テキストは音程¥ノート音程
      自身→幅は48。
  No=No+1
#-----------------------------------------------------------
*MML作成
  一時は空。
  (No)回
    もし、ノート[回数-1]→テキスト=空でなければ、
      もし、一時¥((ノート[回数-1]→X)/50を切り下げ)=空ならば、
        一時¥((ノート[回数-1]→X)/50を切り下げ)=ノート[回数-1]→テキスト
      違えば、
        和音は一時¥((ノート[回数-1]→X)/50を切り下げ)
        もし、和音の1文字左部分=「{カッコ}」ならば、
          和音の1から1文字削除。和音の1文字右端削除
        和音=「{カッコ}{和音}{ノート[回数-1]→テキスト}{カッコ閉じ}」
        一時¥((ノート[回数-1]→X)/50を切り下げ)=和音。
  (一時の要素数)回
    もし、一時¥(回数-1)=空ならば、一時¥(回数-1)=「ッ」
  MMLは一時を「」で配列結合。
  確認エディタのテキストはMML。
#-----------------------------------------------------------






旧掲示板はこちら

www.eznavi.net