すのものの「いろいろ」(その204)

前項が巨大な table を含むため、このファイルは前項と本項のみとします

表示できないブラウザがあるかも知れないので。

2009-08-12 (3) 23:16:42 +0900

前項の巨大な table は、別ファイルに移動しました。

2009-09-08 (2) 02:24:43 +0900

こういう table の大きいのを作ってまん中に“秘密の入り口”を置いたら

          
   
 
    
  
 

あまりに大きくて、ブラウザ画面ではこのごく一部しか見えないものとする。 すると、見る人は周囲だけを回ってみて、マスが四つと思うだろう。 それでは、まん中の一マスに気づかない。 そこに“秘密の入り口”、すなわち、秘密ページへのリンクを置くのである。 (この 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>&nbsp;</td>");
    }
    printf("</tr>\n");
    for (i = 0; i < 2 * ROW + 1; i++) {
        printf("<tr>");
        printf("<td>&nbsp;</td>");
        if (i == 0) {
            printf("<td colspan=\"%d\" rowspan=\"%d\" bgcolor=\"red\">&nbsp;</td>", COL, ROW+1);
            printf("<td colspan=\"%d\" rowspan=\"%d\" bgcolor=\"green\">&nbsp;</td>", COL+1, ROW);
        } else if (i == ROW) {
            printf("<td>&nbsp;</td>\n");
            printf("<td colspan=\"%d\" rowspan=\"%d\" bgcolor=\"yellow\">&nbsp;</td>", COL, ROW+1);
        } else if (i == ROW + 1) {
            printf("<td colspan=\"%d\" rowspan=\"%d\" bgcolor=\"blue\">&nbsp;</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


すのもの Sunomono