perm filename DICE.SAI[GEM,BGB] blob sn#088702 filedate 1974-03-02 generic text, type C, neo UTF8
COMMENT ⊗   VALID 00004 PAGES
C REC  PAGE   DESCRIPTION
C00001 00001
C00002 00002	BEGIN "DICE"
C00004 00003	SUBR DPYDIE (ITG WREAL X,Y,Z)
C00005 00004		RAN(10001)
C00007 ENDMK
C⊗;
BEGIN "DICE"
	REQUIRE "ABBREV[SYS,BGB]" SOURCE_FILE;
	REQUIRE "DPYIII[SYS,BGB]" SOURCE_FILE;
	SAFE ITG ARRAY DPYBUF[1:500];

	REAL OX,OY,C,S;
	REAL SIDE,DEL;
	REAL VX,VY;

SUBR AI(REAL X,Y);
BEGIN "AI"
	REAL X2,Y2;
	X2 ← X*C - Y*S + OX;
	Y2 ← Y*C + X*S + OY;
	AIVECT(X2,Y2);
END "AI";

SUBR AV(REAL X,Y);
BEGIN "AI"
	REAL X2,Y2;
	X2 ← X*C - Y*S + OX;
	Y2 ← Y*C + X*S + OY;
	AVECT(X2,Y2);
END "AI";

SUBR SPOT(REAL X,Y);
BEGIN "SPOT"
	REAL X2,Y2;
	X2 ← X*C - Y*S + OX;
	Y2 ← Y*C + X*S + OY;
	AIVECT(X2-VX,Y2-VY);DPYSST("o");
END "SPOT";
SUBR DPYDIE (ITG W;REAL X,Y,Z);
BEGIN "DPYDIE"
	REAL Q,SIDE;
	SIDE ← 25; Q ← 15;
	OX ← X; OY ← Y;
	S ← SIN(Z);C ← COS(Z);
	AI(-SIDE,-SIDE);
	AV(+SIDE,-SIDE);
	AV(+SIDE,+SIDE);
	AV(-SIDE,+SIDE);
	AV(-SIDE,-SIDE);
CASE W OF
BEGIN	;
	SPOT(0,0);
	⊂ SPOT(-Q,Q);SPOT(Q,-Q);⊃;
	⊂ SPOT(-Q,Q);SPOT(0,0);SPOT(Q,-Q);⊃;
	⊂ SPOT(-Q,+Q);SPOT(+Q,-Q);
	  SPOT(-Q,-Q);SPOT(+Q,+Q);⊃;
	⊂ SPOT(-Q,+Q);SPOT(+Q,-Q);SPOT(0,0);
	  SPOT(-Q,-Q);SPOT(+Q,+Q);⊃;
	⊂ SPOT(-Q,+Q);SPOT(+Q,-Q);SPOT(Q,0);
	  SPOT(-Q,-Q);SPOT(+Q,+Q);SPOT(-Q,0);⊃;
END;
END "DPYDIE";
	RAN(10001);
	VX ← VY ← 6;
WHILE TRUE DO
BEGIN
	REAL ARRAY W,X,Y,Z[1:3];
	STRING STR;
	ITG I;
	DPYSET(DPYBUF);AIVECT(-400,-400);
	AVECT(+400,-400);AVECT(+400,+400);
	AVECT(-400,+400);AVECT(-400,-400);
	FOR I←1 THRU 3 DO
	BEGIN
		W[I]← RAN(0)*5.99+1.0;
		X[I]←(RAN(0)-0.5)*600;
		Y[I]←(RAN(0)-0.5)*600;
		Z[I]←2*π*RAN(0);
	END;

	FOR I←1 THRU 3 DO DPYDIE(W[I],X[I],Y[I],Z[I]);
	DPYOUT(1);
	INCHRW;
END;
END "DICE";