annotate test/obsf2.c @ 503:3c95c69aa80e

*** empty log message ***
author kono
date Fri, 23 Dec 2005 19:44:26 +0900
parents a379da780856
children 2f577690bcfb
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
467
32737bad7489 fix list/tag interference
kono
parents: 444
diff changeset
1 int printf(const char *format, ...);
32737bad7489 fix list/tag interference
kono
parents: 444
diff changeset
2
444
8bec605d1701 small sized struct
kono
parents:
diff changeset
3 typedef struct {
8bec605d1701 small sized struct
kono
parents:
diff changeset
4 char x,y;
8bec605d1701 small sized struct
kono
parents:
diff changeset
5 } s;
8bec605d1701 small sized struct
kono
parents:
diff changeset
6
8bec605d1701 small sized struct
kono
parents:
diff changeset
7 char c[]={' ','\'','.',':',0x1b,'[','H'} ,
8bec605d1701 small sized struct
kono
parents:
diff changeset
8 M[ 1843]={4,5,6,} ,
8bec605d1701 small sized struct
kono
parents:
diff changeset
9 *m=&M[3],
8bec605d1701 small sized struct
kono
parents:
diff changeset
10 e;
8bec605d1701 small sized struct
kono
parents:
diff changeset
11 int a,b;
8bec605d1701 small sized struct
kono
parents:
diff changeset
12
8bec605d1701 small sized struct
kono
parents:
diff changeset
13 s P[15],Q[15];
8bec605d1701 small sized struct
kono
parents:
diff changeset
14
8bec605d1701 small sized struct
kono
parents:
diff changeset
15 o(x,y){
8bec605d1701 small sized struct
kono
parents:
diff changeset
16 a=80*(y/2)+x,b= 1+(y&1);
8bec605d1701 small sized struct
kono
parents:
diff changeset
17 e?(m[a]|=b):(m[a]&=~b);
8bec605d1701 small sized struct
kono
parents:
diff changeset
18
491
a379da780856 cond signed/unsigned
kono
parents: 467
diff changeset
19 printf("#0018:x %02x y %02x a %04x m[a] %02x\n",x,y,a,m[a]);
444
8bec605d1701 small sized struct
kono
parents:
diff changeset
20 }
8bec605d1701 small sized struct
kono
parents:
diff changeset
21
8bec605d1701 small sized struct
kono
parents:
diff changeset
22 W(s*p,s*q){
8bec605d1701 small sized struct
kono
parents:
diff changeset
23 s t;
8bec605d1701 small sized struct
kono
parents:
diff changeset
24 t=*p;
8bec605d1701 small sized struct
kono
parents:
diff changeset
25 *p=*q;
8bec605d1701 small sized struct
kono
parents:
diff changeset
26 *q=t;
8bec605d1701 small sized struct
kono
parents:
diff changeset
27 }
8bec605d1701 small sized struct
kono
parents:
diff changeset
28
8bec605d1701 small sized struct
kono
parents:
diff changeset
29 l(s p, s q){
8bec605d1701 small sized struct
kono
parents:
diff changeset
30 s t;
8bec605d1701 small sized struct
kono
parents:
diff changeset
31 int x=p.x-q.x,
8bec605d1701 small sized struct
kono
parents:
diff changeset
32 y=p.y-q.y,
8bec605d1701 small sized struct
kono
parents:
diff changeset
33 w,
8bec605d1701 small sized struct
kono
parents:
diff changeset
34 v;
8bec605d1701 small sized struct
kono
parents:
diff changeset
35
491
a379da780856 cond signed/unsigned
kono
parents: 467
diff changeset
36 printf("#0035:p.x %02x p.y %02x q.x %02x q.y %02x\n",p.x,p.y,q.x,q.y);
444
8bec605d1701 small sized struct
kono
parents:
diff changeset
37
8bec605d1701 small sized struct
kono
parents:
diff changeset
38 x=x<0?-x:x;
8bec605d1701 small sized struct
kono
parents:
diff changeset
39 y=y<0?-y:y;
8bec605d1701 small sized struct
kono
parents:
diff changeset
40 if(y<x){
8bec605d1701 small sized struct
kono
parents:
diff changeset
41 if( q.x<p.x)
8bec605d1701 small sized struct
kono
parents:
diff changeset
42 W(&p,&q);
8bec605d1701 small sized struct
kono
parents:
diff changeset
43 v=p.y<=q.y?1:-1;
8bec605d1701 small sized struct
kono
parents:
diff changeset
44 w=(y%x)/2;
8bec605d1701 small sized struct
kono
parents:
diff changeset
45 for(; p.x<=q.x; p.x++){
8bec605d1701 small sized struct
kono
parents:
diff changeset
46 o(p.x, p.y);
8bec605d1701 small sized struct
kono
parents:
diff changeset
47 if((w-=y)<=0)
8bec605d1701 small sized struct
kono
parents:
diff changeset
48 w+=x,p.y+=v;
8bec605d1701 small sized struct
kono
parents:
diff changeset
49 }
8bec605d1701 small sized struct
kono
parents:
diff changeset
50 } else if(y){
8bec605d1701 small sized struct
kono
parents:
diff changeset
51 if(q.y<p.y)
8bec605d1701 small sized struct
kono
parents:
diff changeset
52 W(&p,&q);
8bec605d1701 small sized struct
kono
parents:
diff changeset
53 v=!(p. x>q.x)?1:-1;
8bec605d1701 small sized struct
kono
parents:
diff changeset
54 w=(x%y)/2;
8bec605d1701 small sized struct
kono
parents:
diff changeset
55 for(; p.y<=q.y; p.y++){
8bec605d1701 small sized struct
kono
parents:
diff changeset
56 o(p.x,q.y);
8bec605d1701 small sized struct
kono
parents:
diff changeset
57 if((w-=x)<=0)
8bec605d1701 small sized struct
kono
parents:
diff changeset
58 w+= y,
8bec605d1701 small sized struct
kono
parents:
diff changeset
59 p.x+=v;
8bec605d1701 small sized struct
kono
parents:
diff changeset
60 }
8bec605d1701 small sized struct
kono
parents:
diff changeset
61 }
8bec605d1701 small sized struct
kono
parents:
diff changeset
62 }
8bec605d1701 small sized struct
kono
parents:
diff changeset
63
8bec605d1701 small sized struct
kono
parents:
diff changeset
64 r(s*p,s q){
8bec605d1701 small sized struct
kono
parents:
diff changeset
65 p->x=((rand()%80)-q.x)/11;
8bec605d1701 small sized struct
kono
parents:
diff changeset
66 p->y=((rand()%48)-q.y)/11;
491
a379da780856 cond signed/unsigned
kono
parents: 467
diff changeset
67 printf("#0066:r: p->x %02x p->y %02x\n",p->x,p->y);
444
8bec605d1701 small sized struct
kono
parents:
diff changeset
68 }
8bec605d1701 small sized struct
kono
parents:
diff changeset
69
8bec605d1701 small sized struct
kono
parents:
diff changeset
70 d(s*p,s q,s r){
491
a379da780856 cond signed/unsigned
kono
parents: 467
diff changeset
71 printf("#0070:d0: q->x %02x q->y %02x\n",q.x,q.y);
a379da780856 cond signed/unsigned
kono
parents: 467
diff changeset
72 printf("#0071:d1: r->x %02x r->y %02x\n",r.x,r.y);
444
8bec605d1701 small sized struct
kono
parents:
diff changeset
73 p->x=q.x+r.x;
8bec605d1701 small sized struct
kono
parents:
diff changeset
74 p->y=q.y+r.y;
491
a379da780856 cond signed/unsigned
kono
parents: 467
diff changeset
75 printf("#0074:d2: p->x %02x p->y %02x\n",p->x,p->y);
444
8bec605d1701 small sized struct
kono
parents:
diff changeset
76 }
8bec605d1701 small sized struct
kono
parents:
diff changeset
77
8bec605d1701 small sized struct
kono
parents:
diff changeset
78 main(i,j,k){
8bec605d1701 small sized struct
kono
parents:
diff changeset
79 s R,S;
8bec605d1701 small sized struct
kono
parents:
diff changeset
80 int count;
8bec605d1701 small sized struct
kono
parents:
diff changeset
81 i=0,
8bec605d1701 small sized struct
kono
parents:
diff changeset
82 k=0;
8bec605d1701 small sized struct
kono
parents:
diff changeset
83 srand(512);
8bec605d1701 small sized struct
kono
parents:
diff changeset
84 for(count=0;count<400 ;count++){
8bec605d1701 small sized struct
kono
parents:
diff changeset
85 j=(i+1)%10;
8bec605d1701 small sized struct
kono
parents:
diff changeset
86 e=0;
8bec605d1701 small sized struct
kono
parents:
diff changeset
87 l(P[j],Q[j]);
491
a379da780856 cond signed/unsigned
kono
parents: 467
diff changeset
88 printf("#0087:main0: p.x %02x p.y %02x q.x %02x q.y %02x\n",P[j].x,P[j].y,Q[j].x,Q[j].y);
444
8bec605d1701 small sized struct
kono
parents:
diff changeset
89 if(--k<=0){
8bec605d1701 small sized struct
kono
parents:
diff changeset
90 r(&R,P[i]);
8bec605d1701 small sized struct
kono
parents:
diff changeset
91 r(&S,Q[i ]);
491
a379da780856 cond signed/unsigned
kono
parents: 467
diff changeset
92 printf("#0091:main1: R.x %02x R.y %02x S.x %02x S.y %02x\n",R.x,R.y,S.x,S.y);
444
8bec605d1701 small sized struct
kono
parents:
diff changeset
93 k=10;
8bec605d1701 small sized struct
kono
parents:
diff changeset
94 }
8bec605d1701 small sized struct
kono
parents:
diff changeset
95 d(&P[j],P[i],R);
491
a379da780856 cond signed/unsigned
kono
parents: 467
diff changeset
96 printf("#0095:main2: p.x %02x p.y %02x q.x %02x q.y %02x\n",P[j].x,P[j].y,Q[i].x,Q[i].y);
444
8bec605d1701 small sized struct
kono
parents:
diff changeset
97 d(&Q[j],Q[i],S);
491
a379da780856 cond signed/unsigned
kono
parents: 467
diff changeset
98 printf("#0097:main3: p.x %02x p.y %02x q.x %02x q.y %02x\n",P[j].x,P[j].y,Q[i].x,Q[i].y);
444
8bec605d1701 small sized struct
kono
parents:
diff changeset
99 i=j;
8bec605d1701 small sized struct
kono
parents:
diff changeset
100 e=1;
8bec605d1701 small sized struct
kono
parents:
diff changeset
101 l(P[j],Q[j]);
491
a379da780856 cond signed/unsigned
kono
parents: 467
diff changeset
102 printf("#0101:main4: p.x %02x p.y %02x q.x %02x q.y %02x\n",P[j].x,P[j].y,Q[i].x,Q[i].y);
444
8bec605d1701 small sized struct
kono
parents:
diff changeset
103 b=83;
8bec605d1701 small sized struct
kono
parents:
diff changeset
104 if (0)
8bec605d1701 small sized struct
kono
parents:
diff changeset
105 for (a=0; a<sizeof M; a++){
8bec605d1701 small sized struct
kono
parents:
diff changeset
106 if(--b<=0)
8bec605d1701 small sized struct
kono
parents:
diff changeset
107 b=80,putchar('\n');
8bec605d1701 small sized struct
kono
parents:
diff changeset
108 putchar(c[M[a]]);
8bec605d1701 small sized struct
kono
parents:
diff changeset
109 }
8bec605d1701 small sized struct
kono
parents:
diff changeset
110 }
8bec605d1701 small sized struct
kono
parents:
diff changeset
111 }
8bec605d1701 small sized struct
kono
parents:
diff changeset
112
8bec605d1701 small sized struct
kono
parents:
diff changeset
113