Here is the start of my entry, but i am having some trouble with some things.
Rem DBC Programming Challenges
Rem Dice Challenge
Rem By:Ton3e
Gosub Setup
Do
Rem Main Program Loop
Gosub firstDice
Gosub secondDice
Gosub thirdDice
Sync
Loop
End
Rem ****************************************************************************************************
Rem *** Procedures ***
Rem ****************************************************************************************************
Setup:
Set Display Mode 800,600,32
AutoCam Off
Sync On
Sync Rate 0
CLS 0
Randomize Timer()
ink rgb(255,255,255),0
Set Cursor 360,200
Print "You Have To Beat"
Num2beat=rnd(36)
set cursor 400,300
print Num2beat
wait 3000
Dim DScore(6)
PLACE=1
Rem ********************************************************************************
MakeDice(2,1,3.0)
Position Object 1,-7,0,0
Position Object 2,7,0,0
Position Camera 0,0,-15
MakeOtherDice(1,3,3.0)
Position object 3,0,0,0
Return
firstDice:
IF PLACE=1
R = Rnd(3)*10
XRotate Object 1,WrapValue(Object Angle X(1)+R)
YRotate Object 1,WrapValue(Object Angle Y(1)+R)
If spacekey()=1 AND PLACE=1
DScore(N)=Rnd(5)+1: Rem Random dice face chosen
Select DScore(N)
Case 1: Rotate Object 1,0,90,0: EndCase
Case 2: Rotate Object 1,0,180,0: EndCase
Case 3: Rotate Object 1,90,0,0: EndCase
Case 4: Rotate Object 1,270,0,0: EndCase
Case 5: Rotate Object 1,0,0,0: EndCase
Case 6: Rotate Object 1,0,270,0: EndCase
EndSelect
INC PLACE
WAIT 1000
Return
Endif
ENDIF
RETURN
secondDice:
IF PLACE=2
R = Rnd(3)*10
XRotate Object 2,WrapValue(Object Angle X(1)+R)
YRotate Object 2,WrapValue(Object Angle Y(1)+R)
If spacekey()=1 AND PLACE=2
DScore(N)=Rnd(5)+1: Rem Random dice face chosen
Select DScore(N)
Case 1: Rotate Object 2,0,90,0: EndCase
Case 2: Rotate Object 2,0,180,0: EndCase
Case 3: Rotate Object 2,90,0,0: EndCase
Case 4: Rotate Object 2,270,0,0: EndCase
Case 5: Rotate Object 2,0,0,0: EndCase
Case 6: Rotate Object 2,0,270,0: EndCase
EndSelect
INC PLACE
WAIT 1000
Return
Endif
ENDIF
RETURN
thirdDice:
IF PLACE=3
R = Rnd(3)*10
XRotate Object 3,WrapValue(Object Angle X(1)+R)
YRotate Object 3,WrapValue(Object Angle Y(1)+R)
If spacekey()=1 AND PLACE=3
DScore(N)=Rnd(5)+1: Rem Random dice face chosen
Select DScore(N)
Case 1: Rotate Object 3,0,90,0: EndCase
Case 2: Rotate Object 3,0,180,0: EndCase
Case 3: Rotate Object 3,90,0,0: EndCase
Case 4: Rotate Object 3,270,0,0: EndCase
Case 5: Rotate Object 3,0,0,0: EndCase
Case 6: Rotate Object 3,0,270,0: EndCase
EndSelect
END
Endif
ENDIF
RETURN
Rem ****************************************************************************************************
Rem *** Functions ***
Rem ****************************************************************************************************
Function MakeDice(NumDice,StartObjNumber,DiceSize#)
Create Bitmap 1,800,600
CLS RGB(85,0,0)
Rem Number One
Ink RGB(255,0,0),0: Box 2,2,254,254
Ink RGB(255,255,255),0
For N=1 To 24
Circle 128,128,N: Circle 128,129,N
Next N
Get Image 1001,0,0,256,256
Rem Number Two
Ink RGB(255,0,0),0: Box 2,2,254,254
Ink RGB(255,255,255),0
For N=1 To 24
Circle 46,46,N: Circle 46,47,N
Circle 208,208,N: Circle 208,209,N
Next N
Get Image 1002,0,0,256,256
Rem Number Three
Ink RGB(255,0,0),0: Box 2,2,254,254
Ink RGB(255,255,255),0
For N=1 To 24
Circle 46,46,N: Circle 46,47,N
Circle 128,128,N: Circle 128,129,N
Circle 208,208,N: Circle 208,209,N
Next N
Get Image 1003,0,0,256,256
Rem Number Four
Ink RGB(255,0,0),0: Box 2,2,254,254
Ink RGB(255,255,255),0
For N=1 To 24
Circle 46,46,N: Circle 46,47,N
Circle 208,46,N: Circle 208,47,N
Circle 46,208,N: Circle 46,209,N
Circle 208,208,N: Circle 208,209,N
Next N
Get Image 1004,0,0,256,256
Rem Number Five
Ink RGB(255,0,0),0: Box 2,2,254,254
Ink RGB(255,255,255),0
For N=1 To 24
Circle 46,46,N: Circle 46,47,N
Circle 208,46,N: Circle 208,47,N
Circle 128,128,N: Circle 128,129,N
Circle 46,208,N: Circle 46,209,N
Circle 208,208,N: Circle 208,209,N
Next N
Get Image 1005,0,0,256,256
Rem Number Six
Ink RGB(255,0,0),0: Box 2,2,254,254
Ink RGB(255,255,255),0
For N=1 To 24
Circle 46,46,N: Circle 46,47,N
Circle 208,46,N: Circle 208,47,N
Circle 46,128,N: Circle 46,129,N
Circle 208,128,N: Circle 208,129,N
Circle 46,208,N: Circle 46,209,N
Circle 208,208,N: Circle 208,209,N
Next N
Get Image 1006,0,0,256,256
Set Current Bitmap 0
Delete Bitmap 1
For ObjNum = StartObjNumber To StartObjNumber+(NumDice-1)
Offset#=DiceSize#/2.0: MeshNum=2000: PlainNum=2000
Make Object Cube ObjNum,DiceSize#
Make Object Plain PlainNum,DiceSize#,DiceSize#
Make Mesh From Object MeshNum,PlainNum
ADD LIMB ObjNum,1,2000: Offset Limb ObjNum,1,0,0,0.0-Offset#: Rem Cube Side 1 (Front)
ADD LIMB ObjNum,2,2000: Rotate Limb ObjNum,2,0,90,0: Offset Limb ObjNum,2,0.0-Offset#,0,0: Rem Cube Side 2 (Left)
ADD LIMB ObjNum,3,2000: Rotate Limb ObjNum,3,0,180,0: Offset Limb ObjNum,3,0,0,Offset#: Rem Cube Side 3 (Back)
ADD LIMB ObjNum,4,2000: Rotate Limb ObjNum,4,0,270,0: Offset Limb ObjNum,4,Offset#,0,0: Rem Cube Side 4 (Right)
ADD LIMB ObjNum,5,2000: Rotate Limb ObjNum,5,270,0,0: Offset Limb ObjNum,5,0,0.0-Offset#,0: Rem Cube Side 5 (Bottom)
ADD LIMB ObjNum,6,2000: Rotate Limb ObjNum,6,90,0,0: Offset Limb ObjNum,6,0,Offset#,0: Rem Cube Side 6 (Top)
Delete Mesh MeshNum
Delete Object PlainNum
Hide Limb ObjNum,0
Texture LIMB ObjNum,1,1005: Texture LIMB ObjNum,2,1006
Texture LIMB ObjNum,3,1002: Texture LIMB ObjNum,4,1001
Texture LIMB ObjNum,5,1003: Texture LIMB ObjNum,6,1004
Next ObjNum
EndFunction
Function MakeOtherDice(NumDice,StartObjNumber,DiceSize#)
Create Bitmap 1,800,600
CLS RGB(85,0,0)
Rem subtract
Ink RGB(255,0,0),0: Box 2,2,254,254
Ink RGB(255,255,255),0
For N=1 To 24
box 35,110,195+N,110+N
Next N
Get Image 2001,0,0,256,256
Rem add
Ink RGB(255,0,0),0: Box 2,2,254,254
Ink RGB(255,255,255),0
For N=1 To 24
box 35,110,195+N,110+N:box 110,35,110+N,195+N
Next N
Get Image 2002,0,0,256,256
Rem multiply
Ink RGB(255,0,0),0: Box 2,2,254,254
Ink RGB(255,255,255),0
For N=1 To 24
line 20+N,20,210+N,234:line 210+N,20,20+N,234
Next N
Get Image 2003,0,0,256,256
Rem divide
Ink RGB(255,0,0),0: Box 2,2,254,254
Ink RGB(255,255,255),0
For N=1 To 24
box 35,110,195+N,110+N
Circle 128,70,N: Circle 128,71,N
Circle 128,180,N: Circle 128,181,N
Next N
Get Image 2004,0,0,256,256
Rem subtract
Ink RGB(255,0,0),0: Box 2,2,254,254
Ink RGB(255,255,255),0
For N=1 To 24
box 35,110,195+N,110+N
Next N
Get Image 2005,0,0,256,256
Rem add
Ink RGB(255,0,0),0: Box 2,2,254,254
Ink RGB(255,255,255),0
For N=1 To 24
box 35,110,195+N,110+N:box 110,35,110+N,195+N
Next N
Get Image 2006,0,0,256,256
Set Current Bitmap 0
Delete Bitmap 1
For ObjNum = StartObjNumber To StartObjNumber+(NumDice-1)
Offset#=DiceSize#/2.0: MeshNum=2000: PlainNum=2000
Make Object Cube ObjNum,DiceSize#
Make Object Plain PlainNum,DiceSize#,DiceSize#
Make Mesh From Object MeshNum,PlainNum
ADD LIMB ObjNum,1,2000: Offset Limb ObjNum,1,0,0,0.0-Offset#: Rem Cube Side 1 (Front)
ADD LIMB ObjNum,2,2000: Rotate Limb ObjNum,2,0,90,0: Offset Limb ObjNum,2,0.0-Offset#,0,0: Rem Cube Side 2 (Left)
ADD LIMB ObjNum,3,2000: Rotate Limb ObjNum,3,0,180,0: Offset Limb ObjNum,3,0,0,Offset#: Rem Cube Side 3 (Back)
ADD LIMB ObjNum,4,2000: Rotate Limb ObjNum,4,0,270,0: Offset Limb ObjNum,4,Offset#,0,0: Rem Cube Side 4 (Right)
ADD LIMB ObjNum,5,2000: Rotate Limb ObjNum,5,270,0,0: Offset Limb ObjNum,5,0,0.0-Offset#,0: Rem Cube Side 5 (Bottom)
ADD LIMB ObjNum,6,2000: Rotate Limb ObjNum,6,90,0,0: Offset Limb ObjNum,6,0,Offset#,0: Rem Cube Side 6 (Top)
Delete Mesh MeshNum
Delete Object PlainNum
Hide Limb ObjNum,0
Texture LIMB ObjNum,1,2005: Texture LIMB ObjNum,2,2006
Texture LIMB ObjNum,3,2002: Texture LIMB ObjNum,4,2001
Texture LIMB ObjNum,5,2003: Texture LIMB ObjNum,6,2004
Next ObjNum
EndFunction
1.The second and third die dont totate too well.
2.How do i store the number on the face of each dice so i can do the math and compare it to the num2beat variable.
If anyone could help me i would appreciate it, and if not then i will try my best to finish it. This is barely the second challenge i enter, even though i have been following them since the beggining, but i didnt enter my other entries because they were just really bad. Hopefully this one is all right.
Future programming master.