Browse Source

Plan 9 from Bell Labs 2005-05-31

David du Colombier 19 years ago
parent
commit
f726e79e15
4 changed files with 66 additions and 20 deletions
  1. 6 5
      dist/replica/_plan9.db
  2. 6 6
      dist/replica/plan9.db
  3. 6 0
      dist/replica/plan9.log
  4. 48 9
      sys/src/games/juggle.c

+ 6 - 5
dist/replica/_plan9.db

@@ -3,13 +3,13 @@
 386/9loaddebug - 775 sys sys 1116215126 310385
 386/9loadlite - 775 sys sys 1112757508 135244
 386/9loadlitedebug - 775 sys sys 1116215126 198758
-386/9pc - 775 sys sys 1116215130 1834481
+386/9pc - 775 sys sys 1117429392 1834571
 386/9pc.gz - 664 sys sys 1112757510 643423
-386/9pccpu - 775 sys sys 1116215133 1488970
+386/9pccpu - 775 sys sys 1117429395 1489060
 386/9pccpu.gz - 664 sys sys 1112757511 529529
-386/9pcdisk - 775 sys sys 1116215138 2040183
+386/9pcdisk - 775 sys sys 1117429400 2040377
 386/9pcdisk.gz - 664 sys sys 1112757513 733576
-386/9pcf - 775 sys sys 1116215144 2383015
+386/9pcf - 775 sys sys 1117429405 2383209
 386/9pcf.gz - 664 sys sys 1112757515 886966
 386/9pxeload - 775 sys sys 1112757508 215872
 386/_9pcdisk.gz - 664 sys sys 1039764191 695837
@@ -13862,7 +13862,7 @@ sys/src/games - 20000000775 sys sys 1095792091 0
 sys/src/games/catback.p - 664 sys sys 1108184106 35763
 sys/src/games/catclock.c - 664 sys sys 1108184106 10354
 sys/src/games/eyes.p - 664 sys sys 1108184106 1128
-sys/src/games/juggle.c - 664 sys sys 1096307525 4105
+sys/src/games/juggle.c - 664 sys sys 1117461327 4654
 sys/src/games/mahjongg - 20000000775 sys sys 1095792293 0
 sys/src/games/mahjongg/graphics.c - 644 sys sys 1095792293 5794
 sys/src/games/mahjongg/level.c - 644 sys sys 1095792293 2522
@@ -15042,3 +15042,4 @@ usr/glenda/lib/profile - 664 glenda glenda 1105128663 890
 usr/glenda/readme.acme - 664 glenda glenda 1019860628 4753
 usr/glenda/readme.rio - 664 glenda glenda 1019860628 6370
 usr/glenda/tmp - 20000000775 glenda glenda 1018802620 0
+386/bin/games/juggle - 775 sys sys 1117508921 125685

+ 6 - 6
dist/replica/plan9.db

@@ -3,13 +3,13 @@
 386/9loaddebug - 775 sys sys 1116215126 310385
 386/9loadlite - 775 sys sys 1112757508 135244
 386/9loadlitedebug - 775 sys sys 1116215126 198758
-386/9pc - 775 sys sys 1116215130 1834481
+386/9pc - 775 sys sys 1117429392 1834571
 386/9pc.gz - 664 sys sys 1112757510 643423
-386/9pccpu - 775 sys sys 1116215133 1488970
+386/9pccpu - 775 sys sys 1117429395 1489060
 386/9pccpu.gz - 664 sys sys 1112757511 529529
-386/9pcdisk - 775 sys sys 1116215138 2040183
+386/9pcdisk - 775 sys sys 1117429400 2040377
 386/9pcdisk.gz - 664 sys sys 1112757513 733576
-386/9pcf - 775 sys sys 1116215144 2383015
+386/9pcf - 775 sys sys 1117429405 2383209
 386/9pcf.gz - 664 sys sys 1112757515 886966
 386/9pxeload - 775 sys sys 1112757508 215872
 386/_9pcdisk.gz - 664 sys sys 1039764191 695837
@@ -246,7 +246,7 @@
 386/bin/ftpfs - 775 sys sys 1116903732 271518
 386/bin/games - 20000000775 sys sys 1096298711 0
 386/bin/games/catclock - 775 sys sys 1115950075 140798
-386/bin/games/juggle - 775 sys sys 1115950075 125201
+386/bin/games/juggle - 775 sys sys 1117508921 125685
 386/bin/games/jukebox - 775 sys sys 1105589128 264821
 386/bin/games/jukefs - 775 sys sys 1105589129 165320
 386/bin/games/mahjongg - 775 sys sys 1115950075 164297
@@ -13862,7 +13862,7 @@ sys/src/games - 20000000775 sys sys 1095792091 0
 sys/src/games/catback.p - 664 sys sys 1108184106 35763
 sys/src/games/catclock.c - 664 sys sys 1108184106 10354
 sys/src/games/eyes.p - 664 sys sys 1108184106 1128
-sys/src/games/juggle.c - 664 sys sys 1096307525 4105
+sys/src/games/juggle.c - 664 sys sys 1117461327 4654
 sys/src/games/mahjongg - 20000000775 sys sys 1095792293 0
 sys/src/games/mahjongg/graphics.c - 644 sys sys 1095792293 5794
 sys/src/games/mahjongg/level.c - 644 sys sys 1095792293 2522

