Advertisement
Audiation

The Gridmaster

Sep 25th, 2013
289
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. ' The Gridmaster
  2. ' By Logan G. / "TheBaykun"
  3. ' September 25, 2013
  4. ' Instructions: bit.ly/15uraoo
  5. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  6. RETINA on
  7. StartingMoney = 1250 '[Default: 1250]
  8. MaximumPrice = 2000 '[Default: 2000]
  9. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  10.  
  11. abcd:
  12. SLEEP 1
  13.  
  14. BCOLOR 0,0,0
  15. TCOLOR 255,255,255
  16. PRINT "Loading."
  17.  
  18. sw=ScreenWidth
  19. sh=ScreenHeight
  20.  
  21. DIM gr(7,7),gr2(7,7)
  22.  
  23. COLOR 150,150,150
  24. sz=50
  25. szz=40
  26. szzz=60
  27. FOR i=1 TO 7
  28.     FOR j=1 TO 7
  29.         SLEEP 0.01
  30.         gr(i,j)=0
  31.         gr2(i,j)=INT(1+(RND*(maximumprice-1)))
  32.         'PRINT gr2(i,j)
  33.         IF i>1 AND i<7 AND j>1 AND j<7 THEN
  34.             LINE (i*sz)-szzz,(j*sz)-szzz,(i*sz)-szzz,(j*sz)-szzz+sz,2
  35.             LINE (i*sz)-szzz,(j*sz)-szzz,(i*sz)-szzz+sz,(j*sz)-szzz,2
  36.         ENDIF
  37.     NEXT
  38. NEXT
  39. CLS tty
  40. PRINT "Loading.."
  41. i=7
  42. j=7
  43. LINE (2*sz)-szzz,(j*sz)-szzz,(i*sz)-szzz,(j*sz)-szzz,2
  44. LINE (i*sz)-szzz,(2*sz)-szzz,(i*sz)-szzz,(j*sz)-szzz,2
  45.  
  46. gr(2,2)=1 'you
  47. gr(6,6)=2 'enemy
  48. gr(3,2)=3
  49. gr(3,3)=3
  50. gr(2,3)=3
  51. '0: neutral, 1: you, 2: enemy, 3: adjacent
  52. cash=startingmoney
  53. ecash=startingmoney
  54. cells=1
  55. ecells=1
  56. enemyDef=0
  57. firstturn=1
  58. ca$="Welcome to Gridmaster."
  59. cb$="Tap an adjacent cell to begin."
  60.  
  61. SLEEP 0.1
  62. CLS tty
  63. PRINT "Loading..."
  64.  
  65. COLOR 0,200,0
  66. a=2
  67. b=2
  68. GOSUB drawRect
  69. COLOR 200,0,0
  70. a=6
  71. b=6
  72. GOSUB drawRect
  73. COLOR 75,75,75
  74. a=3
  75. b=2
  76. GOSUB drawRect
  77. a=3
  78. b=3
  79. GOSUB drawRect
  80. a=2
  81. b=3
  82. GOSUB drawRect
  83. GOSUB updateHUD
  84. GOSUB updateConsole
  85.  
  86. SLEEP 0.1
  87.  
  88. CLS tty
  89.  
  90. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  91.  
  92. loopA:
  93. SLEEP 0.01
  94. CLS tty
  95. PRINT ""
  96. 'PRINT STR$(ecash)
  97. 'PAUSE ""
  98. IF cells=0 THEN
  99.     cash=0
  100. ENDIF
  101. IF Touch>0 AND TouchX>30 AND TouchX<sw-45 AND TouchY<sh-85 AND TouchY>30 THEN
  102.     tx=INT(2+(TouchX-30)/sz)
  103.     ty=INT(2+(TouchY-30)/sz)
  104.     IF ty=7 THEN
  105.         ty=6
  106.     ENDIF
  107.     IF ty=1 THEN
  108.         ty=2
  109.     ENDIF
  110.     IF tx=7 THEN
  111.         tx=6
  112.     ENDIF
  113.     IF tx=1 THEN
  114.         tx=2
  115.     ENDIF
  116.     IF gr(tx,ty)=3 THEN
  117.         GOSUB attackCell
  118.         GOSUB enemyAI
  119.     ENDIF
  120.     IF gr(tx,ty)=2 THEN
  121.         yes=0
  122.         FOR i=(tx-1) TO (tx+1)
  123.             FOR j=(ty-1) TO (ty+1)
  124.                 IF gr(i,j)=1 THEN
  125.                     yes=1
  126.                 ENDIF
  127.             NEXT
  128.         NEXT
  129.         IF yes=1 THEN
  130.             GOSUB attackEnemy
  131.             IF ecells=0 THEN
  132.                 ca$="The enemy has been defeated."
  133.                 enemyDef=1
  134.                 'cb$="You are the Gridmaster!"
  135.                 GOSUB updateConsole
  136.                 CLS tty
  137.                 'END
  138.             ENDIF
  139.             GOSUB enemyAI
  140.         ENDIF
  141.     ENDIF
  142.     'firstturn=0
  143. ENDIF
  144. GOTO loopA
  145.  
  146. ''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
  147.  
  148. drawRect:
  149. RECT (a*sz)-szzz+1,(b*sz)-szzz+1,((a+1)*sz)-szzz-1,((b+1)*sz)-szzz-1
  150. RETURN
  151.  
  152. updateHUD:
  153. COLOR 0,0,0
  154. RECT 0,0,sw,35
  155. COLOR 255,255,0
  156. CIRCLE 15,15,6
  157. TEXTFONT "Arial Rounded","Bold",18
  158. DRAWTEXT STR$(cash),25,4
  159. COLOR 255,255,255
  160. TEXTFONT "Arial",16
  161. DRAWTEXT "Cells: "+STR$(cells),sw/2,5
  162. RETURN
  163.  
  164. updateConsole:
  165. COLOR 0,0,0
  166. RECT 0,sh-70,sw,sh
  167. COLOR 200,255,200
  168. TEXTFONT "Helvetica","Italic",16
  169. DRAWTEXT ca$,10,sh-60
  170. COLOR 255,200,200
  171. DRAWTEXT cb$,10,sh-30
  172. RETURN
  173.  
  174. attackCell:
  175. CLS tty
  176. PRINT ""
  177. INPUT "Attack ("+STR$(tx-1)+","+STR$(ty-1)+") with how much cash?: ",ac
  178. IF ac<1 OR ac>cash THEN
  179. ELSE
  180.     ' IF firstturn=1 THEN
  181.     '  firstturn=0
  182.     ' gr2(tx,ty)=ac-1
  183.     ' ENDIF
  184.     cash=cash-ac
  185.     IF ac>gr2(tx,ty) THEN
  186.         gr(tx,ty)=1
  187.         cells=cells+1
  188.         cash=gr2(tx,ty)+cash
  189.         '  IF firstturn=0 THEN
  190.         IF 2000-ac>0 THEN
  191.             cash=cash+(2000-ac)
  192.         ENDIF
  193.         '   ENDIF
  194.         GOSUB updateHUD
  195.         COLOR 0,200,0
  196.         a=tx
  197.         b=ty
  198.         GOSUB drawRect
  199.         ca$="You took cell ("+STR$(a-1)+","+STR$(b-1)+")."
  200.         COLOR 75,75,75
  201.         FOR i=(tx-1) TO (tx+1)
  202.             FOR j=(ty-1) TO (ty+1)
  203.                 IF gr(i,j)=0 AND i>1 AND i<7 AND j>1 AND j<7 THEN
  204.                     gr(i,j)=3
  205.                     a=i
  206.                     b=j
  207.                     GOSUB drawRect
  208.                 ENDIF
  209.             NEXT
  210.         NEXT
  211.         IF cells=25 THEN
  212.             ca$="You own every cell!"
  213.             cb$="You are the Gridmaster!"
  214.             GOSUB updateConsole
  215.             CLS tty
  216.             PRINT ""
  217.             PAUSE "Tap to restart."
  218.             CLS
  219.             GOTO abcd
  220.         ENDIF
  221.     ENDIF
  222.     IF ac=gr2(tx,ty) THEN
  223.         GOSUB updateHUD
  224.         gr2(tx,ty)=0
  225.         ca$="You tied with cell ("+STR$(tx-1)+","+STR$(ty-1)+")."
  226.     ENDIF
  227.     IF ac<gr2(tx,ty) THEN
  228.         GOSUB updateHUD
  229.         gr2(tx,ty)=gr2(tx,ty)-ac
  230.         ca$="You failed to take cell ("+STR$(tx-1)+","+STR$(ty-1)+")."
  231.     ENDIF
  232.     GOSUB updateConsole
  233.     GOSUB checkBankrupt
  234. ENDIF
  235. RETURN
  236.  
  237. attackEnemy:
  238. CLS tty
  239. PRINT ""
  240. aec=INT(cash/cells)
  241. PRINT "Attacking enemy with $"+STR$(aec)+"/cell..."
  242. eec=INT(ecash/ecells)
  243. 'SLEEP 1
  244. IF aec>eec THEN
  245.     gr(tx,ty)=1
  246.     ca$="You took enemy cell ("+STR$(tx-1)+","+STR$(ty-1)+")."
  247.     COLOR 0,200,0
  248.     a=tx
  249.     b=ty
  250.     GOSUB drawRect
  251.     ecells=ecells-1
  252.     cells=cells+1
  253.     COLOR 75,75,75
  254.     FOR i=(tx-1) TO (tx+1)
  255.         FOR j=(ty-1) TO (ty+1)
  256.             IF gr(i,j)=0 AND i>1 AND i<7 AND j>1 AND j<7 THEN
  257.                 gr(i,j)=3
  258.                 a=i
  259.                 b=j
  260.                 GOSUB drawRect
  261.             ENDIF
  262.         NEXT
  263.     NEXT
  264. ENDIF
  265. IF eec>aec THEN
  266.     cash=cash-aec
  267.     ca$="You failed to attack the enemy."
  268. ENDIF
  269. IF eec=aec THEN
  270.     cash=cash-aec
  271.     ecash=ecash-eec
  272.     ca$="You tied with the enemy while atacking."
  273. ENDIF
  274. GOSUB updateConsole
  275. GOSUB updateHUD
  276. GOSUB checkBankrupt
  277. RETURN
  278.  
  279. checkBankrupt:
  280. IF cash<1 THEN
  281.     ca$="YOU HAVE GONE BANKRUPT."
  282.     cb$="You are not the Gridmaster."
  283.     GOSUB updateConsole
  284.     CLS tty
  285.     PRINT ""
  286.     PAUSE "Tap to restart."
  287.     CLS
  288.     GOTO abcd
  289. ENDIF
  290. RETURN
  291.  
  292. enemyAI:
  293. IF enemyDef=0 THEN
  294.     rndatkx=INT(1+(RND*5))+1
  295.     rndatky=INT(1+(RND*5))+1
  296.     IF rndatkx<2 OR rndatkx>6 OR rndatky<2 OR rndatky>6 THEN
  297.         GOTO enemyAI
  298.     ENDIF
  299.     IF gr(rndatkx,rndatky)=2 THEN
  300.         GOTO enemyAI
  301.     ENDIF
  302.     nxttru=0
  303.     FOR i=(rndatkx-1) TO (rndatkx+1)
  304.         FOR j=(rndatky-1) TO (rndatky+1)
  305.             IF gr(i,j)=2 THEN
  306.                 nxttru=1
  307.             ENDIF
  308.         NEXT
  309.     NEXT
  310.     IF nxttru=0 THEN
  311.         GOTO enemyAI
  312.     ENDIF
  313.     IF gr(rndatkx,rndatky)=0 OR gr(rndatkx,rndatky)=3 THEN
  314.         IF maximumprice<ecash THEN
  315.             atcsh=INT(1+(RND*maximumprice))
  316.         ELSE
  317.             atcsh=INT(1+(RND*ecash))
  318.             IF atcsh>ecash THEN
  319.                 atcsh=ecash
  320.             ENDIF
  321.         ENDIF
  322.         ecash=ecash-atcsh
  323.         IF atcsh>gr2(rndatkx,rndatky) THEN
  324.             gr(rndatkx,rndatky)=2
  325.             ecash=ecash+gr2(rndatkx,rndatky)
  326.             IF (maximumprice-atcsh)>0 THEN
  327.                 ecash=ecash+(maximumprice-atcsh)
  328.             ENDIF
  329.             cb$="Enemy has taken ("+STR$(rndatkx-1)+","+STR$(rndatky-1)+")."
  330.             GOSUB updateConsole
  331.             COLOR 200,0,0
  332.             a=rndatkx
  333.             b=rndatky
  334.             GOSUB drawRect
  335.             ecells=ecells+1
  336.         ELSE
  337.             cb$="Enemy fails their attack."
  338.             GOSUB updateConsole
  339.         ENDIF
  340.     ENDIF
  341.     IF gr(rndatkx,rndatky)=1 THEN
  342.         eec=INT(ecash/ecells)
  343.         aec=INT(cash/cells)
  344.         IF eec>aec THEN
  345.             cb$="Enemy takes your cell at ("+STR$(rndatkx-1)+","+STR$(rndatky-1)+")."
  346.             COLOR 200,0,0
  347.             cells=cells-1
  348.             a=rndatkx
  349.             b=rndatky
  350.             gr(rndatkx,rndatky)=2
  351.             GOSUB drawRect
  352.             GOSUB updateConsole
  353.         ENDIF
  354.         IF eec<aec THEN
  355.             cb$="Enemy failed an attack against you."
  356.             GOSUB updateConsole
  357.             ecash=ecash-eec
  358.         ENDIF
  359.         IF eec=aec THEN
  360.             cash=cash-aec
  361.             ecash=ecash-eec
  362.             cb$="Enemy tied in an attack against you."
  363.             GOSUB updateConsole
  364.         ENDIF
  365.     ENDIF
  366.     IF ecash<1 THEN
  367.         cb$="Enemy went bankrupt!"
  368.         GOSUB updateConsole
  369.     ENDIF
  370. ENDIF
  371. RETURN
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement