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
|
|
|
|
|
|
|
|
|