fcolor 180,100,50 : rect 306,512,56,24 : print 310,514, tmpx
fcolor 180,100,50 : rect 406,512,56,24 : print 410,514, tmpy
'show cell number
fcolor 50,170,100 : rect 206,512,56,24 : print 210,514, tmpCell
if tmpCell = bushCell
energy = energy - 1
fcolor 50,170,100 : rect 206,482,56,24 : print 210,484,energy
ix = ix + 32 ' move player one cell
endif
if tmpCell = bushCell1
energy = energy - 1
fcolor 50,170,100 : rect 206,482,56,24 : print 210,484,energy
ix = ix + 32 ' move player one cell
endif
if tmpCell = bushCell2
energy = energy - 1
fcolor 50,170,100 : rect 206,482,56,24 : print 210,484,energy
ix = ix + 32 ' move player one cell
endif
if tmpCell = bushCell3
energy = energy - 1
fcolor 50,170,100 : rect 206,482,56,24 : print 210,484,energy
ix = ix + 32 ' move player one cell
endif
if tmpCell = bushCell4
energy = energy - 1
fcolor 50,170,100 : rect 206,482,56,24 : print 210,484,energy
ix = ix + 32 ' move player one cell
endif
if tmpCell = bushCell5
energy = energy - 1
fcolor 50,170,100 : rect 206,482,56,24 : print 210,484,energy
ix = ix + 32 ' move player one cell
endif
if tmpCell = bushCell6
energy = energy - 1
fcolor 50,170,100 : rect 206,482,56,24 : print 210,484,energy
ix = ix + 32 ' move player one cell
endif
if tmpCell = bushCell7
energy = energy - 1
fcolor 50,170,100 : rect 206,482,56,24 : print 210,484,energy
ix = ix + 32 ' move player one cell
endif
pcx = pcx + 32
'modulus operator work
cell = (i % 24)*24
if cell = i : pcy = pcy + 32 :pcx = 0 : endif
'check bush positions
if bushCell = i : plants[i] = 0 : endif
if bushCell1 = i : plants[i] = 0 : endif
if bushCell2 = i : plants[i] = 0 : endif
if bushCell3 = i : plants[i] = 0 : endif
if bushCell4 = i : plants[i] = 0 : endif
if bushCell5 = i : plants[i] = 0 : endif
if bushCell6 = i : plants[i] = 0 : endif
'eat plant..?
if tmpCell = i : plants[i] = 0 : endif
i = i + 1
wend
endfn
func fillPlants()
'fill plants array with rand 0 or 1
i=1
while i < 361
plants[i] = rand(1)
i = i + 1
wend
endfn
'*********************************************
'*** I N F O ******************************
'*********************************************
func info()
'clear screen
fcolor 0,0,0 : rect 6,518,200,32 :
fcolor 200,180,100: print 10,530,"SantaCut by Aurel"
fcolor 50,190,100 : print 140,484,"ENERGY:"
print 140,514,"CELL:"
rect 206,482,56,24 : print 210,484,energy
fcolor 180,100,50 : print 270,514,"ROW:" : print 370,514,"COL:"
endfn
12-26-2025, 01:14 PM (This post was last modified: 12-26-2025, 01:16 PM by bplus.)
Yeah vince had the QB64 version of that with the star last year at least:
Code: (Select All)
Dim Shared pi, sw, sh, d, z0, p, q
pi = 4 * Atn(1)
d = 700
z0 = 2500
sw = 800
sh = 600
Dim As Double a, b, x, y, z, xx, yy, zz
Screen _NewImage(sw, sh, 32)
Do
b = b + 0.03
Cls
'tree
For a = 0 To 20 * 2 * pi Step 0.1
x = 5 * a * Cos(a)
y = -a * 10
z = 5 * a * Sin(a)
yy = (y + 350) * Cos(b) - z * Sin(b)
zz = (y + 350) * Sin(b) + z * Cos(b)
y = yy - 350
z = zz
xx = x * Cos(b) - z * Sin(b)
zz = x * Sin(b) + z * Cos(b)
x = xx
z = zz
xx = x * Cos(b) - (y + 350) * Sin(b)
yy = x * Sin(b) + (y + 350) * Cos(b)
x = xx
y = yy - 350
proj x, y, z
Circle (p, q), 1, _RGB(0, 155, 0)
Next
'star a pixel at a time
For a = 0 To 6 * pi Step 0.1
rr = 100
r = 60
x = (rr - r) * Cos(a + pi / 4) + 70 * Cos(((rr - r) / r) * a)
y = 50 + (rr - r) * Sin(a + pi / 4) - 70 * Sin(((rr - r) / r) * a)
z = 0
yy = (y + 350) * Cos(b) - z * Sin(b)
zz = (y + 350) * Sin(b) + z * Cos(b)
y = yy - 350
z = zz
xx = x * Cos(b) - z * Sin(b)
zz = x * Sin(b) + z * Cos(b)
x = xx
z = zz
xx = x * Cos(b) - (y + 350) * Sin(b)
yy = x * Sin(b) + (y + 350) * Cos(b)
x = xx
y = yy - 350
proj x, y, z
Circle (p, q), 1, _RGB(255, 255, 0)
Next
_Display
_Limit 50
Loop
Sub proj (x, y, z)
p = sw / 2 + x * d / (z + z0)
q = sh / 2 - (100 + y) * d / (z + z0) - 150
End Sub