oldworks12
の編集
https://khfdpl.osask.jp:443/wiki/?oldworks12
[
トップ
] [
編集
|
差分
|
バックアップ
|
添付
|
リロード
] [
新規
|
一覧
|
単語検索
|
最終更新
|
ヘルプ
]
-- 雛形とするページ --
2016_10
2016_11
2016_12
BracketName
Essen
Essen0
Essen1
Essen2
Essen3
Essen4
EssenMemo0001
EssenMemo0002
EssenMemo0003
EssenMemo0004
EssenMemo0005
EssenMemo0006
EssenMemo0007
EssenMemo0008
EssenMemo0009
EssenMemo0010
EssenMemo0011
EssenR2
EssenR2_ess03f
EssenR2_ess03h
EssenR2_ess03i
EssenR2_ideas
EssenR2_jit00
EssenR2_jit01
FormattingRules
FrontPage
Help
IP
InterWiki
InterWikiName
InterWikiSandBox
K
KHPC
KHPC_v000doc01
KHPC_v001doc01
KHPC_v002doc01
KHPC_v003doc01
MenuBar
OSC
OSC20181027
OSC20190222
OSC20191123
OSC20230401
OSC20230528
OSC20231021
OSC20240310
OSC20241026
PHP
PukiWiki
PukiWiki/1.4
PukiWiki/1.4/Manual
PukiWiki/1.4/Manual/Plugin
PukiWiki/1.4/Manual/Plugin/A-D
PukiWiki/1.4/Manual/Plugin/E-G
PukiWiki/1.4/Manual/Plugin/H-K
PukiWiki/1.4/Manual/Plugin/L-N
PukiWiki/1.4/Manual/Plugin/O-R
PukiWiki/1.4/Manual/Plugin/S-U
PukiWiki/1.4/Manual/Plugin/V-Z
RecentDeleted
SandBox
SltVA
VariableArray
WikiEngines
WikiName
YukiWiki
advcal20161205
advcal20161206
advcal20161209
advcal20161210
advcal20161215
eoml0001
eoml0002
essen_ex01_0001
impressions
kcl_malloc
khfdpl_result1
members
memo0001
memo0002
note0001
note0002
note0003
note0004
note0005
note0006
oldworks
oldworks00
oldworks06
oldworks12
oldworks13
osaskjp_index
persistent_C
populars
pr20161105
pr20161105b
scsc
seccamp2017
spam_test
uxf
uxf_01
uxf_02
uxp
* blikeライブラリについて -(by [[K]], 2015.03.19) ** (1) blikeライブラリとは? -C言語の標準ライブラリだけでは、コンソールに対する文字表示しかできない。ANSIエスケープシーケンスに対応しているコンソールなら文字に色を付けたりカーソルを移動したりができるが、Windows2000系だとできない。結局、ものすごくつまらないコンソール出力で我慢するか、OSに依存した方法で画面描画に手を出すか、どちらかになる。 -OSに依存した方法は初心者にはつらいものがある。ANSIエスケープシーケンスも初心者にはつらい。それで結果として、つまらないコンソール出力ではすぐに飽きてしまい、初心者はC言語を学ぶ意欲を失ってしまう。 -[[K]]は10歳くらいのときにプログラミング言語を覚えたが、その時はF-BASICから入った。BASIC言語ではとても簡単な命令で画面に線を引いたり長方形を描いたりできる。文字色設定やカーソル移動も簡単だった。これで十分だった。時代は進歩したはずなのに、どうして現状はこうなってしまったのだろう。BASICがC言語よりも優れているなんてみじんも思わないが、こと初心者の視点で比べたら何十倍もの差があるように思う。 -これは打破すべき問題である。しかも解決は難しくない。BASICでできたようなことができる簡単なライブラリがありさえすればいいのだ。それが標準になってしまえばよい。標準になるかどうかはどれだけ普及するかによるけど、とにもかくにも、そういうライブラリがなければ話にならない。ということで、作った。 -blikeはBASIC-Likeに由来する。 ** (2) デモ -test002a (6行): int x, y; openWin(256, 256); for (y = 0; y < 256; y++) { for (x = 0; x < 256; x++) setPix(x, y, rgb(x, y, 0)); } --http://khfdpl.osask.jp/download/blike_test002a.jpg -boxes00a (6行): int i; setCol(0x0000ff); setBCol(0xc6c6c6); openWin(160, 144); for (i = 0; i <= 60; i += 3) drawRect(19 + i * 2, 139 - i * 2, 71 - i, 3 + i); --http://khfdpl.osask.jp/download/blike_boxes00a.jpg -bball00a (27行): struct POINT { int x, y; }; static struct POINT t[16] = { { 196, 100 }, { 187, 61 }, { 164, 29 }, { 129, 9 }, { 90, 5 }, { 53, 17 }, { 23, 44 }, { 7, 81 }, { 7, 119 }, { 23, 156 }, { 53, 183 }, { 90, 195 }, { 129, 191 }, { 164, 171 }, { 187, 139 }, { 196, 100 } }; static int c[8] = { 0x000000, 0xff0000, 0x00ff00, 0xffff00, 0x0000ff, 0xff00ff, 0x00ffff, 0xffffff }; int i, j, d; openWin(200, 200); setMode(BL_POR); for (i = 0; i <= 14; i++) { for (j = i + 1; j <= 15; j++) { d = j - i; /* 2つの点の距離 */ if (d >= 8) d = 15 - dis; /* 逆回りに数える */ if (d != 0) { setCol(c[8 - d]); drawLine(t[i].x, t[i].y, t[j].x, t[j].y); } } } --構造体を使わないでも書けますし、そのほうが行数は減りますが、読みにくくなるような気がするので、このままにしておきます。 --http://khfdpl.osask.jp/download/blike_bball00a.jpg -test005a (9行): int x, y; openWin(256, 256); for (y = 0; y < 256; y++) { for (x = 0; x < 256; x++) setPix(x, y, rgb(x, y, 0)); } locate(13, 8); color(7, 0); printf("hello"); --http://khfdpl.osask.jp/download/blike_test005a.jpg --このようにグラフィックの上に普通にprintfできます(重ねあわせが美しくはないですが)。今までのコンソールでのprintfの知識をむだにすることはありません。 --ピクセル単位で表示位置を指定できて、大きさも指定できて、さらに重ねあわせが問題ない文字列描画関数drawStrもあります。 --このようなテキストとグラフィックの混在を許すので、学習者がステップアップしやすくなっています。 -いろいろ書きましたが、どれもBASICでは何十年も前からできたことばかりです。つまり昔当たり前にできたことをまたできるようにしただけのことです。 ** (3) バージョン01f時点でのサポート関数 -printf() -putc() -puts() -color() -locate() -cls() -rnd() -setCol() : これだと色を6桁の16進数で書ける -setBCol() : これだと色を6桁の16進数で書ける -rgb() : rgb(255, 255, 255) とすると 0xffffff が返る -openWin() : デフォルトの640x400以外の大きさで使いたいときは、最初にこれを使う -setPix() : 点を打つ -getPix() : 画面上の(ウィンドウ上の)色を得る -fillRect() : 塗りつぶした長方形を描く -drawRect() : 枠だけの長方形を描く -wait() : ver.w32_01bから使えるようになった -bl_clock() : 3週間くらいまでなら使い物になる -setMode() : PSET/PAND/POR/PXORを選択できる -drawLine() -iCol() -gets() -inkey() -fillOval() -drawStr() -openVWin() -slctWin() -copyRct0() -copyRct1() -drawPtrn() ** (4) ダウンロード -http://khfdpl.osask.jp/download/c_blike_01f.zip (win32版・「はりぼてOS」版) -https://github.com/takeutch-kemeco/blike (Linux版) -http://khfdpl.osask.jp/download/c_blike_01g.zip (win32版・「はりぼてOS」版) ** (5) リンクなど -blikeの開発wiki: http://osask.net/w/?blike --サンプル例: http://osask.net/w/?blike/C --デモ(上記(2)とほぼ同じ): http://osask.net/w/?blike/intro/demos ** (6) KH-FDPLとの関係 -KH-FDPLもグラフィック描画関数などを用意する予定ですが、それはblikeからドライバを流用する予定です。 --OSECPU-VMのときもそうしていました。 * こめんと欄 #comment
タイムスタンプを変更しない
* blikeライブラリについて -(by [[K]], 2015.03.19) ** (1) blikeライブラリとは? -C言語の標準ライブラリだけでは、コンソールに対する文字表示しかできない。ANSIエスケープシーケンスに対応しているコンソールなら文字に色を付けたりカーソルを移動したりができるが、Windows2000系だとできない。結局、ものすごくつまらないコンソール出力で我慢するか、OSに依存した方法で画面描画に手を出すか、どちらかになる。 -OSに依存した方法は初心者にはつらいものがある。ANSIエスケープシーケンスも初心者にはつらい。それで結果として、つまらないコンソール出力ではすぐに飽きてしまい、初心者はC言語を学ぶ意欲を失ってしまう。 -[[K]]は10歳くらいのときにプログラミング言語を覚えたが、その時はF-BASICから入った。BASIC言語ではとても簡単な命令で画面に線を引いたり長方形を描いたりできる。文字色設定やカーソル移動も簡単だった。これで十分だった。時代は進歩したはずなのに、どうして現状はこうなってしまったのだろう。BASICがC言語よりも優れているなんてみじんも思わないが、こと初心者の視点で比べたら何十倍もの差があるように思う。 -これは打破すべき問題である。しかも解決は難しくない。BASICでできたようなことができる簡単なライブラリがありさえすればいいのだ。それが標準になってしまえばよい。標準になるかどうかはどれだけ普及するかによるけど、とにもかくにも、そういうライブラリがなければ話にならない。ということで、作った。 -blikeはBASIC-Likeに由来する。 ** (2) デモ -test002a (6行): int x, y; openWin(256, 256); for (y = 0; y < 256; y++) { for (x = 0; x < 256; x++) setPix(x, y, rgb(x, y, 0)); } --http://khfdpl.osask.jp/download/blike_test002a.jpg -boxes00a (6行): int i; setCol(0x0000ff); setBCol(0xc6c6c6); openWin(160, 144); for (i = 0; i <= 60; i += 3) drawRect(19 + i * 2, 139 - i * 2, 71 - i, 3 + i); --http://khfdpl.osask.jp/download/blike_boxes00a.jpg -bball00a (27行): struct POINT { int x, y; }; static struct POINT t[16] = { { 196, 100 }, { 187, 61 }, { 164, 29 }, { 129, 9 }, { 90, 5 }, { 53, 17 }, { 23, 44 }, { 7, 81 }, { 7, 119 }, { 23, 156 }, { 53, 183 }, { 90, 195 }, { 129, 191 }, { 164, 171 }, { 187, 139 }, { 196, 100 } }; static int c[8] = { 0x000000, 0xff0000, 0x00ff00, 0xffff00, 0x0000ff, 0xff00ff, 0x00ffff, 0xffffff }; int i, j, d; openWin(200, 200); setMode(BL_POR); for (i = 0; i <= 14; i++) { for (j = i + 1; j <= 15; j++) { d = j - i; /* 2つの点の距離 */ if (d >= 8) d = 15 - dis; /* 逆回りに数える */ if (d != 0) { setCol(c[8 - d]); drawLine(t[i].x, t[i].y, t[j].x, t[j].y); } } } --構造体を使わないでも書けますし、そのほうが行数は減りますが、読みにくくなるような気がするので、このままにしておきます。 --http://khfdpl.osask.jp/download/blike_bball00a.jpg -test005a (9行): int x, y; openWin(256, 256); for (y = 0; y < 256; y++) { for (x = 0; x < 256; x++) setPix(x, y, rgb(x, y, 0)); } locate(13, 8); color(7, 0); printf("hello"); --http://khfdpl.osask.jp/download/blike_test005a.jpg --このようにグラフィックの上に普通にprintfできます(重ねあわせが美しくはないですが)。今までのコンソールでのprintfの知識をむだにすることはありません。 --ピクセル単位で表示位置を指定できて、大きさも指定できて、さらに重ねあわせが問題ない文字列描画関数drawStrもあります。 --このようなテキストとグラフィックの混在を許すので、学習者がステップアップしやすくなっています。 -いろいろ書きましたが、どれもBASICでは何十年も前からできたことばかりです。つまり昔当たり前にできたことをまたできるようにしただけのことです。 ** (3) バージョン01f時点でのサポート関数 -printf() -putc() -puts() -color() -locate() -cls() -rnd() -setCol() : これだと色を6桁の16進数で書ける -setBCol() : これだと色を6桁の16進数で書ける -rgb() : rgb(255, 255, 255) とすると 0xffffff が返る -openWin() : デフォルトの640x400以外の大きさで使いたいときは、最初にこれを使う -setPix() : 点を打つ -getPix() : 画面上の(ウィンドウ上の)色を得る -fillRect() : 塗りつぶした長方形を描く -drawRect() : 枠だけの長方形を描く -wait() : ver.w32_01bから使えるようになった -bl_clock() : 3週間くらいまでなら使い物になる -setMode() : PSET/PAND/POR/PXORを選択できる -drawLine() -iCol() -gets() -inkey() -fillOval() -drawStr() -openVWin() -slctWin() -copyRct0() -copyRct1() -drawPtrn() ** (4) ダウンロード -http://khfdpl.osask.jp/download/c_blike_01f.zip (win32版・「はりぼてOS」版) -https://github.com/takeutch-kemeco/blike (Linux版) -http://khfdpl.osask.jp/download/c_blike_01g.zip (win32版・「はりぼてOS」版) ** (5) リンクなど -blikeの開発wiki: http://osask.net/w/?blike --サンプル例: http://osask.net/w/?blike/C --デモ(上記(2)とほぼ同じ): http://osask.net/w/?blike/intro/demos ** (6) KH-FDPLとの関係 -KH-FDPLもグラフィック描画関数などを用意する予定ですが、それはblikeからドライバを流用する予定です。 --OSECPU-VMのときもそうしていました。 * こめんと欄 #comment
テキスト整形のルールを表示する