mirror of
				https://github.com/KevinMidboe/linguist.git
				synced 2025-10-29 17:50:22 +00:00 
			
		
		
		
	Improve Turing sample (#3040)
* Improve Turing sample * Move more complex sample to different file * Undo changes to original file
This commit is contained in:
		
				
					committed by
					
						
						Arfon Smith
					
				
			
			
				
	
			
			
			
						parent
						
							cbbc05f7b8
						
					
				
				
					commit
					baf56666d4
				
			
							
								
								
									
										662
									
								
								samples/Turing/simplegame.t
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										662
									
								
								samples/Turing/simplegame.t
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,662 @@
 | 
				
			|||||||
 | 
					%This is a comment
 | 
				
			||||||
 | 
					var x : array 0 .. 100 of int 
 | 
				
			||||||
 | 
					var rangeX, rangeY, loopFor : int := 0
 | 
				
			||||||
 | 
					setscreen ("graphics:696;400,nobuttonbar")
 | 
				
			||||||
 | 
					setscreen ("nocursor")
 | 
				
			||||||
 | 
					setscreen ("noecho")
 | 
				
			||||||
 | 
					var colourP : string := "Yellow"
 | 
				
			||||||
 | 
					var title : int := Font.New ("Algerian:60")
 | 
				
			||||||
 | 
					var subtitle : int := Font.New ("Algerian:20")
 | 
				
			||||||
 | 
					var xValue, yValue, font1, font2, instructionsTitle : int
 | 
				
			||||||
 | 
					var scoreR, scoreY, button : int := 0
 | 
				
			||||||
 | 
					var scoreRS, scoreYS, PreventFor : string
 | 
				
			||||||
 | 
					var win : string := "N"
 | 
				
			||||||
 | 
					var full, samePlayer : boolean := false
 | 
				
			||||||
 | 
					font1 := Font.New ("Algerian:20")
 | 
				
			||||||
 | 
					font2 := Font.New ("TimesNewRoman:15")
 | 
				
			||||||
 | 
					instructionsTitle := Font.New ("Algerian:35")
 | 
				
			||||||
 | 
					var shouldPlay : boolean := true
 | 
				
			||||||
 | 
					forward proc game
 | 
				
			||||||
 | 
					for i : 0 .. 100  
 | 
				
			||||||
 | 
					    x (i) := 0
 | 
				
			||||||
 | 
					end for
 | 
				
			||||||
 | 
					proc pauseProgram
 | 
				
			||||||
 | 
					    var reply : string (1)
 | 
				
			||||||
 | 
					    getch (reply)
 | 
				
			||||||
 | 
					end pauseProgram
 | 
				
			||||||
 | 
					process backgroundMusic
 | 
				
			||||||
 | 
					    loop
 | 
				
			||||||
 | 
						exit when shouldPlay = false
 | 
				
			||||||
 | 
						Music.PlayFile ("music.MP3")
 | 
				
			||||||
 | 
					    end loop
 | 
				
			||||||
 | 
					end backgroundMusic
 | 
				
			||||||
 | 
					proc winner
 | 
				
			||||||
 | 
					    cls
 | 
				
			||||||
 | 
					    win := "N"
 | 
				
			||||||
 | 
					    for i : 1 .. 100
 | 
				
			||||||
 | 
						x (i) := 0
 | 
				
			||||||
 | 
					    end for
 | 
				
			||||||
 | 
					    drawfillbox (0, 0, 696, 400, black)
 | 
				
			||||||
 | 
					    scoreRS := "Red Wins: " + intstr (scoreR)
 | 
				
			||||||
 | 
					    scoreYS := "Yellow Wins: " + intstr (scoreY)
 | 
				
			||||||
 | 
					    Font.Draw ("", 190, 320, title, 48)
 | 
				
			||||||
 | 
					    Font.Draw (scoreRS, 0, 250, font1, 52)
 | 
				
			||||||
 | 
					    Font.Draw (scoreYS, 0, 220, font1, 52)
 | 
				
			||||||
 | 
					    Font.Draw ("Press any Key to continue.", 180, 100, subtitle, 12)
 | 
				
			||||||
 | 
					    pauseProgram
 | 
				
			||||||
 | 
					    game
 | 
				
			||||||
 | 
					end winner
 | 
				
			||||||
 | 
					body proc game
 | 
				
			||||||
 | 
					    for i : 1 .. 100
 | 
				
			||||||
 | 
						x (i) := 0
 | 
				
			||||||
 | 
					    end for
 | 
				
			||||||
 | 
					    cls
 | 
				
			||||||
 | 
					    drawfillbox (0, 0, 700, 400, black)%Grid
 | 
				
			||||||
 | 
					    Draw.ThickLine (0, 400, 0, 0, 5, 48)
 | 
				
			||||||
 | 
					    Draw.ThickLine (696, 400, 696, 0, 5, 48)
 | 
				
			||||||
 | 
					    Draw.ThickLine (3, 0, 696, 0, 5, 48)
 | 
				
			||||||
 | 
					    Draw.ThickLine (696, 0, 696, 70, 5, 48)
 | 
				
			||||||
 | 
					    Draw.ThickLine (610, 70, 87, 70, 5, 48)
 | 
				
			||||||
 | 
					    Draw.ThickLine (87, 70, 87, 400, 5, 48)
 | 
				
			||||||
 | 
					    Draw.ThickLine (87, 400, 0, 400, 5, 48)
 | 
				
			||||||
 | 
					    Draw.ThickLine (173, 70, 173, 400, 5, 48)
 | 
				
			||||||
 | 
					    Draw.ThickLine (260, 70, 260, 400, 5, 48)
 | 
				
			||||||
 | 
					    Draw.ThickLine (347, 70, 347, 400, 5, 48)
 | 
				
			||||||
 | 
					    Draw.ThickLine (435, 70, 435, 400, 5, 48)
 | 
				
			||||||
 | 
					    Draw.ThickLine (521, 70, 521, 400, 5, 48)
 | 
				
			||||||
 | 
					    Draw.ThickLine (609, 70, 609, 400, 5, 48)
 | 
				
			||||||
 | 
					    Draw.ThickLine (0, 70, 87, 70, 2, 11) %NEW!
 | 
				
			||||||
 | 
					    Draw.ThickLine (0, 120, 87, 120, 2, 11)
 | 
				
			||||||
 | 
					    Draw.ThickLine (0, 170, 87, 170, 2, 11)
 | 
				
			||||||
 | 
					    Draw.ThickLine (0, 220, 87, 220, 2, 11)
 | 
				
			||||||
 | 
					    Draw.ThickLine (0, 270, 87, 270, 2, 11)
 | 
				
			||||||
 | 
					    Draw.ThickLine (0, 320, 87, 320, 2, 11)
 | 
				
			||||||
 | 
					    Draw.ThickLine (0, 370, 87, 370, 2, 11)
 | 
				
			||||||
 | 
					    Draw.ThickLine (609, 70, 696, 70, 2, 11) %Part 2
 | 
				
			||||||
 | 
					    Draw.ThickLine (609, 120, 696, 120, 2, 11)
 | 
				
			||||||
 | 
					    Draw.ThickLine (609, 170, 696, 170, 2, 11)
 | 
				
			||||||
 | 
					    Draw.ThickLine (609, 220, 696, 220, 2, 11)
 | 
				
			||||||
 | 
					    Draw.ThickLine (609, 270, 696, 270, 2, 11)
 | 
				
			||||||
 | 
					    Draw.ThickLine (609, 320, 696, 320, 2, 11)
 | 
				
			||||||
 | 
					    Draw.ThickLine (609, 370, 696, 370, 2, 11)
 | 
				
			||||||
 | 
					    loop
 | 
				
			||||||
 | 
						if colourP = "Yellow" then
 | 
				
			||||||
 | 
						    if button = 1 then
 | 
				
			||||||
 | 
							if (rangeX >= 87 and rangeX <= 173) then
 | 
				
			||||||
 | 
							    %Drop on right corner (now verifies height)
 | 
				
			||||||
 | 
							    if x (1) = 0 then
 | 
				
			||||||
 | 
								x (1) := 1
 | 
				
			||||||
 | 
								loopFor := 300
 | 
				
			||||||
 | 
							    elsif x (2) = 0 then
 | 
				
			||||||
 | 
								x (2) := 1
 | 
				
			||||||
 | 
								loopFor := 250
 | 
				
			||||||
 | 
							    elsif x (3) = 0 then
 | 
				
			||||||
 | 
								x (3) := 1
 | 
				
			||||||
 | 
								loopFor := 200
 | 
				
			||||||
 | 
							    elsif x (4) = 0 then
 | 
				
			||||||
 | 
								x (4) := 1
 | 
				
			||||||
 | 
								loopFor := 150
 | 
				
			||||||
 | 
							    elsif x (5) = 0 then
 | 
				
			||||||
 | 
								x (5) := 1
 | 
				
			||||||
 | 
								loopFor := 100
 | 
				
			||||||
 | 
							    elsif x (6) = 0 then
 | 
				
			||||||
 | 
								x (6) := 1
 | 
				
			||||||
 | 
								loopFor := 50
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								full := true
 | 
				
			||||||
 | 
								samePlayer := true
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							    if full = true then
 | 
				
			||||||
 | 
								full := false
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								for i : 1 .. loopFor
 | 
				
			||||||
 | 
								    drawfilloval (135, 401 - i, 25, 25, black)
 | 
				
			||||||
 | 
								    drawfilloval (135, 400 - i, 25, 25, yellow)
 | 
				
			||||||
 | 
								    delay (1)
 | 
				
			||||||
 | 
								end for
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							elsif (rangeX >= 174 and rangeX <= 260) then
 | 
				
			||||||
 | 
							    if x (7) = 0 then %Drop on right corner (now verifies height)
 | 
				
			||||||
 | 
								x (7) := 1
 | 
				
			||||||
 | 
								loopFor := 300
 | 
				
			||||||
 | 
							    elsif x (8) = 0 then
 | 
				
			||||||
 | 
								x (8) := 1
 | 
				
			||||||
 | 
								loopFor := 250
 | 
				
			||||||
 | 
							    elsif x (9) = 0 then
 | 
				
			||||||
 | 
								x (9) := 1
 | 
				
			||||||
 | 
								loopFor := 200
 | 
				
			||||||
 | 
							    elsif x (10) = 0 then
 | 
				
			||||||
 | 
								x (10) := 1
 | 
				
			||||||
 | 
								loopFor := 150
 | 
				
			||||||
 | 
							    elsif x (11) = 0 then
 | 
				
			||||||
 | 
								x (11) := 1
 | 
				
			||||||
 | 
								loopFor := 100
 | 
				
			||||||
 | 
							    elsif x (12) = 0 then
 | 
				
			||||||
 | 
								x (12) := 1
 | 
				
			||||||
 | 
								loopFor := 50
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								full := true
 | 
				
			||||||
 | 
								samePlayer := true
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							    if full = true then
 | 
				
			||||||
 | 
								full := false
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								for i : 1 .. loopFor
 | 
				
			||||||
 | 
								    drawfilloval (222, 401 - i, 25, 25, black)
 | 
				
			||||||
 | 
								    drawfilloval (222, 400 - i, 25, 25, yellow)
 | 
				
			||||||
 | 
								    delay (1)
 | 
				
			||||||
 | 
								end for
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							elsif (rangeX >= 261 and rangeX <= 347) then
 | 
				
			||||||
 | 
							    if x (13) = 0 then%Drop on right corner (now verifies height)
 | 
				
			||||||
 | 
								x (13) := 1
 | 
				
			||||||
 | 
								loopFor := 300
 | 
				
			||||||
 | 
							    elsif x (14) = 0 then
 | 
				
			||||||
 | 
								x (14) := 1
 | 
				
			||||||
 | 
								loopFor := 250
 | 
				
			||||||
 | 
							    elsif x (15) = 0 then
 | 
				
			||||||
 | 
								x (15) := 1
 | 
				
			||||||
 | 
								loopFor := 200
 | 
				
			||||||
 | 
							    elsif x (16) = 0 then
 | 
				
			||||||
 | 
								x (16) := 1
 | 
				
			||||||
 | 
								loopFor := 150
 | 
				
			||||||
 | 
							    elsif x (17) = 0 then
 | 
				
			||||||
 | 
								x (17) := 1
 | 
				
			||||||
 | 
								loopFor := 100
 | 
				
			||||||
 | 
							    elsif x (18) = 0 then
 | 
				
			||||||
 | 
								x (18) := 1
 | 
				
			||||||
 | 
								loopFor := 50
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								full := true
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							    if full = true then
 | 
				
			||||||
 | 
								full := false
 | 
				
			||||||
 | 
								samePlayer := true
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								for i : 1 .. loopFor
 | 
				
			||||||
 | 
								    drawfilloval (309, 401 - i, 25, 25, black)
 | 
				
			||||||
 | 
								    drawfilloval (309, 400 - i, 25, 25, yellow)
 | 
				
			||||||
 | 
								    delay (1)
 | 
				
			||||||
 | 
								end for
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							elsif (rangeX >= 348 and rangeX <= 434) then
 | 
				
			||||||
 | 
							    if x (19) = 0 then %Drop on right corner (now verifies height)
 | 
				
			||||||
 | 
								x (19) := 1
 | 
				
			||||||
 | 
								loopFor := 300
 | 
				
			||||||
 | 
							    elsif x (20) = 0 then
 | 
				
			||||||
 | 
								x (20) := 1
 | 
				
			||||||
 | 
								loopFor := 250
 | 
				
			||||||
 | 
							    elsif x (21) = 0 then
 | 
				
			||||||
 | 
								x (21) := 1
 | 
				
			||||||
 | 
								loopFor := 200
 | 
				
			||||||
 | 
							    elsif x (22) = 0 then
 | 
				
			||||||
 | 
								x (22) := 1
 | 
				
			||||||
 | 
								loopFor := 150
 | 
				
			||||||
 | 
							    elsif x (23) = 0 then
 | 
				
			||||||
 | 
								x (23) := 1
 | 
				
			||||||
 | 
								loopFor := 100
 | 
				
			||||||
 | 
							    elsif x (24) = 0 then
 | 
				
			||||||
 | 
								x (24) := 1
 | 
				
			||||||
 | 
								loopFor := 50
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								full := true
 | 
				
			||||||
 | 
								samePlayer := true
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							    if full = true then
 | 
				
			||||||
 | 
								full := false
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								for i : 1 .. loopFor
 | 
				
			||||||
 | 
								    drawfilloval (396, 401 - i, 25, 25, black)
 | 
				
			||||||
 | 
								    drawfilloval (396, 400 - i, 25, 25, yellow)
 | 
				
			||||||
 | 
								    delay (1)
 | 
				
			||||||
 | 
								end for
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							elsif (rangeX >= 435 and rangeX <= 521) then
 | 
				
			||||||
 | 
							    if x (25) = 0 then %Drop on right corner (now verifies height)
 | 
				
			||||||
 | 
								x (25) := 1
 | 
				
			||||||
 | 
								loopFor := 300
 | 
				
			||||||
 | 
							    elsif x (26) = 0 then
 | 
				
			||||||
 | 
								x (26) := 1
 | 
				
			||||||
 | 
								loopFor := 250
 | 
				
			||||||
 | 
							    elsif x (27) = 0 then
 | 
				
			||||||
 | 
								x (27) := 1
 | 
				
			||||||
 | 
								loopFor := 200
 | 
				
			||||||
 | 
							    elsif x (28) = 0 then
 | 
				
			||||||
 | 
								x (28) := 1
 | 
				
			||||||
 | 
								loopFor := 150
 | 
				
			||||||
 | 
							    elsif x (29) = 0 then
 | 
				
			||||||
 | 
								x (29) := 1
 | 
				
			||||||
 | 
								loopFor := 100
 | 
				
			||||||
 | 
							    elsif x (30) = 0 then
 | 
				
			||||||
 | 
								x (30) := 1
 | 
				
			||||||
 | 
								loopFor := 50
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								full := true
 | 
				
			||||||
 | 
								samePlayer := true
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							    if full = true then
 | 
				
			||||||
 | 
								full := false
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								for i : 1 .. loopFor
 | 
				
			||||||
 | 
								    drawfilloval (483, 401 - i, 25, 25, black)
 | 
				
			||||||
 | 
								    drawfilloval (483, 400 - i, 25, 25, yellow)
 | 
				
			||||||
 | 
								    delay (1)
 | 
				
			||||||
 | 
								end for
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							elsif (rangeX >= 522 and rangeX <= 609) then
 | 
				
			||||||
 | 
							    if x (31) = 0 then %Drop on right corner (now verifies height)
 | 
				
			||||||
 | 
								x (31) := 1
 | 
				
			||||||
 | 
								loopFor := 300
 | 
				
			||||||
 | 
							    elsif x (32) = 0 then
 | 
				
			||||||
 | 
								x (32) := 1
 | 
				
			||||||
 | 
								loopFor := 250
 | 
				
			||||||
 | 
							    elsif x (33) = 0 then
 | 
				
			||||||
 | 
								x (33) := 1
 | 
				
			||||||
 | 
								loopFor := 200
 | 
				
			||||||
 | 
							    elsif x (34) = 0 then
 | 
				
			||||||
 | 
								x (34) := 1
 | 
				
			||||||
 | 
								loopFor := 150
 | 
				
			||||||
 | 
							    elsif x (35) = 0 then
 | 
				
			||||||
 | 
								x (35) := 1
 | 
				
			||||||
 | 
								loopFor := 100
 | 
				
			||||||
 | 
							    elsif x (36) = 0 then
 | 
				
			||||||
 | 
								x (36) := 1
 | 
				
			||||||
 | 
								loopFor := 50
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								full := true
 | 
				
			||||||
 | 
								samePlayer := true
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							    if full = true then
 | 
				
			||||||
 | 
								full := false
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								for i : 1 .. loopFor
 | 
				
			||||||
 | 
								    drawfilloval (570, 401 - i, 25, 25, black)
 | 
				
			||||||
 | 
								    drawfilloval (570, 400 - i, 25, 25, yellow)
 | 
				
			||||||
 | 
								    delay (1)
 | 
				
			||||||
 | 
								end for
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							end if
 | 
				
			||||||
 | 
							if samePlayer = true then
 | 
				
			||||||
 | 
							    samePlayer := false
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
							    colourP := "Red"
 | 
				
			||||||
 | 
							end if
 | 
				
			||||||
 | 
						    end if
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
						    if button = 1 then
 | 
				
			||||||
 | 
							if (rangeX >= 87 and rangeX <= 173) then
 | 
				
			||||||
 | 
							    if x (1) = 0 then %Drop on right corner (now verifies height)
 | 
				
			||||||
 | 
								x (1) := 2
 | 
				
			||||||
 | 
								loopFor := 300
 | 
				
			||||||
 | 
							    elsif x (2) = 0 then
 | 
				
			||||||
 | 
								x (2) := 2
 | 
				
			||||||
 | 
								loopFor := 250
 | 
				
			||||||
 | 
							    elsif x (3) = 0 then
 | 
				
			||||||
 | 
								x (3) := 2
 | 
				
			||||||
 | 
								loopFor := 200
 | 
				
			||||||
 | 
							    elsif x (4) = 0 then
 | 
				
			||||||
 | 
								x (4) := 2
 | 
				
			||||||
 | 
								loopFor := 150
 | 
				
			||||||
 | 
							    elsif x (5) = 0 then
 | 
				
			||||||
 | 
								x (5) := 2
 | 
				
			||||||
 | 
								loopFor := 100
 | 
				
			||||||
 | 
							    elsif x (6) = 0 then
 | 
				
			||||||
 | 
								x (6) := 2
 | 
				
			||||||
 | 
								loopFor := 50
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								full := true
 | 
				
			||||||
 | 
								samePlayer := true
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							    if full = true then
 | 
				
			||||||
 | 
								full := false
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								for i : 1 .. loopFor
 | 
				
			||||||
 | 
								    drawfilloval (135, 401 - i, 25, 25, black)
 | 
				
			||||||
 | 
								    drawfilloval (135, 400 - i, 25, 25, 12)
 | 
				
			||||||
 | 
								    delay (1)
 | 
				
			||||||
 | 
								end for
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							elsif (rangeX >= 174 and rangeX <= 260) then
 | 
				
			||||||
 | 
							    if x (7) = 0 then %Drop on right corner (now verifies height)
 | 
				
			||||||
 | 
								x (7) := 2
 | 
				
			||||||
 | 
								loopFor := 300
 | 
				
			||||||
 | 
							    elsif x (8) = 0 then
 | 
				
			||||||
 | 
								x (8) := 2
 | 
				
			||||||
 | 
								loopFor := 250
 | 
				
			||||||
 | 
							    elsif x (9) = 0 then
 | 
				
			||||||
 | 
								x (9) := 2
 | 
				
			||||||
 | 
								loopFor := 200
 | 
				
			||||||
 | 
							    elsif x (10) = 0 then
 | 
				
			||||||
 | 
								x (10) := 2
 | 
				
			||||||
 | 
								loopFor := 150
 | 
				
			||||||
 | 
							    elsif x (11) = 0 then
 | 
				
			||||||
 | 
								x (11) := 2
 | 
				
			||||||
 | 
								loopFor := 100
 | 
				
			||||||
 | 
							    elsif x (12) = 0 then
 | 
				
			||||||
 | 
								x (12) := 2
 | 
				
			||||||
 | 
								loopFor := 50
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								full := true
 | 
				
			||||||
 | 
								samePlayer := true
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							    if full = true then
 | 
				
			||||||
 | 
								full := false
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								for i : 1 .. loopFor
 | 
				
			||||||
 | 
								    drawfilloval (222, 401 - i, 25, 25, black)
 | 
				
			||||||
 | 
								    drawfilloval (222, 400 - i, 25, 25, 12)
 | 
				
			||||||
 | 
								    delay (1)
 | 
				
			||||||
 | 
								end for
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							elsif (rangeX >= 261 and rangeX <= 347) then
 | 
				
			||||||
 | 
							    if x (13) = 0 then %Drop on right corner (now verifies height)
 | 
				
			||||||
 | 
								x (13) := 2
 | 
				
			||||||
 | 
								loopFor := 300
 | 
				
			||||||
 | 
							    elsif x (14) = 0 then
 | 
				
			||||||
 | 
								x (14) := 2
 | 
				
			||||||
 | 
								loopFor := 250
 | 
				
			||||||
 | 
							    elsif x (15) = 0 then
 | 
				
			||||||
 | 
								x (15) := 2
 | 
				
			||||||
 | 
								loopFor := 200
 | 
				
			||||||
 | 
							    elsif x (16) = 0 then
 | 
				
			||||||
 | 
								x (16) := 2
 | 
				
			||||||
 | 
								loopFor := 150
 | 
				
			||||||
 | 
							    elsif x (17) = 0 then
 | 
				
			||||||
 | 
								x (17) := 2
 | 
				
			||||||
 | 
								loopFor := 100
 | 
				
			||||||
 | 
							    elsif x (18) = 0 then
 | 
				
			||||||
 | 
								x (18) := 2
 | 
				
			||||||
 | 
								loopFor := 50
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								full := true
 | 
				
			||||||
 | 
								samePlayer := true
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							    if full = true then
 | 
				
			||||||
 | 
								samePlayer := true
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								for i : 1 .. loopFor
 | 
				
			||||||
 | 
								    drawfilloval (309, 401 - i, 25, 25, black)
 | 
				
			||||||
 | 
								    drawfilloval (309, 400 - i, 25, 25, 12)
 | 
				
			||||||
 | 
								    delay (1)
 | 
				
			||||||
 | 
								end for
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							elsif (rangeX >= 348 and rangeX <= 434) then
 | 
				
			||||||
 | 
							    %Drop on right corner (now verifies height)
 | 
				
			||||||
 | 
							    if x (19) = 0 then
 | 
				
			||||||
 | 
								x (19) := 2
 | 
				
			||||||
 | 
								loopFor := 300
 | 
				
			||||||
 | 
							    elsif x (20) = 0 then
 | 
				
			||||||
 | 
								x (20) := 2
 | 
				
			||||||
 | 
								loopFor := 250
 | 
				
			||||||
 | 
							    elsif x (21) = 0 then
 | 
				
			||||||
 | 
								x (21) := 2
 | 
				
			||||||
 | 
								loopFor := 200
 | 
				
			||||||
 | 
							    elsif x (22) = 0 then
 | 
				
			||||||
 | 
								x (22) := 2
 | 
				
			||||||
 | 
								loopFor := 150
 | 
				
			||||||
 | 
							    elsif x (23) = 0 then
 | 
				
			||||||
 | 
								x (23) := 2
 | 
				
			||||||
 | 
								loopFor := 100
 | 
				
			||||||
 | 
							    elsif x (24) = 0 then
 | 
				
			||||||
 | 
								x (24) := 2
 | 
				
			||||||
 | 
								loopFor := 50
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								full := true
 | 
				
			||||||
 | 
								samePlayer := true
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							    if full = true then
 | 
				
			||||||
 | 
								full := false
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								for i : 1 .. loopFor
 | 
				
			||||||
 | 
								    drawfilloval (396, 401 - i, 25, 25, black)
 | 
				
			||||||
 | 
								    drawfilloval (396, 400 - i, 25, 25, 12)
 | 
				
			||||||
 | 
								    delay (1)
 | 
				
			||||||
 | 
								end for
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							elsif (rangeX >= 435 and rangeX <= 521) then
 | 
				
			||||||
 | 
							    %Drop on right corner (now verifies height)
 | 
				
			||||||
 | 
							    if x (25) = 0 then
 | 
				
			||||||
 | 
								x (25) := 2
 | 
				
			||||||
 | 
								loopFor := 300
 | 
				
			||||||
 | 
							    elsif x (26) = 0 then
 | 
				
			||||||
 | 
								x (26) := 2
 | 
				
			||||||
 | 
								loopFor := 250
 | 
				
			||||||
 | 
							    elsif x (27) = 0 then
 | 
				
			||||||
 | 
								x (27) := 2
 | 
				
			||||||
 | 
								loopFor := 200
 | 
				
			||||||
 | 
							    elsif x (28) = 0 then
 | 
				
			||||||
 | 
								x (28) := 2
 | 
				
			||||||
 | 
								loopFor := 150
 | 
				
			||||||
 | 
							    elsif x (29) = 0 then
 | 
				
			||||||
 | 
								x (29) := 2
 | 
				
			||||||
 | 
								loopFor := 100
 | 
				
			||||||
 | 
							    elsif x (30) = 0 then
 | 
				
			||||||
 | 
								x (30) := 2
 | 
				
			||||||
 | 
								loopFor := 50
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								full := true
 | 
				
			||||||
 | 
								samePlayer := true
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							    if full = true then
 | 
				
			||||||
 | 
								full := false
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								for i : 1 .. loopFor
 | 
				
			||||||
 | 
								    drawfilloval (483, 401 - i, 25, 25, black)
 | 
				
			||||||
 | 
								    drawfilloval (483, 400 - i, 25, 25, 12)
 | 
				
			||||||
 | 
								    delay (1)
 | 
				
			||||||
 | 
								end for
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							elsif (rangeX >= 522 and rangeX <= 609) then
 | 
				
			||||||
 | 
							    %Drop on right corner (now verifies height)
 | 
				
			||||||
 | 
							    if x (31) = 0 then
 | 
				
			||||||
 | 
								x (31) := 2
 | 
				
			||||||
 | 
								loopFor := 300
 | 
				
			||||||
 | 
							    elsif x (32) = 0 then
 | 
				
			||||||
 | 
								x (32) := 2
 | 
				
			||||||
 | 
								loopFor := 250
 | 
				
			||||||
 | 
							    elsif x (33) = 0 then
 | 
				
			||||||
 | 
								x (33) := 2
 | 
				
			||||||
 | 
								loopFor := 200
 | 
				
			||||||
 | 
							    elsif x (34) = 0 then
 | 
				
			||||||
 | 
								x (34) := 2
 | 
				
			||||||
 | 
								loopFor := 150
 | 
				
			||||||
 | 
							    elsif x (35) = 0 then
 | 
				
			||||||
 | 
								x (35) := 2
 | 
				
			||||||
 | 
								loopFor := 100
 | 
				
			||||||
 | 
							    elsif x (36) = 0 then
 | 
				
			||||||
 | 
								x (36) := 2
 | 
				
			||||||
 | 
								loopFor := 50
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								full := true
 | 
				
			||||||
 | 
								samePlayer := true
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							    if full = true then
 | 
				
			||||||
 | 
								full := false
 | 
				
			||||||
 | 
							    else
 | 
				
			||||||
 | 
								for i : 1 .. loopFor
 | 
				
			||||||
 | 
								    drawfilloval (570, 401 - i, 25, 25, black)
 | 
				
			||||||
 | 
								    drawfilloval (570, 400 - i, 25, 25, 12)
 | 
				
			||||||
 | 
								    delay (1)
 | 
				
			||||||
 | 
								end for
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							end if
 | 
				
			||||||
 | 
							if samePlayer then
 | 
				
			||||||
 | 
							    samePlayer := false
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
							    colourP := "Yellow"
 | 
				
			||||||
 | 
							end if
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						    end if
 | 
				
			||||||
 | 
						end if
 | 
				
			||||||
 | 
						mousewhere (rangeX, rangeY, button)
 | 
				
			||||||
 | 
						%Detect Winner - Horizontal Verification
 | 
				
			||||||
 | 
						for i : 1 .. 18
 | 
				
			||||||
 | 
						    if (x (i) = x (i + 6) and x (i) = x (i + 12) and x (i) = x (i + 18) and x (i) = 1) then
 | 
				
			||||||
 | 
							scoreY := scoreY + 1
 | 
				
			||||||
 | 
							win := "Y" %Red
 | 
				
			||||||
 | 
						    elsif x (i) = x (i + 6) and x (i) = x (i + 12) and x (i) = x (i + 18) and x (i) = 2 then
 | 
				
			||||||
 | 
							scoreR := scoreR + 1
 | 
				
			||||||
 | 
							win := "Y"
 | 
				
			||||||
 | 
							if i > 6 then
 | 
				
			||||||
 | 
							    if x (i - 6) = x (i) and x (i) = x (i + 6) and x (i) = x (i + 12) and x (i) = 2 then
 | 
				
			||||||
 | 
								scoreR := scoreR + 1 %Yellow
 | 
				
			||||||
 | 
								win := "Y"
 | 
				
			||||||
 | 
							    elsif x (i - 6) = x (i) and x (i) = x (i + 6) and x (i) = x (i + 12) and x (i) = 1 then
 | 
				
			||||||
 | 
								scoreY := scoreY + 1 %Yellow
 | 
				
			||||||
 | 
								win := "Y"
 | 
				
			||||||
 | 
							    end if
 | 
				
			||||||
 | 
							end if
 | 
				
			||||||
 | 
						    end if
 | 
				
			||||||
 | 
						end for
 | 
				
			||||||
 | 
						%Verticle Detection
 | 
				
			||||||
 | 
						for i : 1 .. 36 by 6
 | 
				
			||||||
 | 
						    if (x (i) = x (i + 1) and x (i) = x (i + 2) and x (i) = x (i + 3) and x (i) = 1) then
 | 
				
			||||||
 | 
							scoreY := scoreY + 1
 | 
				
			||||||
 | 
							win := "Y"
 | 
				
			||||||
 | 
						    elsif (x (i) = x (i + 1) and x (i) = x (i + 2) and x (i) = x (i + 3) and x (i) = 2) then
 | 
				
			||||||
 | 
							scoreR := scoreR + 1
 | 
				
			||||||
 | 
							win := "Y"
 | 
				
			||||||
 | 
						    elsif (x (i + 1) = x (i + 2) and x (i + 1) = x (i + 3) and x (i + 1) = x (i + 4) and x (i + 1) = 1) then
 | 
				
			||||||
 | 
							scoreY := scoreY + 1
 | 
				
			||||||
 | 
							win := "Y"
 | 
				
			||||||
 | 
						    elsif (x (i + 1) = x (i + 2) and x (i + 1) = x (i + 3) and x (i + 1) = x (i + 4) and x (i + 1) = 2) then
 | 
				
			||||||
 | 
							scoreR := scoreR + 1
 | 
				
			||||||
 | 
							win := "Y"
 | 
				
			||||||
 | 
						    elsif (x (i + 2) = x (i + 3) and x (i + 2) = x (i + 4) and x (i + 2) = x (i + 5) and x (i + 2) = 1) then
 | 
				
			||||||
 | 
							scoreY := scoreY + 1
 | 
				
			||||||
 | 
							win := "Y"
 | 
				
			||||||
 | 
						    elsif (x (i + 2) = x (i + 3) and x (i + 2) = x (i + 4) and x (i + 2) = x (i + 5) and x (i + 2) = 2) then
 | 
				
			||||||
 | 
							scoreR := scoreR + 1
 | 
				
			||||||
 | 
							win := "Y"
 | 
				
			||||||
 | 
						    end if
 | 
				
			||||||
 | 
						end for
 | 
				
			||||||
 | 
						for i : 1 .. 36 %Positive Slope
 | 
				
			||||||
 | 
						    if (x (i) = x (i + 7) and x (i) = x (i + 14) and x (i) = x (i + 21) and x (i) = 1) then
 | 
				
			||||||
 | 
							scoreY := scoreY + 1
 | 
				
			||||||
 | 
							win := "Y"
 | 
				
			||||||
 | 
						    elsif (x (i) = x (i + 7) and x (i) = x (i + 14) and x (i) = x (i + 21) and x (i) = 2) then
 | 
				
			||||||
 | 
							scoreR := scoreR + 1
 | 
				
			||||||
 | 
							win := "Y"
 | 
				
			||||||
 | 
						    elsif (x (i + 1) = x (i + 8) and x (i + 1) = x (i + 15) and x (i + 1) = x (i + 22) and x (i + 1) = 2) then
 | 
				
			||||||
 | 
							scoreR := scoreR + 1
 | 
				
			||||||
 | 
							win := "Y"
 | 
				
			||||||
 | 
						    elsif (x (i + 1) = x (i + 8) and x (i + 1) = x (i + 15) and x (i + 1) = x (i + 22) and x (i + 1) = 1) then
 | 
				
			||||||
 | 
							scoreY := scoreY + 1
 | 
				
			||||||
 | 
							win := "Y"
 | 
				
			||||||
 | 
						    elsif (x (i + 2) = x (i + 9) and x (i + 2) = x (i + 16) and x (i + 2) = x (i + 23) and x (i + 2) = 1) then
 | 
				
			||||||
 | 
							scoreY := scoreY + 1
 | 
				
			||||||
 | 
							win := "Y"
 | 
				
			||||||
 | 
						    elsif (x (i + 2) = x (i + 9) and x (i + 2) = x (i + 16) and x (i + 2) = x (i + 23) and x (i + 2) = 2) then
 | 
				
			||||||
 | 
							scoreR := scoreR + 1
 | 
				
			||||||
 | 
							win := "Y"
 | 
				
			||||||
 | 
						    elsif (x (1) = x (7) and x (1) = x (13) and x (1) = x (19) and x (1) = 1) then
 | 
				
			||||||
 | 
							scoreY := scoreY + 1
 | 
				
			||||||
 | 
							win := "Y"
 | 
				
			||||||
 | 
						    elsif (x (1) = x (7) and x (1) = x (13) and x (1) = x (19) and x (1) = 2) then
 | 
				
			||||||
 | 
							scoreR := scoreR + 1
 | 
				
			||||||
 | 
							win := "Y"
 | 
				
			||||||
 | 
						    end if
 | 
				
			||||||
 | 
						end for
 | 
				
			||||||
 | 
						for i : 1 .. 70 %Negative Slope
 | 
				
			||||||
 | 
						    if i > 24 then
 | 
				
			||||||
 | 
							if (x (i) = x (i - 5) and x (i) = x (i - 10) and x (i) = x (i - 15) and x (i) = 1) then
 | 
				
			||||||
 | 
							    scoreY := scoreY + 1
 | 
				
			||||||
 | 
							    win := "Y"
 | 
				
			||||||
 | 
							elsif (x (i) = x (i - 5) and x (i) = x (i - 10) and x (i) = x (i - 15) and x (i) = 2) then
 | 
				
			||||||
 | 
							    scoreR := scoreR + 1
 | 
				
			||||||
 | 
							    win := "Y"
 | 
				
			||||||
 | 
							elsif (x (i + 1) = x (i - 6) and x (i - 1) = x (i - 11) and x (i - 1) = x (i - 16) and x (i + 1) = 2) then
 | 
				
			||||||
 | 
							    scoreR := scoreR + 1
 | 
				
			||||||
 | 
							    win := "Y"
 | 
				
			||||||
 | 
							elsif (x (i + 1) = x (i - 6) and x (i - 1) = x (i - 11) and x (i - 1) = x (i - 16) and x (i + 1) = 1) then
 | 
				
			||||||
 | 
							    scoreY := scoreY + 1
 | 
				
			||||||
 | 
							    win := "Y"
 | 
				
			||||||
 | 
							elsif (x (i + 2) = x (i - 7) and x (i - 2) = x (i - 12) and x (i - 2) = x (i - 17) and x (i + 2) = 1) then
 | 
				
			||||||
 | 
							    scoreY := scoreY + 1
 | 
				
			||||||
 | 
							    win := "Y"
 | 
				
			||||||
 | 
							elsif (x (i + 2) = x (i - 7) and x (i + 2) = x (i - 12) and x (i - 2) = x (i - 17) and x (i + 2) = 2) then
 | 
				
			||||||
 | 
							    scoreR := scoreR + 1
 | 
				
			||||||
 | 
							    win := "Y"
 | 
				
			||||||
 | 
							end if
 | 
				
			||||||
 | 
						    end if
 | 
				
			||||||
 | 
						end for
 | 
				
			||||||
 | 
						exit when win = "Y"
 | 
				
			||||||
 | 
					    end loop
 | 
				
			||||||
 | 
					    winner
 | 
				
			||||||
 | 
					end game
 | 
				
			||||||
 | 
					proc mainMenu
 | 
				
			||||||
 | 
					    drawfillbox (0, 0, 696, 400, black)
 | 
				
			||||||
 | 
					    Font.Draw ("", 295, 220, font1, 48)
 | 
				
			||||||
 | 
					    Font.Draw ("", 251, 150, font1, 48)
 | 
				
			||||||
 | 
					    Font.Draw ("", 305, 79, font1, 48)
 | 
				
			||||||
 | 
					    loop
 | 
				
			||||||
 | 
						Font.Draw ("Connect4", 155, 290, title, 52)
 | 
				
			||||||
 | 
						Mouse.Where (xValue, yValue, button)
 | 
				
			||||||
 | 
						if xValue >= 215 and xValue <= 455 then
 | 
				
			||||||
 | 
						    if yValue >= 200 and yValue <= 250 then
 | 
				
			||||||
 | 
							if button = 1 then
 | 
				
			||||||
 | 
							    delay (1000)
 | 
				
			||||||
 | 
							    game
 | 
				
			||||||
 | 
							    exit
 | 
				
			||||||
 | 
							end if
 | 
				
			||||||
 | 
							drawbox (215, 200, 455, 250, 48)
 | 
				
			||||||
 | 
						    else
 | 
				
			||||||
 | 
							drawbox (215, 200, 455, 250, black)
 | 
				
			||||||
 | 
						    end if
 | 
				
			||||||
 | 
						    if yValue >= 130 and yValue <= 180 then
 | 
				
			||||||
 | 
							if button = 1 then
 | 
				
			||||||
 | 
							    drawfillbox (0, 0, 696, 400, black)
 | 
				
			||||||
 | 
							    Font.Draw ("", 70, 350, instructionsTitle, 48)
 | 
				
			||||||
 | 
							    Font.Draw ("", 0, 320, font2, 52)
 | 
				
			||||||
 | 
							    Font.Draw ("", 0, 280, font2, 52)
 | 
				
			||||||
 | 
							    Font.Draw ("", 0, 240, font2, 52)
 | 
				
			||||||
 | 
							    Font.Draw ("", 0, 200, font2, 52)
 | 
				
			||||||
 | 
							    Font.Draw ("", 245, 75, font2, 14)
 | 
				
			||||||
 | 
							    pauseProgram
 | 
				
			||||||
 | 
							    mainMenu
 | 
				
			||||||
 | 
							end if
 | 
				
			||||||
 | 
							drawbox (215, 130, 455, 180, 48)
 | 
				
			||||||
 | 
						    else
 | 
				
			||||||
 | 
							drawbox (215, 130, 455, 180, black)
 | 
				
			||||||
 | 
						    end if
 | 
				
			||||||
 | 
						    if yValue >= 60 and yValue <= 110 then
 | 
				
			||||||
 | 
							if button = 1 then
 | 
				
			||||||
 | 
							    shouldPlay := false
 | 
				
			||||||
 | 
							    exit
 | 
				
			||||||
 | 
							end if
 | 
				
			||||||
 | 
							drawbox (215, 60, 455, 110, 48)
 | 
				
			||||||
 | 
						    else
 | 
				
			||||||
 | 
							drawbox (215, 60, 455, 110, black)
 | 
				
			||||||
 | 
						    end if
 | 
				
			||||||
 | 
						end if
 | 
				
			||||||
 | 
						exit when button = 1
 | 
				
			||||||
 | 
					    end loop
 | 
				
			||||||
 | 
					end mainMenu
 | 
				
			||||||
 | 
					proc intro
 | 
				
			||||||
 | 
					    drawfillbox (0, 0, 696, 400, black)
 | 
				
			||||||
 | 
					    for i : 1 .. 400
 | 
				
			||||||
 | 
						drawfillbox (0, 0, 696, 400, black)
 | 
				
			||||||
 | 
						Font.Draw ("", 560 - i, 250, title, 48)
 | 
				
			||||||
 | 
						Font.Draw ("", -255 + i, 220, subtitle, 52)
 | 
				
			||||||
 | 
						delay (4)
 | 
				
			||||||
 | 
					    end for
 | 
				
			||||||
 | 
					    for i : 1 .. 390
 | 
				
			||||||
 | 
						drawfilloval (40, 401 - i, 20, 20, black)
 | 
				
			||||||
 | 
						drawfilloval (656, 401 - i, 20, 20, black)
 | 
				
			||||||
 | 
						drawfilloval (656, 400 - i, 20, 20, 12)
 | 
				
			||||||
 | 
						drawfilloval (40, 400 - i, 20, 20, yellow)
 | 
				
			||||||
 | 
						delay (3)
 | 
				
			||||||
 | 
					    end for
 | 
				
			||||||
 | 
					    loop
 | 
				
			||||||
 | 
						drawfillbox (0, 0, 696, 100, black)
 | 
				
			||||||
 | 
						Font.Draw ("Press any Key to Continue.", 169, 20, subtitle, 12)
 | 
				
			||||||
 | 
						delay (300)
 | 
				
			||||||
 | 
						drawfillbox (0, 0, 696, 100, black)
 | 
				
			||||||
 | 
						Font.Draw ("Press any Key to Continue.", 169, 20, subtitle, 14)
 | 
				
			||||||
 | 
						delay (300)
 | 
				
			||||||
 | 
						exit when hasch
 | 
				
			||||||
 | 
					    end loop
 | 
				
			||||||
 | 
					    mainMenu
 | 
				
			||||||
 | 
					end intro
 | 
				
			||||||
 | 
					%fork backgroundMusic
 | 
				
			||||||
 | 
					intro
 | 
				
			||||||
		Reference in New Issue
	
	Block a user