' ' ' ' ' I Ching computer coin program ' Yoav Ben-Dov 1997 ' http://www.tau.ac.il/~bendov ' ' ' TO START THE PROGRAM, HIT "F5" ' ' or use the menu - Run: Start ' ' ' ' ' ' OPTION BASE 1 DIM H(64), M(3), N(6), a(6), b(6), c(6) ' Fu Xi diagram ordering DATA 1,43,14,34,9,5,26,11,10,58,38,54,61,60,41,19 DATA 13,49,30,55,37,63,22,36,25,17,21,51,42,3,27,24 DATA 44,28,50,32,57,48,18,46,6,47,64,40,59,29,4,7 DATA 33,31,56,62,53,39,52,15,12,45,35,16,20,8,23,2 FOR K = 1 TO 64 READ H(K) NEXT K ' start program CLS : KEY OFF LOCATE 2, 5 PRINT "I CHING COMPUTER COIN PROGRAM" LOCATE 5, 5 PRINT "Instructions:" LOCATE 7, 5 PRINT "When you see the flickering 'coins', concentrate, and then hit any key." LOCATE 8, 5 PRINT "Repeat 6 times to get a hexagram." LOCATE 10, 5 PRINT "Then, You'll see the initial hexagram on the left, the final " LOCATE 11, 5 PRINT "(outcome) hexagram on the right, their Fu Xi numbers above them," LOCATE 12, 5 PRINT "and the numbers of changing lines (if there are any) in the middle." LOCATE 14, 5 PRINT "Use the hexagram and line numbers to find them in the I Ching book." LOCATE 16, 5 PRINT "To start, hit any key." LOCATE 18, 5 PRINT "GOOD LUCK!" LOCATE 22, 5 PRINT "Yoav Ben-Dov 1997" LOCATE 23, 5 PRINT "http://www.tau.ac.il/~bendov" WHILE INKEY$ = "" WEND CLS LOCATE 10, 35 PRINT "Please Wait" FOR y = 1 TO 40000: NEXT y CLS ' coins display FOR J = 1 TO 6 WHILE INKEY$ = "" LOCATE 10, 35 PRINT "² ° °" FOR y = 1 TO 1400: NEXT y LOCATE 10, 35 PRINT "° ² °" FOR y = 1 TO 1400: NEXT y LOCATE 10, 35 PRINT "° ° ²" FOR y = 1 TO 1400: NEXT y WEND ' coins throw RANDOMIZE TIMER FOR I = 1 TO 3 M(I) = 2 + INT(2 * RND) LOCATE 10, 30 + (5 * I) IF M(I) = 2 THEN PRINT "°" ELSE PRINT "Û" NEXT I ' calculating line value ' A first hexagram, B second, C change (moving line) N(J) = M(1) + M(2) + M(3) IF N(J) = 6 THEN a(J) = 0: b(J) = 1: c(J) = 1 IF N(J) = 7 THEN a(J) = 0: b(J) = 0: c(J) = 0 IF N(J) = 8 THEN a(J) = 1: b(J) = 1: c(J) = 0 IF N(J) = 9 THEN a(J) = 1: b(J) = 0: c(J) = 1 ' printing the line LOCATE 24 - J, 36 IF N(J) = 6 THEN PRINT "--- X ---": GOTO 50 IF N(J) = 7 THEN PRINT "--- ---": GOTO 50 IF N(J) = 8 THEN PRINT "---------": GOTO 50 PRINT "--- 0 ---" 50 FOR y = 1 TO 10000: NEXT y NEXT J FOR y = 1 TO 10000: NEXT y ' drawing the figures and identifying hexagrams LOCATE 24, 1 FOR X = 1 TO 25 PRINT "" FOR y = 1 TO 400: NEXT y NEXT X LOCATE 7, 14 PRINT "Initial Final" LOCATE 8, 14 PRINT "Hexagram: Hexagram:" LOCATE 9, 14 PRINT " Changing" LOCATE 10, 14 PRINT " line (place): " NA = 1: NB = 1 FOR J = 1 TO 6 LOCATE 20 - J, 15 IF a(J) = 0 THEN PRINT "-- --": NA = NA + 2 ^ (6 - J) ELSE PRINT "------" LOCATE 20 - J, 60 IF b(J) = 0 THEN PRINT "-- --": NB = NB + 2 ^ (6 - J) ELSE PRINT "------" LOCATE 20 - J, 36 IF c(J) = 1 THEN PRINT N(J); "("; J; ")" NEXT J LOCATE 12, 16 PRINT H(NA) LOCATE 12, 61 PRINT H(NB) LOCATE 24, 1 WHILE INKEY$ = "" WEND END