| cannonball game 
 
	 
	
		| Author | Message |   
		| hossack 
 
 
 
 
 | 
			
				|  Posted: Tue Feb 17, 2009 10:53 am    Post subject: cannonball game |  |   
				| 
 |  
				| I need to know how to make my arc go up and then down. This is what i've gotten so far 
 	  | Turing: |  	  | 
View.Set ("graphic:640;480")
var x, y, angle, power : int 
x := 20 
y := 5
put "Enter Gun Powder"
get  power
put "Enter the arc |Lower = Steep | Higher = Shallower"
get  angle
delay (100)
cls
loop
    drawfillbox (580 , 0 , 480 , 20 , brightred)
    drawfilloval ( x, y, 5 , 5 , blue)
    delay (10)
    if  x = 600  + 20 or  x = 600  - 20 and  y = 360  - 20 or  y = 360  -20 then 
    x :=  x
 
    y :=  y
    cls
    locatexy (300 ,200)
    put "YOU WIN!!!"
    elsif  x = maxx or  y = maxy then
    locatexy (300 ,200)
    put "YOU LOSE!!!!"
    end if
    drawfilloval ( x, y, 5 , 5 , 0) 
    x :=  x + power
 
    y := round ( x * * 2  / angle)  + 5
end loop | 
 |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| Sponsor Sponsor
 
  
   |  |   
		|  |   
		| Ktomislav 
 
  
 
 
 | 
			
				|  Posted: Tue Feb 17, 2009 11:23 am    Post subject: Re: cannonball game |  |   
				| 
 |  
				| It's simple physics. You just have to set speed in x direction an in y direction and acceleration. And after that you just increase your x coordinate for x speed and y coordinate for y speed and increase your y speed for acceleration. You repeat that until x reaches maxx or y reaches 0. 
 
 	  | code: |  	  | procedure arc
var x, y, ay, vx, vy: real;
 ay := -0.2;
 x := 0;
 y := 0;
 vx := 10;
 vy := 10;
 loop
 exit when (x > maxx) or (y < 0);
 Draw.Dot (round(x), round(y), blue);
 x += vx;
 y += vy;
 vy += ay;
 delay (100);
 end loop
 end arc
 | 
 |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| hossack 
 
 
 
 
 | 
			
				|  Posted: Tue Feb 17, 2009 8:47 pm    Post subject: Re: cannonball game |  |   
				| 
 |  
				| We haven't learned Procedures yet. Is there any other way to do it? |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| DemonWasp 
 
 
 
 
 | 
			
				|  Posted: Tue Feb 17, 2009 9:22 pm    Post subject: RE:cannonball game |  |   
				| 
 |  
				| Learn procedures. 
 If you want to just run his code, copy everything between "procedure arc" and "end arc" and run that as a Turing program. You should see what he's talking about.
 
 Learn procedures anyway.
 |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| hossack 
 
 
 
 
 | 
			
				|  Posted: Wed Feb 18, 2009 9:30 am    Post subject: RE:cannonball game |  |   
				| 
 |  
				| I got it work. Thanks 
 edit nvm
 |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| hossack 
 
 
 
 
 | 
			
				|  Posted: Wed Feb 18, 2009 10:06 am    Post subject: Re: cannonball game |  |   
				| 
 |  
				| How do i get it so like when it hits the target you win/ if you miss you lose? Also how do you get it so the target is the same size each time? 
 
 	  | Turing: |  	  | var x, y, ay, vx, vy: real ; 
 var  randx, randx2: int 
    ay :=  -0 .2 ; 
 
    x := 0 ; 
 
    y := 0 ; 
 
    vx := 7 ; 
 
    vy := 7 ; 
    
   randint ( randx, 125 , maxx-125)
   randint ( randx2, 125 , maxx-125)
    
    drawfillbox ( randx, 0 , randx2, 20 , brightred)
    put "Enter the angle"
    get  vy
    put "Enter the speed"
    get  vx
    delay(10)
    
   
    loop 
        exit when ( x > maxx) or ( y < 0) ; 
        drawfilloval (round( x), round( y), round(5), round (5), blue) ; 
        delay (10) ; 
        View.Update
        drawfilloval (round( x), round( y), round(5), round (5), white) ; 
 
        x +=  vx; 
 
        y +=  vy; 
 
        vy +=  ay; 
        if  x <= randx or  x <= randx2 then
        put "YOU WIN"
        elsif  y <= 0 then
        put "YOU LOSE"
        end if
    end loop | 
 |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| Ktomislav 
 
  
 
 
 | 
			
				|  Posted: Wed Feb 18, 2009 11:18 am    Post subject: Re: cannonball game |  |   
				| 
 |  
				| You don't have to randomize randx2. 
 	  | code: |  	  | randx2 := randx + 100; | 
 
 You have to ask if the cannonball is inside the target.
 
 	  | code: |  	  | if (x >= randx) and (x <= randx2) and (y >= 0) and (y <= 20) then
put "You win!"
 end if
 | 
 
 And when cannonball goes out of screen you lose (when y <=0 or x >= maxx). Write the code yourself.
 
 And I missed it.. You got it wrong..
 Angle is not speed. You could write "y direction speed" or something like that instead of "angle" or
 you could do something with sin and cos or something like that.
  |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| hossack 
 
 
 
 
 | 
			
				|  Posted: Thu Feb 19, 2009 9:48 am    Post subject: Re: cannonball game |  |   
				| 
 |  
				| How do I restart the program after you win? 
 Like
 
 
 	  | Turing: |  	  | if (x >= randx) and ( x <= randx2) and ( y >= 0) and ( y <= 20) then
        put "You win!" 
        vx := 0 
        vy := 0
        cls
        delay(10)
        put "Play Again(Y/N)"
        get  ans
        if  ans = "Y" or  ans = "y" then 
*I don't Know how to restart it from here* | 
 |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| Sponsor Sponsor
 
  
   |  |   
		|  |   
		| DemonWasp 
 
 
 
 
 | 
			
				|  Posted: Thu Feb 19, 2009 10:34 am    Post subject: RE:cannonball game |  |   
				| 
 |  
				| 	  | code: |  	  | 
loop
 % Game code
 
 exit when donePlaying % where donePlaying is some condition, such as (ans not= "y" and ans not="Y")
 end loop
 
 | 
 |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| A.J 
 
  
 
 
 | 
			
				|  Posted: Thu Feb 19, 2009 10:51 am    Post subject: Re: cannonball game |  |   
				| 
 |  
				| DemonWasp wrote: 
	  | code: |  	  | 
loop
 % Game code
 
 exit when donePlaying % where donePlaying is some condition, such as (ans not= "y" and ans not="Y")
 end loop
 
 | 
 
 
 See, since you are going to have you game code in the main loop, you might want to use procedure
 |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| hossack 
 
 
 
 
 | 
			
				|  Posted: Thu Feb 19, 2009 10:59 am    Post subject: RE:cannonball game |  |   
				| 
 |  
				| thanks for all the help, I got it working and its complete  |  
				|  |  |   
		|  |  |  
	  
		|  |   
		|  |  
 |