| Why You Should Avoid Processes 
 
	 
	
		| Author | Message |   
		| Insectoid 
 
  
 
 
 | 
			
				|  Posted: Fri Jan 28, 2011 5:57 pm    Post subject: RE:Why You Should Avoid Processes |  |   
				| 
 |  
				| Did you even read the thread? Turing's processes are purest evil, at least because it prevents students from learning consecutive programming. |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| Sponsor Sponsor
 
  
   |  |   
		|  |   
		| goroyoshi 
 
  
 
 
 | 
			
				|  Posted: Wed May 11, 2011 6:45 pm    Post subject: (No subject) |  |   
				| 
 |  
				| jamonathin @ Tue Feb 22, 2005 8:13 pm wrote: You have to give the bullet's their own variables.  'x' and 'y' are already used by the "shooter" and so by adding to the y-value, you're changing where the shooter is.  This is what i came up with. .
 	  | code: |  	  | 
View.Set ("offscreenonly")
 
 var chars : array char of boolean
 var x, y, bullety, bulletx : int := 100
 var shot : int := 0
 forward proc movement
 
 proc shoot
 loop
 shot := 1
 bullety += 1
 exit when bullety + 20 > maxy
 movement
 end loop
 shot := 0
 end shoot
 
 body proc movement
 Input.KeyDown (chars)
 if chars (KEY_UP_ARROW) and y + 64 < maxy then
 y := y + 1
 elsif chars (KEY_DOWN_ARROW) and y > 0 then
 y := y - 1
 elsif chars (KEY_LEFT_ARROW) and x > 0 then
 x := x - 1
 elsif chars (KEY_RIGHT_ARROW) and x + 64 < maxx then
 x := x + 1
 end if
 if chars (KEY_CTRL) and shot = 0 then
 bullety := y
 bulletx := x
 shoot
 end if
 cls
 if shot = 1 then
 drawoval (bulletx + 35, bullety - 1, 10, 10, 0)
 drawoval (bulletx + 35, bullety, 10, 10, 7)
 drawoval (bulletx - 35, bullety - 1, 10, 10, 0)
 drawoval (bulletx - 35, bullety, 10, 10, 7)
 end if
 drawfilloval (x, y, 20, 20, 7)
 View.Update
 end movement
 
 loop
 movement
 end loop
 
 | 
 The shooter moves a little slower while the bullets are being fired however.  If you want, you can have a variable represent the displacement of the shoot (y + 1 to y + dif), and when the ball is being fired, dif will equal 2, but outside the loop, dif will equal 1, your choice.
 I see a problem with this code, if you want to put a delay in it then all gets slowed (prove me wrong, I tried to to that) what if the bullets are supposed to be faster than the person shooting them
 |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| Tony 
 
  
 
 
 | 
			
				|  Posted: Wed May 11, 2011 6:57 pm    Post subject: (No subject) |  |   
				| 
 |  
				| goroyoshi @ Wed May 11, 2011 6:45 pm wrote: what if the bullets are supposed to be faster than the person shooting them Then you set a faster per-frame velocity.
 |  
				|  Tony's programming blog. DWITE - a programming contest. |  |   
		|  |  |  
	  
		|  |   
		| goroyoshi 
 
  
 
 
 | 
			
				|  Posted: Sun Jun 19, 2011 9:24 am    Post subject: RE:Why You Should Avoid Processes |  |   
				| 
 |  
				| my friend's ISP for grade 9 (actually a grade 10 course) was a jigsaw puzzle, he told me that he had to use processes |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| Insectoid 
 
  
 
 
 | 
			
				|  Posted: Sun Jun 19, 2011 10:43 am    Post subject: RE:Why You Should Avoid Processes |  |   
				| 
 |  
				| He did it wrong then. |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| Raknarg 
 
  
 
 
 | 
			
				|  Posted: Thu Jun 23, 2011 10:27 am    Post subject: RE:Why You Should Avoid Processes |  |   
				| 
 |  
				| This has probably been said already, but i don't want to read.... 
 Procedures can do the literally the EXACT SAME THING as processes, but without all the unpredictability.
 |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| andrew. 
 
 
 
 
 | 
			
				|  Posted: Thu Jun 23, 2011 6:49 pm    Post subject: RE:Why You Should Avoid Processes |  |   
				| 
 |  
				| Not literally the exact same thing. Processes are supposed to work concurrently, while procedures are supposed to be...well..procedural. The implementation in Turing isn't that good though so processes are horrible and unpredictable. |  
				|  |  |   
		|  |  |  
	  
		|  |   
		| Tony 
 
  
 
 
 | 
			
				|  Posted: Thu Jun 23, 2011 7:35 pm    Post subject: RE:Why You Should Avoid Processes |  |   
				| 
 |  
				| Of course you can't possibly get true concurrency on a single CPU; only switch between threads. In Turing, for the most part, you are better off writing your own "thread switching". It guarantees better scheduling, and much more importantly -- synchronization of cls and View.Update. 
 The only problem are blocking calls; but those could be gotten around by using non-blocking I/O methods.
 |  
				|  Tony's programming blog. DWITE - a programming contest. |  |   
		|  |  |  
	  
		|  |   
		| Sponsor Sponsor
 
  
   |  |   
		|  |   
		| Gadd 
 
 
 
 
 | 
			
				|  Posted: Thu Mar 15, 2012 11:33 am    Post subject: RE:Why You Should Avoid Processes |  |   
				| 
 |  
				| Although... you can tell a procedure when to be used. So why not use a procedure instead? 
 	  | code: |  	  | 
procedure p_input
 %The input of the user
 end p_input
 
 procedure p_process
 %The processing of the program
 end p_process
 
 procedure p_output
 %All of the output in the program
 %Just an example
 end p_output
 
 p_input
 p_process
 p_output
 %where all of these are displayed in the order %you tell them to be
 
 | 
 |  
				|  |  |   
		|  |  |  
	  
		|  |   
		|  |  
 |