さてさて、いきなりですが、
下記コードを実行すると、画面に幾何学模様を描画してくれます Σ(゚Д゚)Oh!!
main(){int x,y,X,Y,T;short s[2];puts("ヨコ タテ モヨウ(1-3)ヲニュウリョク");scanf("%d %d %d"
,&X,&Y,&T);srand(time(0));for(y=0;y<Y;y++){for(x=0;x<X;x++){switch(T){case 1:s
[0]=rand()%2?'/':'\';break;case 2:s[0]=(((2+((x-X/2+((y-Y/2)>>9))>>8)+((y-Y/
2)>>9))%2)<<8)==0?'/':'\';break;case 3:s[0]=((((4410+x*y/(x+y+1))%2)<<8))==0
?'/':'\';}s[1]='\0';printf("%s",(char*)&s);}puts("");}getch();}
幾何学模様プログラムの使い方
① プログラムを実行すると、「ヨコ タテ モヨウ(1-3)ヲニュウリョク」というメッセージが表示されます。
「横サイズ」「縦サイズ」「模様の種類(1~3の間)」を任意で入力し、Enterキーを押します。
② ①でEnterキーを押すと、幾何学模様が表示されます。
(入力した縦横サイズ、模様の種類によって、表示される模様が変化)
ex) 幾何学模様1 【ランダム】
ex) 幾何学模様2 【渦巻き】
ex) 幾何学模様3 【規則的】
③ 最後に、何かキーを押すとプログラムが終了します。
幾何学模様プログラミングの解説
プログラミングノウハウとしては、特に特筆する点もないのですが、一応補足します^^;)
上記コードは、2ちゃんねるのカキコを元に筆者が以下のコードを作成し、それを最適化して5行にまとめたものです。
1 : #include <stdio.h>
2 : #include <stdlib.h>
3 : #include <time.h>
4 :
5 : int main(void)
6 : {
7 : int x, y, maxX, maxY, drawType;
8 : short str[2];
9 :
10 : printf("横サイズ、縦サイズ、描画模様(1~3) を入力して下さい ->");
11 : scanf("%d %d %d", &maxX, &maxY, &drawType);
12 :
13 : srand((unsigned int)time(NULL));
14 :
15 : for (y = 0; y < maxY; y++) {
16 : for (x=0; x < maxX; x++) {
17 : str[0] = str[1] = NULL;
18 :
19 : switch (drawType) {
20 : case 1: str[0] = rand() % 2 ? '/' : '\'; break;
21 : case 2: str[0] = (((2+((x- maxX/2 +((y-maxY/2)>>9))>>8)+((y-maxY/2)>>9))%2)<<8) == 0 ? '/' : '\'; break;
22 : case 3: str[0] = ((((4410+ x*y/(x+y+1))%2)<<8)) == 0 ? '/' : '\';
23 : }
24 : str[1] = '\0';
25 :
26 : printf("%s", (char *)&str);
27 : }
28 : puts("");
29 : }
30 :
31 : getch();
32 :
33 : return 0;
34 : }
縦横サイズをscanf()で入力し、ループで回しながら '/' または '\' をshort型の配列に入れ、
それをchar *にキャスティングし、printf()で出力しています。
(※ 24行目でstr[1]にNULLを入れているのはその為です。)
プログラミングとしては三流でも、実行結果は面白いので、まぁそれはそれで良いのではないでしょうか??
・・・という自己満w ( ̄ー ̄)ニヤリ
幾何学模様 C++版へ続きます。