/* Based on code from "32 BASIC Programs for the Apple Computer" */ /* by Tom Rugg and Phil Feldman */ #include #include #include #include "gr-sim.h" int main(int argc, char **argv) { int ch; int j,k; int t; int r,w,c,m,n,l; int x,y; #define S 19 int a[S+1],b[S+1]; grsim_init(); // 120 home(); gr(); // 125 // 130 x=19,y=19; label140: // 140 t=rand()%16; // 150 for(j=0;j<=S;j++) { a[j]=j; b[j]=j; } // 160+170 for(j=0;j<=S;j++) { r=rand()%(S+1); w=a[j]; a[j]=a[r]; a[r]=w; } // 180+190 for(j=0;j<=S;j++) { r=rand()%(S+1); w=b[j]; b[j]=b[r]; b[r]=w; } // 200 for(j=0;j<=S;j++) { for(k=0;k<=S;k++) { // 210 r=a[j]; w=b[k]; c=r+w+t; // 220 color_equals(c); // 240 if (x+r>40) { printf("ERROR! %d %d\n",x,r); return -1; } basic_plot(x+r,y+w); basic_plot(x+r,y-w); basic_plot(x-r,y-w); basic_plot(x-r,y+w); basic_plot(x+w,y+r); basic_plot(x+w,y-r); basic_plot(x-w,y-r); basic_plot(x-w,y+r); grsim_update(); //320 } } // 350 for(j=1;j<10;j++) { ch=grsim_input(); if (ch=='q') exit(0); if (ch==' ') { while(grsim_input()!=' ') usleep(10000); } usleep(10000); } // 400 m=15; // 405 n=(random()%21)+10; // 410 for(j=1;j<=n;j++) { r=(random()%22)+1; w=random()%m; color_equals(w); for(l=(y-S);l<=(y+S);l+=(r/4)+1) { for(k=(x-S);k<=(x+S);k+=r) { basic_plot(k,l); grsim_update(); } } } goto label140; return 0; }