blikeのデモ
- (by K, 2011.02.16)
- blikeを使えば、これくらいのものがこれくらいの行数、これくらいのプログラムの難易度で作れますという例。配列とかポインタとかをできるだけ使わないようにしています。
- でも配列は使っている例もあります。
- もちろん他のもっと便利な言語を使えばこれより短くかけるかもしれませんが、C言語だけでここまでできるのは教えやすいのではないかと。しかも環境依存なしで。
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));
}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);bball00a (30行)
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]);
if (t[i].x <= t[j].x)
drawLine(t[i].x, t[i].y, t[j].x, t[j].y);
else
drawLine(t[j].x, t[j].y, t[i].x, t[i].y);
}
}
}- 構造体を使わないでも書けますし、そのほうが行数は減りますが、読みにくくなるような気がするので、このままにしておきます。
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");- このようにグラフィックの上に普通にprintfできます(重ねあわせが美しくはないですが)。今までのprintfの知識をむだにすることはありません。
- ピクセル単位で表示位置を指定できて、大きさも指定できて、さらに重ねあわせが問題ない文字列描画関数drawStrもあります。
- このようなテキストとグラフィックの混在を許すので、学習者がステップアップしやすくなっています。
- いろいろ書きましたが、どれもBASICでは何十年も前からできたことばかりです。つまり昔当たり前にできたことをまたできるようにしただけのことです。
添付ファイル:
osask.net_bball00a.jpg 2件
[詳細]
osask.net_test005a.jpg 3件
[詳細]
osask.net_boxes00a.jpg 1件
[詳細]
osask.net_test002a.jpg 1件
[詳細]
bball00a.jpg 313件
[詳細]
test002a.jpg 320件
[詳細]
boxes00a.jpg 294件
[詳細]
test005a.jpg 285件
[詳細]
|
Counter: 514,
today: 3,
yesterday: 0
初版日時: 2011-02-16 (水) 00:00:00
最終更新: 2011-02-16 (水) 00:00:00 (JST) (657d) by lina
|
ぺージ情報 | 閲覧可 | 編集可 | |||
|---|---|---|---|---|---|---|
| ぺージ名 : | blike/intro/demos | グループ : | すべての訪問者 | グループ : | すべての訪問者 | |
| ページ作成 : | lina | ユーザー : | すべての訪問者 | ユーザー : | すべての訪問者 | |
| ページ別名 : | 未設定 | |||||




