TKYM's profile※ 画面は開発中のものですPhotosBlogListsMore ![]() | Help |
|
November 30 フィクション今日特急電車に乗って移動中、隣に座っていた他人が、「弁当を食べてもいいですか?」と聞いてきたので、「いいですよ」と言ったのだが・・・。
男性は弁当を広げ、かばんの中から My箸・・・と、納豆を取り出した。
驚きのあまり何も言うことが出来なかった。
そして、タレをかけてかき混ぜ始める。特有のにおいが車内に充満する。
通路向かいの人がこちらを見ている。
男性は何かに気づいてネバネバの箸をおいた。
どうやらからしを入れ忘れたようだ。
袋を開けることに手間取っているようだった。
早くこの空間から抜け出したく思いながら、窓の外を見ていると、隣から何かが飛んできた。
手でそれをぬぐい、隣を見ると、ミクロの穴が開いたからしの袋が、持ち主の指圧によって破裂寸前になっていた。
箸が一本、床に落ちた。 November 29 nico+赤外線通信搭載&パステルカラーの「nico+」が登場
ほしい。パステルカラー化でかわいさが数段増しているけれど。
nico.neco が本当は一番ほしいかもしれない。
もう少しまじめに考え直すと '9' がほしい
PHS が速度的に不利になってきたとき(まさに今)、音声に特化してシンプルに使うための作戦を考え中なのです。 シウマイ・定額<崎陽軒>シューマイの原材料表示に誤り 回収し廃棄
こんなニュースの中、今日は京急に乗って横浜をとおり、 原材料に「シウマイ(*)」 と書いてあり 表示上全く問題が無い シウマイ弁当を買って、おいしくいただきました。
(*) シウマイ単体の場合、シウマイの原材料が書いてある。
KDDI、PC向けデータ定額プランと専用データカード「W05K」を発表
KDDI の発表したPC定額は、プロトコルを問わず定額で通信が行えるようです。
有力な選択肢が イーモバイル・KDDI の2つになりました。
ドコモは制約が多いので他者に比べ不利、ソフトバンクは追従するのかどうか。
そんな中心配なwillcom.
W-OAM typeG のスピードアップを急いでも、まだ 800kbps.
PHS はこの先生きのこることができるのでしょうか・・・。 November 25 蜂黒 、 ハチクロNovember 24 その改造が終わったことについて2.5日間、PHP を書き続けた。 睡眠はしっかり8時間とったけど。
ブログのRSS を取得してタイトルによってシリーズ分けした。
それをさらにソフトウェアの公開情報と統合して、最新情報をトップに表示した。
フィードや日付表記の種類に対応できていない。
書き方も汚いけれど、最初だから仕方ない。
作り直せばプログラムは生まれ変わるのだけれど、一般にそういうやり方は通用しないので、自分もしばらくしない。
ちなみに、書いた行数は500ちょっと。
1日3000行書く人に比べると少なすぎる。
論理的思考なんて最初から全くしていないのにこんな調子です。
多分集中力がないからでしょう・・・。 ブログと日記の違い話していて、ブログ = 日記+トラバ という、何気ない認識が、それだけではないことを知った。
語源からすれば、 weB LOG なので、 ウェブのログを書くものであり、個人の日記ではない。 ブログがたまたま日記としても便利な機能を 数多く備えていたことから、現在の使われかたに至っているということらしい。
普段何気なく使っている言葉も、分解して考えてみると新たな発見があるのですね。
見苦しい記事が続きましたが、これは programming_city の改造のためです。
programming_cjity というカテゴリの記事は、http://prog-city.no-ip.info/ にで、シリーズごとにまとめて表示されます。 November 20 産業プログラム(Ctrl + L)ユーザの切り替え画面に勝手に移動するために、Win + L を自動的に押したことにしてくれるプログラムを書きました。
#include <windows.h>
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow){ keybd_event(0x5b, 0, 0, 0); keybd_event('L', 0, 0, 0); keybd_event(0x5b, 0, 2, 0); return 0; } 便利なような、不便なような・・・
VMWare を起動していると、ついログオフしたとき、VM まで落ちてしまうので、対策用になるかなと。
; November 17 テクノラティに登録するついでHSP でクイズ(7) とりあえず完成最後に、点数の区分によって、違った文章を表示するようにします。
20点ごとに、5つの文章を用意します。
2次元配列を使うと、複数の文字列をまとめて扱えます。
2次元配列も sdim 命令で作成します。
sdim comment, 100, 5
100文字の要素が5つ分ある配列を作ります。
これに、5つのコメントをあらかじめ入れてしまいます。
comment(0) = "思った選択肢以外を選びましょう"
comment(1) = "これはひどい"
comment(2) = "残念"
comment(3) = "まあまあ"
comment(4) = "すばらしい"
comment(5) = "おめでとう"
上から、0~19, 20~39, 40~59, 60~79, 80~99, 100 点の時のコメントです。
これを、 mes comment(x) のような形で表示します。
機能は一通り完成しました。
あとは、ウィンドウのタイトルを "クイズ" に変えて、exe を作ります。
プログラムの始めに、
title "クイズ" と書きます。
exe を作る方法
pos 320,10
mes "結果発表" ten = right * 100 / nData mes "あなたの点数:"+ (ten) + "点" sdim comment, 100, 5
comment(0) = "思った選択肢以外を選びましょう" comment(1) = "これはひどい" comment(2) = "残念" comment(3) = "まあまあ" comment(4) = "すばらしい" comment(5) = "おめでとう" pos 320,50 mes comment(ten/20) ソース
実行可能ファイル + ソース + 問題データ November 16 HSP でクイズ(6)成績表示画面を作りましょう。
これまでは、全ての問題を回答すると、プログラムが終了してしまいましたが、これを成績発表処理に飛ぶように変更します。
if q_cnt = nData : end ; 問題数に達したら終了
この行により、今までは終了してしまっていました。この end 命令を goto 命令に置き換え、新たな処理へと飛ばします。
if q_cnt = nData : goto *score ; 問題数に達したら終了
・・・ 一番下へ
*score
; ここで何かを表示
stop
成績表示画面に切り替えるために、今までの画面をクリアします。
cls
これで、画面は真っ白になります。
画面はこんな感じにしようと思います。
問題数が増加したときのため、メッセージボックス内に結果を表示するようにします。
メッセージボックスを作るのは mesbox 命令です。
mesbox 表示する文字列変数, xサイズ, yサイズ
mesbox 命令には、表示する文字列を指定するので、まずはその文字列を作る必要があります。
地道にループして、文字列を作っていきます。
ループは repeat ~ loop で、 repeat 繰り返す回数 のように書きます。
ループの内部では、 cnt という変数が使え、繰り返すごとに0, 1, 2, 3, 4 と増えます。
scorebuf という変数を用意し、 念のためsdim で 1000文字分の長さを確保しておきます。
ループしながら、各問いの結果を連結していきます。文字列を連結するには
scorebuf += "hello"
のように書きます。
そして、文字列を作っていく中で、正解・不正解を判定し、 ○×をつけ、その数をカウントし、点数を算出します。 問題データの正解が書かれた行を取り出して比較しますが、そのデータは文字列なので、比較可能な数値型に変換します。
int(文字列 )
November 15 HSP でクイズ(5)回答ボタンが押されたとき、どのボタンが押されたのかを判別し、正解・不正解を記録するよう処理を書き加えていきます。
即座に正解・不正解を表示せず、回答した選択肢の番号を記録し、全部出題したあとに結果表示することにします。 各問題の回答を記録するには、問題数分の配列を準備する必要があります。 回答番号(1-4)を入れるので、数値を入れるための配列です。
数値を入れる配列を作るには、dim 命令を使います。
dim 配列名, 要素の数
この命令に、問題数である既存の nData 変数を指定すれば、配列を作ることが出来ます。
dim log, nData
また、ボタンが押され、 *a1 ~ *a4 ラベルにジャンプしたとき、選択肢の番号を配列に格納します。
*a1
log(q_cnt) = 1
goto *update
(他のラベルでも同じ事をします。)
これで、配列にはデータが書き込まれましたが、見ることが出来ません。
そこで、debug ウィンドウというものを開いてみます。これは、変数の状態を表示したり、途中で動作を止めて、1行1行動作を確かめることが出来るものです。
[HSP(P)]メニューから、Debugウィンドゥ表示を選択し、スクリプトを実行します。 すると、メインのウィンドウのほかに、 Debug Window が表示されます。 問題を数問回答してから、その中の、[変数]タブを選び、チェックボックス[配列変数]をチェックします。そして、作成した配列である log を選択すると、配列の中身がどうなっているか表示されます。
答えていた問題の回答が正しく記録されているでしょうか。
[表示の例]
今度は、これをつかって結果表示をします。
November 14 HSP でクイズ(4)画面を作り、問題を読み込んだので、今度は問題を表示していきます。
問題の表示は、問題数の数だけ毎回同じ事を繰り返します。このような処理は、サブルーチンを作って、何度でも呼び出せるようにすると便利です。
HSP には、普通の goto によるジャンプと、 サブルーチンジャンプである、gosub によるジャンプがあります。goto も gosub もラベルを指定しますが、 gosub で指定されるラベルの下には、return という命令があり、return まで処理が進むと 呼び出し元の gosub まで戻ってきます。
[例]
この場合、1, 5, 6, 7, 2, 3 の順番に処理が進みます。
*q_show というラベルを、問題の表示を更新するための サブルーチンとして書いてみます。 このサブルーチンでは、 問題を画面上に表示し、4択ボタンに表示される文字を書き換えます。 何番目の問題に書き換えるかは、q_cnt に格納されていることとします。gosub する前に表示したい問題番号をq_cnt にしておけば良いということです。 すでに表示されたボタンの状態を変更するには、objprm 命令を使います。objprm を使うには、ボタン作成時にわかるボタン固有のIDを変数に入れて覚えておかなければなりません。button 命令を実行し、ボタンを配置したとき、 stat という特別な変数に ボタンのID が入っています。これを、idb_1, idb_2, idb_3, idb_4 という変数を用意して覚えておくことにします。 objprm 命令は、 objprm ID, 文字列 の形式で記述します。 [ボタン配置部分の変更] [gosub 前に準備しておく変数]
これを踏まえ、今までのコードにこのサブルーチンへのジャンプを書き加えます。 [今回書いたところ]
それと、
これで、正解・不正解はわからないものの、答えを選択して出題を進めていくことができるようになりました。 次は、正解・不正解を判定してみます。 ソースと問題ファイル HSP でクイズ(3)問題ファイルを読み込みます。
HSP でファイルを読み込む場合、普通のファイル操作を行ってもよいですが、改行で区切られたテキストファイルを読み込む場合、メモリノートパッド命令という特有の機能を用いると便利です。命令ひとつで、任意の行を取得することが出来ます。
[ファイル名] question.txt
[読み込みのコード]
[n 問目の問題データを参照する方法]
メモリノートパッドの各行の値を取得するには、 noteget 命令を使用します。
noteget は、 noteget (データを格納する変数), (取得する行) の形式で記述しますが、データを格納する変数は、配列として十分な大きさを用意しておかなければなりません。
配列を作るには、sdim 命令を使います。
sdim 変数名, バイト数 の形式で、十分な容量の配列を確保します。
n問目の 各データのインデックスは次のとおりです。(nは0から開始)
6*n + 0 : 問題文
6*n + 1 : 選択肢1
6*n + 2 : 選択肢2
6*n + 3 : 選択肢3
6*n + 4 : 選択肢4
6*n + 5 : 正解
適当に書いてみました。内容としては、とりあえず問題を読み込んで、選択肢ボタンのどれかをクリックすると、次の問題の文章がダイアログで表示されるという実験プログラムです。
ボタンが押されると *a1 ~ *a4 のどれかに飛びます。そこで、 q_cnt++ という命令が実行されると、 q_cnt の値は1増加します。そして、goto 命令で、 *update にジャンプします。
そこでもし、問題数までq_cnt が到達してしまっていたら、終了します。 そうでなければq_cnt 番目の問題文を あらかじめ作っておいた配列 linebufに読み込み、 dialog でダイアログボックスに表示します。
November 13 HSP でクイズ(2)問題を作りました。
で、今度は画面を作ってみます。
ようやくここでコードを打つことになるわけですが。
とりあえず、こんな感じに表示するという程度のものです。
これを実行すると、このようになります
地味です。しかも何もしません。
使用した命令
適当に画面を作りました。次は、問題を読み込んで見たりします。 November 12 HSPでクイズHSP でクイズを開発します。
4択の問題で、制限時間は無く、全問回答形式です。
100点満点で評価を行い、最後に各問の正解・不正解とともに表示します。
(Wikipedia より)
HSP を使うと、非常に簡単にGUI のプログラムを作ることが出来ます。
まず、HSP のプログラミング環境を準備します。
ダウンロードサイトから HSP をダウンロードします。
インストールウィザードに従い、HSP をインストールしたら、"HSPスクリプトエディタ"を開きます。
ここに、コードを書き、プログラムを実行します。が、実はもうプログラムの原型は作られています。
F5 を押してみると、ウィンドウが開きます。
HSP は何もしなくても GUI のプログラムが作れるのです。
・・・ちなみに、やりたければ mes "hello world" と打ち込んでからF5 を押してください。
プログラムを書く前に、適当にクイズを作っておきましょう。 question.txt
つかれた。 (つづく) November 10 時計時計が3分もずれていた。
鯖としてずっと起動していたのに、油断ならない。
それで、30分録画するうちの後ろ5分は関係の無い番組が入っているのに、時計は遅れていた。これってマーフィのなんとか?
対策として、東大のntp にサーバーを変えておいた。time.windows.com は全く同期できない。
Windows をインストールしたときにやっておけばよかった。
さらに、mAgicTV を使用している場合、mAgic マネージャの「時刻補正」タブの設定で「補正しない」がデフォルトになっているので、「1日1回」とかにしておくと安全だと思う。 November 09 勉強ってどうやってやるの?時間が過ぎていて、間に合わなくなってしまった。
テストらしいということだったが、結局のところテストはなく、それどころか授業開始が遅れていて間に合ってしまった。
関係ない科目の勉強もはかどり、面倒なプリントもなく、終えてみるとすばらしい一日だった。 ところで、ひざが痛い。立ったり座ったりが特に大変。 November 08 ムシャムシャ幸せhttp://www.kfc.co.jp/tvcm/cm_26.html(ケンタッキーフライドチキン)
ケンタッキーのCMが見るたびに気になったので調べた。
ムシャムシャソングに合わせ、肉に食らいついている。動物としての幸せの原点を見せられた感じがする。
食べる喜びはみんな共通だと思うから、とても効果的なCMだと思う。
何より見ていて楽しい。 November 07 さまざま最近、電車が混雑している。さまざまなイベント・行楽のシーズンだから、みんな電車に乗っていくのだろう。
マンガを2冊買った。読むと落ち着く。
11~12時ごろに寝て、朝は7時までにおきる。眠っていられる実質的な時間は大体6:30ぐらい。
夜更かししては 8~10時間睡眠するパターンよりは、時間を有効活用できていると思う。
しかし、これから先朝起きるのは大変だ。
けん玉の紐をはずした。しばらくもしかめの練習に集中しようと思う。音楽を鳴らしながらひたすらもしもしかめかめと練習するのが結構面白い。
gcc: 最終行の改行に意味はあるのですか?
"no newline at end of file"
November 06 教師による逆パカは存在したのだろうか授業中に携帯電話が鳴って逆パカされた
というエピソードは飽きるぐらい耳にしています。しかし、目にしていません。
果たして、本当に逆パカは存在していたのか。
私が目にしたものは
ぐらいで、物理的に壊されたようなケースは無いです。 実質1円でも開発費はとても高いのだから、使い終わったとしても壊してしまうのはもったいないです。 ところで、ストレート型端末はそもそも逆パカできないと思いますが、それでも 702nk2 が結構頑丈だと思うのです。 |
|
|