Blocksies Game for Summative
Author |
Message |
benQ
|
Posted: Fri Jan 07, 2005 8:15 pm Post subject: Blocksies Game for Summative |
|
|
Hey this is my code for my blocksies game. I need an expert to help me figure out what's wrong with it. I can't figure out what's wrong with it. So any help is appreciated! Thanks!
code: |
%%%%%%%%%%%%%%%%%
%% BLOCKSIES %%
%%%%%%%%%%%%%%%%%
setscreen ("noecho, nocursor")
const BLOCKER:=
chr(220)+chr(220)+chr(220)+chr(220)+chr(220)
const WAIT:= 125
const NUMBER_OF_ASTERISKS:=10
const LEFT_ARROW:= chr(203)
const RIGHT_ARROW:= chr(205)
const HOME:= chr(199)
const END:= chr(207)
const BLOCKER_ROW:= 24
const BLANK_BLOCKER:= " "
var Key: string (1)
var Asterisk_Column, Start, Finish: int
var Blocker_Column:= 38
var Asterisk_Row:= 2
procedure Move_Blocker
getch (Key)
locate (BLOCKER_ROW, Blocker_Column)
put BLANK_BLOCKER
if Key= RIGHT_ARROW then
Blocker_Column:= Blocker_Column+2
elsif Key= LEFT_ARROW then
Blocker_Column:= Blocker_Column-2
elsif Key= HOME then
Blocker_Column:= 2
elsif Key= END then
Blocker_Column:= 75
end if
if Blocker_Column> 75 then
Blocker_Column:= 75
elsif Blocker_Column< 2 then
Blocker_Column:= 2
end if
locate (BLOCKER_ROW, Blocker_Column)
put BLOCKER
end Move_Blocker
randomize
clock(Start)
for Asterisk: 1..NUMBER_OF_ASTERISKS
locate(1,1)
put "Asterisk #", Asterisk
randint (Asterisk_Column,2,79)
loop
locate (Asterisk_Row, Asterisk_Column)
put "*"..
delay (WAIT)
if hasch then
Move_Blocker
end if
locate (Asterisk_Row, Asterisk_Column)
put " "
Asterisk_Row:= Asterisk+1
if Asterisk_Row>24 then
Asterisk_Row:=2
end if
if Asterisk_Column >= Blocker_Column and
Asterisk_Column <= Blocker_Column+4 and
Asterisk_Row= 24 then
sound (1000,100)
exit
elsif Asterisk_Row= 24 and
(Asterisk_Column< Blocker_Column or
Asterisk_Column > Blocker_Column+4) then
end if
end loop
end for
clock (Finish)
cls
put "TIME: ", (Finish-Start)/1000, " Seconds"
|
|
|
|
|
|
![](images/spacer.gif) |
Sponsor Sponsor
![Sponsor Sponsor](templates/subSilver/images/ranks/stars_rank5.gif)
|
|
![](images/spacer.gif) |
cool dude
![](http://www.taylorstrategicmarketing.com/images/king.jpg)
|
Posted: Fri Jan 07, 2005 8:55 pm Post subject: (No subject) |
|
|
wat r u trying to do with this. be more specific on wat u need help with becuase we don't know wat u r trying to make and have trouble with |
|
|
|
|
![](images/spacer.gif) |
Cervantes
![](http://compsci.ca/v3/uploads/user_avatars/1023105758475ab2e040bde.jpg)
|
Posted: Sat Jan 08, 2005 10:18 am Post subject: (No subject) |
|
|
I don't understand what you are trying to do with your program. Are the asterisks supposed to "fall" towards the bottom of the screen and the player has to block them?
In any case, I would recommend using Input.KeyDown for movement, instead of getch. |
|
|
|
|
![](images/spacer.gif) |
benQ
|
Posted: Sat Jan 08, 2005 3:08 pm Post subject: Blocksies |
|
|
Ya. I need to make the asterisk fall to the bottom of the screen and the Blocker has to move to block it. It also needs to bounce off the blocker. |
|
|
|
|
![](images/spacer.gif) |
Cervantes
![](http://compsci.ca/v3/uploads/user_avatars/1023105758475ab2e040bde.jpg)
|
Posted: Sat Jan 08, 2005 6:33 pm Post subject: (No subject) |
|
|
Okay. Well, I don't see any errors with your program. I don't see any bugs. I just see an unfinished program. Keep working on it If you have a specific question, feel free to ask! |
|
|
|
|
![](images/spacer.gif) |
benQ
|
Posted: Thu Jan 13, 2005 9:28 am Post subject: Alright |
|
|
Alright, here's my finished program. I'm such a newbie and I have no clue how to make the walls and the blocker be bouncy so that the asterisk can bounce around. The only way to get a new asterisk would be if the asterisk passes the blocker and goes past the bottom of the screen. Do you know how to make the asterisk bounce off the 3 walls and the blocker? Help is greatly appreciated.
code: |
%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%
%% BLOCKSIES SUMMATIVE %%
%%%%%%%%%%%%%%%%%%%%%%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%
% This plays music. %
process playstuff
loop
play ("decdbcabebbdeacgabcefgabcgdbegdbcgabdgcbegdec")
delay (500)
play ("cdefgabcdefgabcdefgabcdefgabcdefgabcdefgabcdefgabc")
delay (500)
end loop
end playstuff
fork playstuff %fork it to play music%
% This is a program that lets you use the arrow keys to control the blocker.%
% The object is to block ten asterisks.%
const BLOCKER :=
chr(220)+chr(220)+chr(220)+chr(220)+chr(220)
const WAIT := 125
const NUMBER_OF_ASTERISKS := 10
const LEFT_ARROW := chr(203)
const RIGHT_ARROW := chr(205)
const HOME := chr(199)
const END := chr(207)
const BLOCKER_ROW := 24
const BLANK_BLOCKER := " "
var Key : string (1)
var Asterisk_Column, Start, Finish : int
var Blocker_Column := 38
var Asterisk_Row := 2
setscreen ("noecho,nocursor")
procedure Move_Blocker
%We wait for the user to press a key.%
getch (Key)
%We erase a previously positioned blocker.%
locate (BLOCKER_ROW, Blocker_Column)
put BLANK_BLOCKER
%We adjust the position of the blocker%
%according to the direction specified%
%by the user.%
if Key = RIGHT_ARROW then
Blocker_Column := Blocker_Column + 2
elsif Key = LEFT_ARROW then
Blocker_Column := Blocker_Column - 2
elsif Key = HOME then
Blocker_Column := 2
elsif Key = END then
Blocker_Column := 75
end if
%We do not allow the blocker to be moved%
%Beyond the borders of the screen%
if Blocker_Column > 75 then
Blocker_Column := 75
elsif Blocker_Column < 2 then
Blocker_Column := 2
end if
%The blocker is displayed on the screen.%
locate (BLOCKER_ROW, Blocker_Column)
put BLOCKER
end Move_Blocker
locate (BLOCKER_ROW, Blocker_Column)
put BLOCKER
randomize
clock (Start)
for Asterisk : 1 .. NUMBER_OF_ASTERISKS
locate (1, 1)
put "Asterisk #", Asterisk
randint (Asterisk_Column,2,79)
loop
locate (Asterisk_Row, Asterisk_Column)
put "*"
delay (100)
if hasch then
Move_Blocker
end if
locate (Asterisk_Row, Asterisk_Column)
put " "
Asterisk_Row := Asterisk_Row + 1
if Asterisk_Row > 24 then
Asterisk_Row := 2
end if
if Asterisk_Column >= Blocker_Column and
Asterisk_Column <= Blocker_Column + 4 and
Asterisk_Row = 24 then
sound (100, 100)
exit
elsif Asterisk_Row=24 and
(Asterisk_Column<Blocker_Column or
Asterisk_Column>Blocker_Column+4) then
sound (100,100)
end if
end loop
end for
% After this for loop, the clock stops and the time is displayed.%
clock (Finish)
cls
put "Time: ", (Finish - Start) / 1000, " Seconds."
|
|
|
|
|
|
![](images/spacer.gif) |
|
|