+ 6 - 0
dist/replica/plan9.log

@@ -19435,3 +19435,9 @@
 1117314043 124 a sys/games/lib/sudoku/boards/vhard-2005-04-10.su - 644 sys sys 1117314032 180
 1117314043 125 a sys/games/lib/sudoku/boards/vhard-2005-04-16.su - 644 sys sys 1117314032 180
 1117314043 126 a sys/games/lib/sudoku/boards/vhard-2005-05-08.su - 644 sys sys 1117314032 180
+1117431009 0 c 386/9pc - 775 sys sys 1117429392 1834571
+1117431009 1 c 386/9pccpu - 775 sys sys 1117429395 1489060
+1117431009 2 c 386/9pcdisk - 775 sys sys 1117429400 2040377
+1117431009 3 c 386/9pcf - 775 sys sys 1117429405 2383209
+1117461615 0 c sys/src/games/juggle.c - 664 sys sys 1117461327 4654
+1117510225 0 c 386/bin/games/juggle - 775 sys sys 1117508921 125685

+ 48 - 9
sys/src/games/juggle.c

@@ -2,19 +2,28 @@
 #include <libc.h>
 #include <draw.h>
 #include <event.h>
-#define	NSTEP	10		/* number of steps between throws */
-#define	RBALL	10		/* radius of ball images */
-#define	NBALL	100
+
+enum
+{
+	NSTEP		= 10,		/* number of steps between throws */
+	RBALL		= 10,		/* radius of ball images */
+	Nball		= 100,
+};
+
+Image *image, **disk;
+int ndisk=0;
 int nhand=2;
 int delay=20;			/* ms delay between steps */
 int nball;
 int maxhgt;
 Rectangle win;
 
+
 #define add addpt
 #define sub subpt
 #define inset insetrect
 
+
 /*
  * pattern lists the heights of a repeating sequence of throws.
  * At time t, hand t%nhand throws.  At that time, it must
@@ -29,7 +38,7 @@ struct Ball{
 	int time;	/* time at which ball will arrive */
 	int hand;	/* hand in which ball will rest on arrival */
 };
-Ball ball[NBALL];
+Ball ball[Nball];
 void throw(int t, int hgt){
 	int hand=t%nhand;
 	int i, b, n;
@@ -63,15 +72,15 @@ Point bpos(int b, int step, int t){
 	return (Point){win.min.x+(win.max.x-win.min.x)*alpha,
 		       win.max.y-1+(win.min.y-win.max.y)*hgt};
 }
-Image *image, *disk;
+
 void move(int t){
 	int i, j;
 	for(i=0;i!=NSTEP;i++){
 		if(ecanmouse()) emouse();
 		draw(image, inset(image->r, 3), display->white, nil, ZP);
 		for(j=0;j!=nball;j++)
-			draw(image, rectaddpt(disk->r, sub(bpos(j, i, t), Pt(RBALL, RBALL))),
-				disk, nil, ZP);
+			draw(image, rectaddpt(disk[j%ndisk]->r, sub(bpos(j, i, t), Pt(RBALL, RBALL))),
+				disk[j%ndisk], nil, ZP);
 		draw(screen, screen->r, image, nil, image->r.min);
 		flushimage(display, 1);
 		if(delay>0)
@@ -79,6 +88,37 @@ void move(int t){
 	}
 }
 
+void
+adddisk(int c)
+{
+	Image *col;
+	disk = realloc(disk, (ndisk+1)*sizeof(Image*));
+	col=allocimage(display, Rect(0,0,1,1), CMAP8, 1, c);
+	disk[ndisk]=allocimage(display, Rect(0, 0, 2*RBALL+1, 2*RBALL+1), screen->chan, 0, DWhite);
+	fillellipse(disk[ndisk], Pt(RBALL, RBALL), RBALL, RBALL, col, ZP);
+	ndisk++;
+}
+
+void
+diskinit(void)
+{
+	/* colors taken from /sys/src/cmd/stats.c */
+
+	adddisk(0xFFAAAAFF);
+	adddisk(DPalegreygreen);
+	adddisk(DDarkyellow);
+	adddisk(DMedgreen);
+	adddisk(0x00AAFFFF);
+	adddisk(0xCCCCCCFF);
+
+	adddisk(0xBB5D5DFF);
+	adddisk(DPurpleblue);
+	adddisk(DYellowgreen);
+	adddisk(DDarkgreen);
+	adddisk(0x0088CCFF);
+	adddisk(0x888888FF);
+}
+
 void
 usage(char *name)
 {
@@ -161,8 +201,7 @@ main(int argc, char *argv[]){
 	if(initdraw(nil, nil, "juggle") < 0)
 		sysfatal("initdraw failed: %r");
 	einit(Emouse);
-	disk=allocimage(display, Rect(0, 0, 2*RBALL+1, 2*RBALL+1), screen->chan, 0, DWhite);
-	fillellipse(disk, Pt(RBALL, RBALL), RBALL, RBALL, display->black, ZP);
+	diskinit();
 	eresized(0);
 	if(image==0){
 		print("can't allocate bitmap");