ちょっといじってみました。
テンポや拍数をどんどん上げていくと、枠をはみ出してしまったので、上限を設けたほうがいいと思います。
- テンポを上げるテスト
- Pmusic_test1.png (53.35 KiB) 閲覧数: 7794 回
- 拍数を上げるテスト
このテンポ111119、11113拍の設定では、スタートすると数字が勢いよくカウントダウンしていきましたが、
時々止まっていました。特に後半、数字が小さいほど止まる間隔が短くなるようでした。
数字のカウントダウンが止まると、Amなどが表示され始めました。(仕様ですね)
また、テンポを逆に下げると、0では音が聞こえませんでしたが、-1以下にすると爆速で音が鳴り始めました。
テンポの下限も設けるべきだと思います。
- テンポを下げるテスト
再生中に拍数を切り替えられない、という仕様に戸惑いました。
今使用できないボタンはグレーなどで表示し、無効だとわかるようにすると親切だと思います。
今後の発展のために(?)、アイコンやバージョン情報(リソースを使い、プロパティで表示できるもの)をつけてみるのもいいと思います。
タイトルが表示されている部分とスタート/ストップボタンの間のスペースに役割はあるのでしょうか?
UIが「ランダム/順番」なのに対しディレクトリ名が「random/list」なのは対応がおかしい気がするので、
listをsequentialにしてはどうでしょうか?
10000件のデータをlist\8.txtに書いた状態で起動すると、真っ白な画面がしばらく続いていました。(CPU使用率は2%程度)
右上の×ボタンを押すと、強制終了になりました。
「あんまり個数が増えすぎると(200ぐらい)バグるかもしれません」という記述で逃げるのではなく、
きちんとエラー処理(上限を超えたところで読み込みを打ち切るなど)をするべきだと思います。
上限は増やさなくても構いません。(増やすことを禁止する意図はありません)
0.txt~9.txtの読み込みを全てコピペ(or全部手入力?)し、ループを使わずに書いているようですが、
これはループを使うべきです。ループを使わない理由は
ウンコードの生産以外に思いつきません。
あとは「宗教上の理由」くらいでしょうか?
wsprintfが嫌いでも、この場合ファイル名の数字だけ書き換える、ファイルのパスを配列に入れて持つなど、他の方法もあります。
数値を読み込む時にatoiを用い、オーバーフローを回避しているのはいいと思います。
ファイルの設定によりテンポを120、-65537拍にしたところ、最初に黒電話のような音がなり、その後音はしないようでした。
そして表示も最初の項目から動きませんでした。
0拍にすると、スタートボタンを押した時に強制終了しました。
最初に起動した状態で、「順番」→「ランダム」→「スタート」の順にボタンを押し、他のボタンは押さないようにすると、
list\0.txtの内容(テンポ、拍、表示する内容)を使ってランダムな順番で表示されるようです。
ただし、横に表示しているタイトルはrandom\0.txtに従うようです。
ファイルにデータを1件も用意しない状態(タイトル、テンポ、拍の3行のみ記入)でそのファイルを使うと、
順番モードでは最初のカウントが終わったタイミングで強制終了しましたが、
ランダムモードではカウントが終わっても強制終了せず、文字が表示されない状態でメトロノームの音が流れました。
データ部分(表示されるテキスト)を
コード:
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBB
としたファイルを使って順番モードで実行すると、
AAABBBBB、BBBBBBBB、BBの3種類の表示がされました。(最初の2個は左右に続いているようでした)
また、データの最初の3行(タイトルなどの設定)を
コード:
ああああああああああああああああああああああああ!!!!!!!!!!!!
120
4
とすると、テンポが0となり、120拍となりました。
空のファイルを使用すると、テンポ0、0拍と認識され、スタートボタンを押すと強制終了しました。(0拍だから?)
list\9.txtを以下の内容にしたところ、メトロノームやスタートボタン、拍の切り替えなどの操作はできるようですが、
一部の文字が表示されなくなりました。
► スポイラーを表示
コード:
多い!!!
120
0
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789012345678901234567890123
また、list\9.txtを一回以下の内容で保存し、
► スポイラーを表示
コード:
色変更
120
4
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
0123456789
9012345678
8901234567
7890123456
6789012345
5678901234
4567890123
3456789012
2345678901
1234567890
01234567890123456789012345BGR
最後のBGRの部分をバイナリエディタで書き換えることにより、一部の文字の色を変えられるようです。
プロジェクトをDドライブに置くことでユーザー名を推測されないようにする、というのは良い工夫だと思います。
ただ、
そもそも余計なパス情報をバイナリに記録しないコンパイラを使うと、もっと良くなると思います。
とりあえず、気づいたことはこんなもんです。
長文失礼しました。