!*! Updated on 10-May-90 at 9:00 AM by Matt Badger; edit time: 0:01:34 !USES LINE DRAWING - WRITTEN FOR THE WYSE50 TERMINAL MAP1 DIE1,F MAP1 DIE2,F MAP1 DIE3,F MAP1 DIE4,F MAP1 DIE5,F MAP1 COUNT,F MAP1 ANSWR,F MAP1 GUESS,S,2 MAP1 NIAGA,S,1 MAP1 RIGHT'ONE,F MAP1 LAST'RIGHT,F MAP1 MESSAGE,S,35 MAP1 END'MESSAGE,S,35," " MAP1 INXCTL,F MAP1 END'TIME,F,6,0 MAP1 ALL'DICE MAP2 D1(9),S,1 MAP2 D2(9),S,1 MAP2 D3(9),S,1 MAP2 D4(9),S,1 MAP2 D5(9),S,1 SIGNIFICANCE 11 BEGIN: RIGHT'ONE=0 LAST'RIGHT=0 ANSWR=0 GOSUB DRAW'IT MAIN'LINE: GOSUB RAND GOSUB FIGURE'IT GOSUB DISPLAY'IT ! GOSUB PRINT'IT GOSUB ASK'IT GOTO MAIN'LINE END RAND: RANDOMIZE DIE1=INT(6*RND(1)+1) DIE2=INT(6*RND(1)+1) DIE3=INT(6*RND(1)+1) DIE4=INT(6*RND(1)+1) DIE5=INT(6*RND(1)+1) RETURN FIGURE'IT: ALL'DICE=SPACE(45) COUNT=0 IF DIE1 = 1 THEN D1(5)="*" IF DIE1 = 2 THEN D1(1)="*":D1(9)="*" IF DIE1 = 3 THEN D1(1)="*":D1(5)="*":D1(9)="*":COUNT=COUNT+2 IF DIE1 = 4 THEN D1(1)="*":D1(3)="*":D1(7)="*":D1(9)="*" IF DIE1 = 5 THEN D1(1)="*":D1(3)="*":D1(7)="*":D1(9)="*":D1(5)="*":COUNT=COUNT+4 IF DIE1 = 6 THEN D1(1)="*":D1(2)="*":D1(3)="*":D1(7)="*":D1(8)="*":D1(9)="*" IF DIE2 = 1 THEN D2(5)="*" IF DIE2 = 2 THEN D2(1)="*":D2(9)="*" IF DIE2 = 3 THEN D2(1)="*":D2(5)="*":D2(9)="*":COUNT=COUNT+2 IF DIE2 = 4 THEN D2(1)="*":D2(3)="*":D2(7)="*":D2(9)="*" IF DIE2 = 5 THEN D2(1)="*":D2(3)="*":D2(7)="*":D2(9)="*":D2(5)="*":COUNT=COUNT+4 IF DIE2 = 6 THEN D2(1)="*":D2(2)="*":D2(3)="*":D2(7)="*":D2(8)="*":D2(9)="*" IF DIE3 = 1 THEN D3(5)="*" IF DIE3 = 2 THEN D3(1)="*":D3(9)="*" IF DIE3 = 3 THEN D3(1)="*":D3(5)="*":D3(9)="*":COUNT=COUNT+2 IF DIE3 = 4 THEN D3(1)="*":D3(3)="*":D3(7)="*":D3(9)="*" IF DIE3 = 5 THEN D3(1)="*":D3(3)="*":D3(7)="*":D3(9)="*":D3(5)="*":COUNT=COUNT+4 IF DIE3 = 6 THEN D3(1)="*":D3(2)="*":D3(3)="*":D3(7)="*":D3(8)="*":D3(9)="*" IF DIE4 = 1 THEN D4(5)="*" IF DIE4 = 2 THEN D4(1)="*":D4(9)="*" IF DIE4 = 3 THEN D4(1)="*":D4(5)="*":D4(9)="*":COUNT=COUNT+2 IF DIE4 = 4 THEN D4(1)="*":D4(3)="*":D4(7)="*":D4(9)="*" IF DIE4 = 5 THEN D4(1)="*":D4(3)="*":D4(7)="*":D4(9)="*":D4(5)="*":COUNT=COUNT+4 IF DIE4 = 6 THEN D4(1)="*":D4(2)="*":D4(3)="*":D4(7)="*":D4(8)="*":D4(9)="*" IF DIE5 = 1 THEN D5(5)="*" IF DIE5 = 2 THEN D5(1)="*":D5(9)="*" IF DIE5 = 3 THEN D5(1)="*":D5(5)="*":D5(9)="*":COUNT=COUNT+2 IF DIE5 = 4 THEN D5(1)="*":D5(3)="*":D5(7)="*":D5(9)="*" IF DIE5 = 5 THEN D5(1)="*":D5(3)="*":D5(7)="*":D5(9)="*":D5(5)="*":COUNT=COUNT+4 IF DIE5 = 6 THEN D5(1)="*":D5(2)="*":D5(3)="*":D5(7)="*":D5(8)="*":D5(9)="*" RETURN DISPLAY'IT: PRINT TAB(4,5);D1(1);TAB(4,9);D1(2);TAB(4,13);D1(3); PRINT TAB(6,5);D1(4);TAB(6,9);D1(5);TAB(6,13);D1(6); PRINT TAB(8,5);D1(7);TAB(8,9);D1(8);TAB(8,13);D1(9); PRINT TAB(4,18);D2(1);TAB(4,22);D2(2);TAB(4,26);D2(3); PRINT TAB(6,18);D2(4);TAB(6,22);D2(5);TAB(6,26);D2(6); PRINT TAB(8,18);D2(7);TAB(8,22);D2(8);TAB(8,26);D2(9); PRINT TAB(4,31);D3(1);TAB(4,35);D3(2);TAB(4,39);D3(3); PRINT TAB(6,31);D3(4);TAB(6,35);D3(5);TAB(6,39);D3(6); PRINT TAB(8,31);D3(7);TAB(8,35);D3(8);TAB(8,39);D3(9); PRINT TAB(4,44);D4(1);TAB(4,48);D4(2);TAB(4,52);D4(3); PRINT TAB(6,44);D4(4);TAB(6,48);D4(5);TAB(6,52);D4(6); PRINT TAB(8,44);D4(7);TAB(8,48);D4(8);TAB(8,52);D4(9); PRINT TAB(4,57);D5(1);TAB(4,61);D5(2);TAB(4,65);D5(3); PRINT TAB(6,57);D5(4);TAB(6,61);D5(5);TAB(6,65);D5(6); PRINT TAB(8,57);D5(7);TAB(8,61);D5(8);TAB(8,65);D5(9); PRINT TAB(10,1);TAB(-1,9); PRINT TAB(11,1);TAB(-1,9); PRINT TAB(12,1);TAB(-1,9); PRINT TAB(13,1);TAB(-1,9); PRINT TAB(14,1);TAB(-1,9); PRINT TAB(15,1);TAB(-1,9); PRINT TAB(16,1);TAB(-1,9); PRINT TAB(17,1);TAB(-1,9); RETURN DRAW'IT: PRINT TAB(-1,0); PRINT TAB(-1,23); PRINT TAB(3,3);TAB(-1,38); FOR I = 4 TO 14 PRINT TAB(3,I);TAB(-1,46); NEXT I PRINT TAB(-1,39); FOR I = 4 TO 8 PRINT TAB(I,3);TAB(-1,47);TAB(I,15);TAB(-1,47); NEXT I PRINT TAB(9,3);TAB(-1,40); FOR I = 4 TO 14 PRINT TAB(9,I);TAB(-1,46); NEXT I PRINT TAB(-1,41); PRINT TAB(3,16);TAB(-1,38); FOR I = 17 TO 27 PRINT TAB(3,I);TAB(-1,46); NEXT I PRINT TAB(-1,39); FOR I = 4 TO 8 PRINT TAB(I,16);TAB(-1,47);TAB(I,28);TAB(-1,47); NEXT I PRINT TAB(9,16);TAB(-1,40); FOR I = 17 TO 27 PRINT TAB(9,I);TAB(-1,46); NEXT I PRINT TAB(-1,41); PRINT TAB(3,29);TAB(-1,38); FOR I = 30 TO 40 PRINT TAB(3,I);TAB(-1,46); NEXT I PRINT TAB(-1,39); FOR I = 4 TO 8 PRINT TAB(I,29);TAB(-1,47);TAB(I,41);TAB(-1,47); NEXT I PRINT TAB(9,29);TAB(-1,40); FOR I = 30 TO 40 PRINT TAB(9,I);TAB(-1,46); NEXT I PRINT TAB(-1,41); PRINT TAB(3,42);TAB(-1,38); FOR I = 43 TO 53 PRINT TAB(3,I);TAB(-1,46); NEXT I PRINT TAB(-1,39); FOR I = 4 TO 8 PRINT TAB(I,42);TAB(-1,47);TAB(I,54);TAB(-1,47); NEXT I PRINT TAB(9,42);TAB(-1,40); FOR I = 43 TO 53 PRINT TAB(9,I);TAB(-1,46); NEXT I PRINT TAB(-1,41); PRINT TAB(3,55);TAB(-1,38); FOR I = 56 TO 66 PRINT TAB(3,I);TAB(-1,46); NEXT I PRINT TAB(-1,39); FOR I = 4 TO 8 PRINT TAB(I,55);TAB(-1,47);TAB(I,67);TAB(-1,47); NEXT I PRINT TAB(9,55);TAB(-1,40); FOR I = 56 TO 66 PRINT TAB(9,I);TAB(-1,46); NEXT I PRINT TAB(-1,41); PRINT TAB(-1,24); PRINT TAB(18,10);"At each roll of the dice there will be a number associated"; PRINT TAB(19,10);"with that roll. Can you guess the number ? If you can get it"; PRINT TAB(20,10);"right three times in a row, you win ! Your only clue is the"; PRINT TAB(21,10);"name of the game, 'Petals Around The Rose'."; RETURN ASK'IT: PRINT TAB(12,20);"Do you have an answer ?"; XCALL INPUT,12,44,2,1,"#E",GUESS,INXCTL,1 IF GUESS="EN" GOTO ENDIT IF ABS(GUESS)=ABS(COUNT) GOTO GOT'ONE LAST'RIGHT=0 PRINT TAB(14,20);"Sorry, that is incorrect. The answer is ";COUNT; PRINT TAB(15,20);"Try again ?"; XCALL INPUT,15,32,1,1,"NY",NIAGA,INXCTL,1 IF NIAGA = "N" OR UCS(NIAGA) = "N" GOTO ENDIT RETURN GOT'ONE: PRINT CHR$(7); IF LAST'RIGHT=1 THEN RIGHT'ONE=RIGHT'ONE+1 IF LAST'RIGHT=0 THEN LAST'RIGHT=1:RIGHT'ONE=1 MESSAGE=SPACE IF RIGHT'ONE = "1" THEN MESSAGE="Was it luck or skill ?" IF RIGHT'ONE = "2" THEN MESSAGE="Two right - one more and you win !" IF RIGHT'ONE = "3" GOTO WON'GAME PRINT TAB(14,20);"You got it right ! ";MESSAGE; PRINT TAB(16,20);"Try again ?"; XCALL INPUT,16,32,1,1,"NY",NIAGA,INXCTL,1 IF NIAGA = "N" OR UCS(NIAGA) = "N" GOTO ENDIT RETURN PRINT'IT: PRINT TAB(10,10);DIE1;" ";DIE2;" ";DIE3;" ";DIE4;" ";DIE5; PRINT TAB(11,10);COUNT; PRINT TAB(22,1); RETURN WON'GAME: END'MESSAGE = "YOU WON - NOW TRY SOMETHING ELSE...." END'TIME=75 ENDIT: PRINT TAB(-1,0); PRINT TAB(12,10);END'MESSAGE; FOR I = 1 TO END'TIME PRINT TAB(23,1);" "; NEXT I PRINT TAB(23,1); END