表示できないブラウザがあるかも知れないので。
2009-08-12 (3) 23:16:42 +0900
前項の巨大な table は、別ファイルに移動しました。
2009-09-08 (2) 02:24:43 +0900
あまりに大きくて、ブラウザ画面ではこのごく一部しか見えないものとする。 すると、見る人は周囲だけを回ってみて、マスが四つと思うだろう。 それでは、まん中の一マスに気づかない。 そこに“秘密の入り口”、すなわち、秘密ページへのリンクを置くのである。 (この table にはその秘密のリンクはない。)
次のプログラムで作った。
#include <stdio.h> #define ROW 2 #define COL 4 main() { int i, j; printf("<html>\n<body>\n"); printf("<table border=\"1\">\n"); printf("<tr>"); for (j = 0; j < 2 * COL + 1 + 1; j++) { printf("<td> </td>"); } printf("</tr>\n"); for (i = 0; i < 2 * ROW + 1; i++) { printf("<tr>"); printf("<td> </td>"); if (i == 0) { printf("<td colspan=\"%d\" rowspan=\"%d\" bgcolor=\"red\"> </td>", COL, ROW+1); printf("<td colspan=\"%d\" rowspan=\"%d\" bgcolor=\"green\"> </td>", COL+1, ROW); } else if (i == ROW) { printf("<td> </td>\n"); printf("<td colspan=\"%d\" rowspan=\"%d\" bgcolor=\"yellow\"> </td>", COL, ROW+1); } else if (i == ROW + 1) { printf("<td colspan=\"%d\" rowspan=\"%d\" bgcolor=\"blue\"> </td>", COL+1, ROW); } printf("</tr>\n"); } printf("</table>\n"); }
もう一つ、大切なことを忘れていた。 pre タグを使って大きな表を作ることは可能だが、 それには Ο(縦×横) のバイト数が必要になる。 このやり方だと、それが Ο(縦+横) で済むのだ。
ということで、上のプログラムで ROW を 256, COL を 512 にして作ってみたのが下のもの。 プログラムが出力したものに、手を加えてある。 リンクを置く代わりに実在しない画像ファイル名を指定し、 そこをマウスカーソルで指すと文字が現れるようになっている。
(補:ここにあった table は iro0204b.html に移動しました。 このファイルを表示しようとすると、 ブラウザによっては動作がおかしくなることがあります。)
「はずれ!」が出た人は、探しかたが足りません。もっと探してみてください。
付) 全体が2×2マスでは気づかれやすいか。もっと多くするのはまた今度。
2009-08-12 (3) 22:39:10 +0900
表示できずに“つぶれる”ブラウザがあるため、 「補」の部分にあった table は別ファイルにしました。
2009-09-08 (2) 02:21:32 +0900