REM PLEASE NOTE: I admit this program could be structured REM a lot better, however it was my first attempt at OPL! REM Please feel to use parts of this code in your own programs, REM however please do not modify it and redistribute it. REM If you believe you have made a useful modification to the code REM however, please do email me and tell me at gary.ewer@earthling.net REM APP OandX REM type 0 REM icon "\opd\icons\o-and-x" REM ENDA PROC Define: Global Gwn%,Opath$(128),Obit_id%,Xpath$(128),Xbit_id%,name1$(10),name2$(10),Try1$(2),N$(10),P1name$(10),P2name$(10) GLOBAL A%,B%,C%,D%,E%,F%,G%,H%,I%,M%,GO%,S%,END%,P2Tot%,P1Tot% p1name$="Player 1" p2name$="Player 2" dINIT "Who wants to play?" dEDIT p1name$,"Player 1" dEDIT p2name$,"Player 2" DIALOG Start:: gAT 0,0 gFILL 480,160,1 A%=0 B%=0 C%=0 D%=0 E%=0 F%=0 G%=0 H%=0 I%=0 GO%=0 gFONT 8 gAT 100,0 gFILL 5,160,0 gAT 155,0 gFILL 5,160,0 gAT 50,50 gFILL 160,5,0 gAT 50,105 gFILL 160,5,0 gAT 55,20 gPRINT "a1" gAT 110,20 gPRINT "b1" gAT 165,20 gPRINT "c1" gAT 55,75 gPRINT "a2" gAT 110,75 gPRINT "b2" gAT 165,75 gPRINT "c2" gAT 55,130 gPRINT "a3" gAT 110,130 gPRINT "b3" gAT 165,130 gPRINT "c3" gAT 240,35 gFILL 160,2,0 gAT 240,35 gFILL 2,46,0 gAT 240,79 gFILL 160,2,0 gAT 400,35 gFILL 2,46,0 gFONT 6 gAT 240,30 gPRINT "E-mail " gAT 240,15 gPRINT "¸ Gary Ewer 1998" gAT 245,52 gPRINT""+p1name$+" = "+FIX$(p1tot%,0,100)+"" gAT 245,72 gPRINT""+p2name$+" = "+FIX$(p2tot%,0,100)+"" S%=S%+1 IF S%>1 gCLOSE Obit_id% gClose Xbit_id% ENDIF Opath$="M:\OPD\Naught.pic" Obit_id%=gLOADBIT(Opath$,1) Xpath$="M:\OPD\X.pic" Xbit_id%=gLOADBIT(Xpath$,2) mINIT mCARD "Game","New Game",%n,"Exit",%x M%=MENU IF M%=%n GOTO O:: ENDIF IF M%=%x dINIT "Exit O and X" dTEXT "","Are you sure?",2 dBUTTONS "No",%N,"Yes",%Y M%=DIALOG IF M%=ASC("y") STOP ENDIF ENDIF GOTO START:: O:: dINIT ""+p1name$+" " dEdit Try1$, "Where would you like to go" dPosition 1,1 Dialog IF Try1$="A1" OR Try1$="a1" IF A%=0 gAT 0,0 gUSE 1 gAT 50,0 gCOPY Obit_id%,0,0,50,50,3 A% = 1 GOTO ENDO:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p1name$+" please retype you position",2 dPosition 1,1 Dialog GOTO O:: ENDIF IF Try1$="B1" OR Try1$="b1" IF B%=0 gAT 0,0 gUSE 1 gAT 105,0 gCOPY Obit_id%,0,0,50,50,3 B% = 1 GOTO ENDO:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p1name$+" please retype you position",2 dPosition 1,1 Dialog GOTO O:: ENDIF IF Try1$="C1" OR Try1$="c1" IF C%=0 gAT 0,0 gUSE 1 gAT 160,0 gCOPY Obit_id%,0,0,50,50,3 C% = 1 GOTO ENDO:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p1name$+" please retype you position",2 dPosition 1,1 Dialog GOTO O:: ENDIF IF Try1$="A2" OR Try1$="a2" IF D%=0 gAT 0,0 gUSE 1 gAT 50,55 gCOPY Obit_id%,0,0,50,50,3 D% = 1 GOTO ENDO:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p1name$+" please retype you position",2 dPosition 1,1 Dialog GOTO O:: ENDIF IF Try1$="B2" OR Try1$="b2" IF E%=0 gAT 0,0 gUSE 1 gAT 105,55 gCOPY Obit_id%,0,0,50,50,3 E% = 1 GOTO ENDO:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p1name$+" please retype you position",2 dPosition 1,1 Dialog GOTO O:: ENDIF IF Try1$="C2" OR Try1$="c2" IF F%=0 gAT 0,0 gUSE 1 gAT 160,55 gCOPY Obit_id%,0,0,50,50,3 F% = 1 GOTO ENDO:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p1name$+" please retype you position",2 dPosition 1,1 Dialog GOTO O:: ENDIF IF Try1$="a3" OR Try1$="A3" IF G%=0 gAT 0,0 gUSE 1 gAT 50,110 gCOPY Obit_id%,0,0,50,50,3 G% = 1 GOTO ENDO:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p1name$+" please retype you position",2 dPosition 1,1 Dialog GOTO O:: ENDIF IF Try1$="B3" OR Try1$="b3" IF H%=0 gAT 0,0 gUSE 1 gAT 105,110 gCOPY Obit_id%,0,0,50,50,3 H% = 1 GOTO ENDO:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p1name$+" please retype you position",2 dPosition 1,1 Dialog GOTO O:: ENDIF IF Try1$="C3" OR Try1$="c3" IF I%=0 gAT 0,0 gUSE 1 gAT 160,110 gCOPY Obit_id%,0,0,50,50,3 I% = 1 GOTO ENDO:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p1name$+" please retype you position",2 dPosition 1,1 Dialog GOTO O:: ENDIF dINIT "That is not a place!" dTEXT "",""+p1name$+" please retype you position",2 dPosition 1,1 Dialog GOTO O:: ENDO:: IF A% = 1 AND B% = 1 AND C% = 1 gAT 50,22 gFILL 160,6,0 End%=END%+1 ENDIF IF D% = 1 AND E% = 1 AND F% = 1 gAT 50,77 gFILL 160,6,0 End%=END%+1 ENDIF IF G% = 1 AND H% = 1 AND I% = 1 gAT 50,132 gFILL 160,6,0 End%=END%+1 ENDIF IF A% = 1 AND D% = 1 AND G% = 1 gAT 72,0 gFILL 6,160,0 End%=END%+1 ENDIF IF B% = 1 AND E% = 1 AND H% = 1 gAT 127,0 gFILL 6,160,0 End%=END%+1 ENDIF IF C% = 1 AND F% = 1 AND I% = 1 gAT 182,0 gFILL 6,160,0 End%=END%+1 ENDIF IF C% = 1 AND F% = 1 AND I% = 1 gAT 182,0 gFILL 6,160,0 End%=END%+1 ENDIF IF A% = 1 AND E% = 1 AND I% = 1 gAT 50,0 gLINETO 210,160 gAT 51,0 gLINETO 210,159 gAT 50,1 gLINETO 209,160 gAT 50,2 gLINETO 208,160 gAT 52,0 gLINETO 210,158 gAT 53,0 gLINETO 210,157 gAT 50,3 gLINETO 207,160 End%=END%+1 ENDIF IF C% = 1 AND E% = 1 AND G% = 1 gAT 50,160 gLINETO 210,0 gAT 50,159 gLINETO 209,0 gAT 50,158 gLINETO 208,0 gAT 50,157 gLINETO 207,0 gAT 51,160 gLINETO 210,1 gAT 52,160 gLINETO 210,2 gAT 53,160 gLINETO 210,3 End%=END%+1 ENDIF IF END%=1 dINIT ""+p1name$+" is the winner!" dTEXT "","Congratulations!",2 dPosition 1,1 Dialog END%=0 P1Tot%=P1Tot%+1 GOTO Start:: ENDIF IF END%>=2 dINIT ""+p1name$+" is the winner!" dTEXT "","TWO lines! What a walk over!",2 dPosition 1,1 Dialog END%=0 P1Tot%=P1Tot%+1 GOTO Start:: ENDIF GO%=GO%+1 IF GO%=9 dINIT "Neither of you won!" dTEXT "","Please have another go!" dPosition 1,1 Dialog GOTO START:: ENDIF X:: dINIT ""+p2name$+" " dEdit Try1$, "Where would you like to go" dPosition 1,1 Dialog IF Try1$="A1" OR Try1$="a1" IF A%=0 gAT 0,0 gUSE 1 gAT 50,0 gCOPY Xbit_id%,0,0,50,50,3 A% = 2 GOTO ENDX:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p2name$+" please retype you position",2 dPosition 1,1 Dialog GOTO X:: ENDIF IF Try1$="B1" OR Try1$="b1" IF B%=0 gAT 0,0 gUSE 1 gAT 105,0 gCOPY Xbit_id%,0,0,50,50,3 B% = 2 GOTO ENDX:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p2name$+" please retype you position",2 dPosition 1,1 Dialog GOTO X:: ENDIF IF Try1$="C1" OR Try1$="c1" IF C%=0 gAT 0,0 gUSE 1 gAT 160,0 gCOPY Xbit_id%,0,0,50,50,3 C% = 2 GOTO ENDX:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p2name$+" please retype you position",2 dPosition 1,1 Dialog GOTO X:: ENDIF IF Try1$="A2" OR Try1$="a2" IF D%=0 gAT 0,0 gUSE 1 gAT 50,55 gCOPY Xbit_id%,0,0,50,50,3 D% = 2 GOTO ENDX:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p2name$+" please retype you position",2 dPosition 1,1 Dialog GOTO X:: ENDIF IF Try1$="B2" OR Try1$="b2" IF E%=0 gAT 0,0 gUSE 1 gAT 105,55 gCOPY Xbit_id%,0,0,50,50,3 E% = 2 GOTO ENDX:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p2name$+" please retype you position",2 dPosition 1,1 Dialog GOTO O:: ENDIF IF Try1$="C2" OR Try1$="c2" IF F%=0 gAT 0,0 gUSE 1 gAT 160,55 gCOPY Xbit_id%,0,0,50,50,3 F% = 2 GOTO ENDX:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p2name$+" please retype you position",2 dPosition 1,1 Dialog GOTO X:: ENDIF IF Try1$="a3" OR Try1$="A3" IF G%=0 gAT 0,0 gUSE 1 gAT 50,110 gCOPY Xbit_id%,0,0,50,50,3 G% = 2 GOTO ENDX:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p2name$+" please retype you position",2 dPosition 1,1 Dialog GOTO X:: ENDIF IF Try1$="B3" OR Try1$="b3" IF H%=0 gAT 0,0 gUSE 1 gAT 105,110 gCOPY Xbit_id%,0,0,50,50,3 H% = 2 GOTO ENDX:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p2name$+" please retype you position",2 dPosition 1,1 Dialog GOTO X:: ENDIF IF Try1$="C3" OR Try1$="c3" IF I%=0 gAT 0,0 gUSE 1 gAT 160,110 gCOPY Xbit_id%,0,0,50,50,3 I% = 2 GOTO ENDX:: ENDIF dINIT "Someone has already been there!" dTEXT "",""+p2name$+" please retype you position",2 dPosition 1,1 Dialog GOTO X:: ENDIF dINIT "That is not a place!" dTEXT "",""+p2name$+" please retype you position",2 dPosition 1,1 Dialog GOTO X:: ENDX:: IF A% = 2 AND B% = 2 AND C% = 2 gAT 50,22 gFILL 160,6,0 End%=END%+1 ENDIF IF D% = 2 AND E% = 2 AND F% = 2 gAT 50,77 gFILL 160,6,0 End%=END%+1 ENDIF IF G% = 2 AND H% = 2 AND I% = 2 gAT 50,132 gFILL 160,6,0 End%=END%+1 ENDIF IF A% = 2 AND D% = 2 AND G% = 2 gAT 72,0 gFILL 6,160,0 End%=END%+1 ENDIF IF B% = 2 AND E% = 2 AND H% = 2 gAT 127,0 gFILL 6,160,0 End%=END%+1 ENDIF IF C% = 2 AND F% = 2 AND I% = 2 gAT 182,0 gFILL 6,160,0 End%=END%+1 ENDIF IF C% = 2 AND F% = 2 AND I% = 2 gAT 182,0 gFILL 6,160,0 End%=END%+1 ENDIF IF A% = 2 AND E% = 2 AND I% = 2 gAT 50,0 gLINETO 210,160 gAT 51,0 gLINETO 210,159 gAT 50,1 gLINETO 209,160 gAT 50,2 gLINETO 208,160 gAT 52,0 gLINETO 210,158 gAT 53,0 gLINETO 210,157 gAT 50,3 gLINETO 207,160 End%=END%+1 ENDIF IF C% = 2 AND E% = 2 AND G% = 2 gAT 50,160 gLINETO 210,0 gAT 50,159 gLINETO 209,0 gAT 50,158 gLINETO 208,0 gAT 50,157 gLINETO 207,0 gAT 51,160 gLINETO 210,1 gAT 52,160 gLINETO 210,2 gAT 53,160 gLINETO 210,3 End%=END%+1 ENDIF IF END%=1 dINIT ""+p2name$+" is the winner!" dTEXT "","Congratulations!",2 dPosition 1,1 Dialog END%=0 P2Tot%=P2Tot%+1 GOTO Start:: ENDIF IF END%>=2 dINIT ""+p2name$+" is the winner!" dTEXT "","TWO lines! What a walk over!",2 dPosition 1,1 Dialog END%=0 P2Tot%=P2Tot%+1 GOTO Start:: ENDIF GO%=GO%+1 IF GO%=9 dINIT "Neither of you won!" dTEXT "","Please have another go!" dPosition 1,1 Dialog GOTO START:: ENDIF GOTO O:: ENDP