CHECKER GAME HELP! PLEASE!
Author |
Message |
d3c0d3d
|
Posted: Mon Jan 12, 2004 7:23 pm Post subject: CHECKER GAME HELP! PLEASE! |
|
|
CAN ANYONE SHOW ME HOW TO PUT THE PIECES FOR THIS GAME?...YOU CAN SHOW ME HOW TO DO ONE...AND ILL DO THE REST..PLEASE AND THANKS! |
|
|
|
|
|
Sponsor Sponsor
|
|
|
d3c0d3d
|
Posted: Mon Jan 12, 2004 7:24 pm Post subject: (No subject) |
|
|
here's how i started.
var winID : int := Window.Open ("graphics:400;400 , title:Checker Board")
%Checker Board_
for x : 1 .. 8
for y : 1 .. 8
drawfillbox (x * 50, y * 50 - 1, x * 50 - 50, y * 50 - 50, ((x+y*7) mod 2) * black)
end for
end for |
|
|
|
|
|
Cervantes
|
Posted: Mon Jan 12, 2004 7:45 pm Post subject: (No subject) |
|
|
read up on the ever useful tool known as "arrays" |
|
|
|
|
|
DanShadow
|
Posted: Mon Jan 12, 2004 7:46 pm Post subject: (No subject) |
|
|
You might do it the slow, but accu rate way like this:
code: |
%Checker Board_
for x : 1 .. 8
for y : 1 .. 8
drawfillbox (x * 50, y * 50 - 1, x * 50 - 50, y * 50 - 50, ((x + y * 7) mod 2) * black)
end for
end for
%------------------------------------------------------------------
%Checker (x,y) co-ordinates; Checker color; Checker selected (1=yes,0=no)
var checker_x, checker_y, checker_c, checker_s : array 1 .. 24 of int
%Makes all array variables equal to -20
for i : 1 .. 24
checker_x (i) := -20
checker_y (i) := -20
if i < 13 then
checker_c (i) := 12
else
checker_c (i) := 1
end if
checker_s (i) := 0
end for
checker_x (1) := 25
checker_y (1) := 25
checker_x (2) := 125
checker_y (2) := 25
checker_x (3) := 225
checker_y (3) := 25
checker_x (4) := 325
checker_y (4) := 24
proc drawCheckers
for i : 1 .. 24
Draw.FillOval (checker_x (i), checker_y (i), 20, 20, checker_c (i))
end for
end drawCheckers
drawCheckers
|
I coded a program, where you can lift and move checkers...ill upload the code if I remember, heh. I hope this helps. |
|
|
|
|
|
Andy
|
Posted: Mon Jan 12, 2004 8:01 pm Post subject: (No subject) |
|
|
caps are lame |
|
|
|
|
|
McKenzie
|
Posted: Mon Jan 12, 2004 8:26 pm Post subject: (No subject) |
|
|
Dodge is right, nver type in ALL CAPS, it pisses people off. Thats not what you want when you're asking for help. Here we go anyways.
1. You want to use a 2-dim array to store the pieces
code: | var board : array 1..8,1..8 of int |
2. Recognize that you are using 2 different coordinate systems. The screen coordinates and the board coordinates. I would suggest making 2 simple procedures to convert back and forth.
e.g.
code: | proc boardToScreen(bx,by:int, var sx,sy:int)
sx:=bx * 50 + 25 % center of box for circles
sy:=by * 50 + 25 % center of box for circles
end boardToScreen
|
3. Make a procedure to draw a piece given a boardx,boardy and a colour. |
|
|
|
|
|
shorthair
|
Posted: Mon Jan 12, 2004 9:12 pm Post subject: (No subject) |
|
|
decode , to start if your not 2 sure ( im just guessing here ) how to use an array , then using a 2d array isnt where you should start , i mean sure you only asked us to get the peices on hte board , but to me thats the hardest part , the code for movent is easy , just some for loops and some if statements , read through the tutorials and you will find alot of learning help , you should learn how to use the arrays in many situations , dont just use the code but learn the code so you will remember what its used for, you probably have compsci exams coming up and knowing this can make things nice and easy when it comes to writing an exam, i just want to make sure your understanding the code , be sure to ask more detailed questions if you dont understang something.
Shorthair Glad to Help |
|
|
|
|
|
DanShadow
|
Posted: Tue Jan 13, 2004 8:53 am Post subject: (No subject) |
|
|
Here is the code to move checkers:
code: |
var cx, cy, cs : array 1 .. 10 of int
var x, y, b : int := 0
for i : 1 .. 10
cx (i) := 0 + (i * 25)
cy (i) := 10
cs (i) := 0
end for
loop
setscreen ("offscreenonly")
View.Update
mousewhere (x, y, b)
Draw.FillBox (0, 0, maxx, maxy, 255)
for i : 1 .. 10
Draw.FillOval (cx (i), cy (i), 10, 10, 12)
if (b = 1) and (x > cx (i) - 10 and x < cx (i) + 10) and (y > cy (i) - 10 and y < cy (i) + 10) then
cs (i) := 1
end if
if (b = 1) and (cs (i) = 1) then
loop
setscreen ("offscreenonly")
View.Update
mousewhere (x, y, b)
Draw.FillBox (0, 0, maxx, maxy, 255)
for z : 1 .. 10
Draw.FillOval (cx (z), cy (z), 10, 10, 12)
end for
cx (i) := x
cy (i) := y
Draw.FillOval (cx (i), cy (i), 10, 10, 14)
exit when b not= 1
end loop
end if
if b not= 1 then
cs (i) := 0
end if
end for
end loop
|
Enjoy! |
|
|
|
|
|
Sponsor Sponsor
|
|
|
|
|