Mercurial > hg > CbC > old > device
annotate test/obsf2.c @ 928:96c53f76b360
fix
author | kono |
---|---|
date | Sun, 13 Apr 2014 10:21:40 +0900 (2014-04-13) |
parents | d712ee10feb7 |
children |
rev | line source |
---|---|
467 | 1 int printf(const char *format, ...); |
2 | |
444 | 3 typedef struct { |
4 char x,y; | |
5 } s; | |
6 | |
7 char c[]={' ','\'','.',':',0x1b,'[','H'} , | |
8 M[ 1843]={4,5,6,} , | |
9 *m=&M[3], | |
10 e; | |
11 int a,b; | |
12 | |
13 s P[15],Q[15]; | |
545 | 14 void |
15 o(int x,int y){ | |
444 | 16 a=80*(y/2)+x,b= 1+(y&1); |
17 e?(m[a]|=b):(m[a]&=~b); | |
18 | |
491 | 19 printf("#0018:x %02x y %02x a %04x m[a] %02x\n",x,y,a,m[a]); |
444 | 20 } |
545 | 21 void |
444 | 22 W(s*p,s*q){ |
23 s t; | |
24 t=*p; | |
25 *p=*q; | |
26 *q=t; | |
27 } | |
545 | 28 void |
444 | 29 l(s p, s q){ |
30 s t; | |
31 int x=p.x-q.x, | |
32 y=p.y-q.y, | |
33 w, | |
34 v; | |
35 | |
491 | 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 | 37 |
38 x=x<0?-x:x; | |
39 y=y<0?-y:y; | |
40 if(y<x){ | |
41 if( q.x<p.x) | |
880 | 42 W(&p,&q); |
444 | 43 v=p.y<=q.y?1:-1; |
44 w=(y%x)/2; | |
45 for(; p.x<=q.x; p.x++){ | |
46 o(p.x, p.y); | |
47 if((w-=y)<=0) | |
48 w+=x,p.y+=v; | |
49 } | |
50 } else if(y){ | |
51 if(q.y<p.y) | |
52 W(&p,&q); | |
53 v=!(p. x>q.x)?1:-1; | |
54 w=(x%y)/2; | |
55 for(; p.y<=q.y; p.y++){ | |
56 o(p.x,q.y); | |
57 if((w-=x)<=0) | |
880 | 58 w+= y, |
59 p.x+=v; | |
444 | 60 } |
61 } | |
545 | 62 } extern int rand(); |
63 void | |
444 | 64 r(s*p,s q){ |
65 p->x=((rand()%80)-q.x)/11; | |
66 p->y=((rand()%48)-q.y)/11; | |
491 | 67 printf("#0066:r: p->x %02x p->y %02x\n",p->x,p->y); |
444 | 68 } |
545 | 69 void |
444 | 70 d(s*p,s q,s r){ |
491 | 71 printf("#0070:d0: q->x %02x q->y %02x\n",q.x,q.y); |
72 printf("#0071:d1: r->x %02x r->y %02x\n",r.x,r.y); | |
444 | 73 p->x=q.x+r.x; |
74 p->y=q.y+r.y; | |
491 | 75 printf("#0074:d2: p->x %02x p->y %02x\n",p->x,p->y); |
545 | 76 } extern void srand(int); |
77 int | |
868
c55337499f96
remove warnings and error from test
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
545
diff
changeset
|
78 main(int i,char **jj,char **kk){ |
c55337499f96
remove warnings and error from test
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
545
diff
changeset
|
79 int j = (int) jj; int k = (int)kk; |
444 | 80 s R,S; |
81 int count; | |
82 i=0, | |
83 k=0; | |
84 srand(512); | |
85 for(count=0;count<400 ;count++){ | |
86 j=(i+1)%10; | |
87 e=0; | |
88 l(P[j],Q[j]); | |
896
d712ee10feb7
local_nptr for locally defined struct
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
880
diff
changeset
|
89 printf("#0088: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 | 90 if(--k<=0){ |
91 r(&R,P[i]); | |
92 r(&S,Q[i ]); | |
896
d712ee10feb7
local_nptr for locally defined struct
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
880
diff
changeset
|
93 printf("#0092:main1: R.x %02x R.y %02x S.x %02x S.y %02x\n",R.x,R.y,S.x,S.y); |
444 | 94 k=10; |
95 } | |
96 d(&P[j],P[i],R); | |
896
d712ee10feb7
local_nptr for locally defined struct
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
880
diff
changeset
|
97 printf("#0096: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 | 98 d(&Q[j],Q[i],S); |
896
d712ee10feb7
local_nptr for locally defined struct
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
880
diff
changeset
|
99 printf("#0098: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 | 100 i=j; |
101 e=1; | |
102 l(P[j],Q[j]); | |
896
d712ee10feb7
local_nptr for locally defined struct
Shinji KONO <kono@ie.u-ryukyu.ac.jp>
parents:
880
diff
changeset
|
103 printf("#0102: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 | 104 b=83; |
105 if (0) | |
106 for (a=0; a<sizeof M; a++){ | |
107 if(--b<=0) | |
108 b=80,putchar('\n'); | |
109 putchar(c[M[a]]); | |
110 } | |
111 } | |
545 | 112 return 0; |
444 | 113 } |
114 | |
115 |