DIM Count AS INTEGER DIM OnTurn AS STRING DIM Lost AS STRING DIM Won AS LONG Count = 9 CONST Max = 3 DIM Experience(1 TO Count, 1 TO Max) AS INTEGER DIM Used(1 TO Count, 1 TO Max) AS INTEGER CLS FOR I = 1 TO Count FOR J = 1 TO Max Experience(I, J) = 64 NEXT NEXT FOR I = 1 TO 100 IF I MOD 2 THEN OnTurn = "Random" ELSE OnTurn = "Thinker" DO DO FOR J = 1 TO Max P(J) = INT(RND * Experience(Count, J) / 2) NEXT Take = 1 IF P(2) > P(1) THEN SWAP P(1), P(2): Take = 2 IF P(3) > P(1) THEN Take = 3 LOOP WHILE Take > Count IF OnTurn = "Thinker" THEN Used(Count, Take) = 1 END IF PRINT "There are still"; STR$(Count); " matches." PRINT OnTurn; " takes"; STR$(Take); " matches.": PRINT DO: LOOP WHILE INKEY$ = "" Count = Count - Take IF OnTurn = "Random" THEN OnTurn = "Thinker" ELSE OnTurn = "Random" END IF LOOP UNTIL Count <= 1 IF Count = 1 THEN Lost = OnTurn ELSE IF OnTurn = "Random" THEN Lost = "Thinker" ELSE Lost = "Random" END IF Count = 9 PRINT Lost; " lost the game!" IF Lost = "Random" THEN Won = Won + 1 FOR J = 1 TO Count FOR K = 1 TO Max IF Used(J, K) THEN IF Experience(J, K) < 16383 THEN Experience(J, K) = Experience(J, K) * 2 END IF Used(J, K) = 0 END IF NEXT NEXT ELSE FOR J = 1 TO Count FOR K = 1 TO Max IF Used(J, K) THEN IF Experience(J, K) > 1 THEN Experience(J, K) = Experience(J, K) / 2 END IF Used(J, K) = 0 END IF NEXT NEXT END IF GOSUB Result NEXT GOSUB Result END Result: CLS FOR J = 1 TO Count FOR K = 1 TO Max LOCATE K + 10, J * 7 PRINT Experience(J, K) NEXT NEXT PRINT : PRINT "Thinker won"; STR$(Won); " of"; STR$(I); " games." PRINT RETURN