' fibonacci series in micro(A)
var a, b, s, i ,n ,x ,y,r
str fbs,noe
fbs="fibonacci sequence in micro(A)"
wcolor 0,0,0 : fcolor 220,180,100
noe = "number of elements ->"
print 380,10,fbs
fcolor 80,140,120
print 380,30,noe
fcolor 100,200,200
a = 1
b = 1
n = 20
y = 50
label start
s = a + b
print 500,y,s
y = y + 20
a = b
b = s
i = i + 1
r=s/3.14
circle y,s,r : circle n,s,r : swap
if i < 23
goto start
endif
Code: (Select All)
'factorial micro(A)
var value,res
var number ,fact
number = 7
fact = 1
value = 1
print 10, 10, "The factorial of -> " :
print 180,10,number :swap
if value < number
value = value + 1
fcolor 140,180,220: rect 95,95,80,23: print 100,100,value :swap
fact = fact * value
fcolor 240,180,120: rect 95,195,80,23 : print 100,200,fact :swap
' recursive call
factorial()
endif
The game you apparently didn't like was the one my friend failed to translate to micro(A).
It's simply because it needs more LOC to give the illusion of animation. Such as pressing [9] key, the ship moves down the lane and the player sees all nine steps of it. Put a starry background and make it move as part of the illusion.
But it was meant to be a simple game. Not for some slob to steal it without making any modification to it except the "original author" comment at the top.
This was sort of based on another game which was about cars instead. Not really a race. But the "aliens" were drunk drivers determined to crash into the player's car. The player's car could move vertically in that other game but not very far ahead, it was sort of like the ship in Centipede. Also this was more or less like "Demolition Derby", my favorite Tandy Color Computer cartridge.
07-29-2023, 07:45 PM (This post was last modified: 07-29-2023, 07:52 PM by bplus.)
(07-29-2023, 07:07 PM)mnrvovrfc Wrote: The game you apparently didn't like was the one my friend failed to translate to micro(A).
It's simply because it needs more LOC to give the illusion of animation. Such as pressing [9] key, the ship moves down the lane and the player sees all nine steps of it. Put a starry background and make it move as part of the illusion.
But it was meant to be a simple game. Not for some slob to steal it without making any modification to it except the "original author" comment at the top.
This was sort of based on another game which was about cars instead. Not really a race. But the "aliens" were drunk drivers determined to crash into the player's car. The player's car could move vertically in that other game but not very far ahead, it was sort of like the ship in Centipede. Also this was more or less like "Demolition Derby", my favorite Tandy Color Computer cartridge.
If you are talking to me, I didn't like it because it didn't work. The digit keys didn't respond nor the shift keys???
And my code started from scratch trying to figure out what roquedrivel was trying to accomplish. So nobody let alone slobs was stealing noth'n.
Check it out, I was just guessing at how it might have worked:
Code: (Select All)
_Title "roquedrivel Game" ' b+ 2023-07-28
DefLng A-Z ' make all variables long
Width 40
debug = 0 ' this is for checking things along the way
rightBoundary = 10
playerX = 5: playerY = 25: player$ = "A"
gateX = Rand(10): gateY = 25 - Rand(13): gate$ = "X" ' not installed yet
Dim As Long badX(1 To 4), badY(1 To 4) ' baddies locates
bad$ = "V"
GoSub ReassignBaddies
'If debug Then Sleep 'check progress
Do
Cls ' then display current status
For i = 1 To 25
Locate i, 11: Print Chr$(179);
Next
Locate 12, 15: Print "Score:"; score
For i = 1 To 4 ' draw baddies then move them unless a collision with player
If playerX = badX(i) And playerY = badY(i) Then
player$ = "*": score = score - 1
Locate playerY, playerX: Print player$
Sound 600, 4
Else
Locate badY(i), badX(i): Print bad$;
End If
If Rand(60) < 5 Then badY(i) = badY(i) + 1
If badY(i) > 25 Then
restart2:
r = Rand&(10)
For j = 1 To 4 ' find a new lane
If j <> i Then
If badX(j) = r Then GoTo restart2 ' find another lane this one is used
End If
Next
badX(i) = r: badY(i) = 1 ' give the bad(i) a new start
End If
Next
Locate playerY, playerX: Print player$; ' wait for player to do something
If player$ = "*" Then
playerY = 25: player$ = "A"
GoSub ReassignBaddies
ElseIf playerY = 1 Then
GoSub ReassignBaddies
score = score + 1
playerY = 25
Else
kh = _KeyHit
If kh >= 48 And kh <= 57 Then ' digits 1 to 9, 0 = 10
move = kh - 48
If move = 0 Then move = 10
If (playerY - move) < 1 Then Beep: GoTo skip
For i = 1 To move
For b = 1 To 4
If playerY - i = badY(b) And playerX = badX(b) Then Beep: GoTo skip
Next
Next
playerY = playerY - move
skip:
ElseIf kh = 19200 Then ' left arrow
If playerX - 1 < 1 Then Beep Else playerX = playerX - 1
ElseIf kh = 19712 Then ' right arrow
If playerX + 1 > rightBoundary Then Beep Else playerX = playerX + 1
ElseIf kh = 27 Then
End
End If
End If
_Limit 30 ' loop 30 times a sec 2 secs = 60 frames
Loop
End
ReassignBaddies:
badX(1) = Rand&(10): badY(1) = 1
For i = 2 To 4 ' assign a lane
restart:
r = Rand&(10)
For j = 1 To i - 1
If badX(j) = r Then GoTo restart ' find another lane this one is used
Next
badX(i) = r: badY(i) = 1 ' give the baddies a place
If debug Then Print i; badX(i); badY(i) ' check progress
Next
Return
Function Rand& (maxnum As Long) ' 1 to maxnum inclusive
Rand& = Int(Rnd * maxnum + 1)
End Function
After I posted, I learn the ship was supposed to stay at bottom of screen, yikes!
I just need explanation why _keydown(37) not work in qb64
it should work ..not with some crazy constant which don't have nothing
with virtual key codes ?
The thing was either to press a key to type a numeral, or use one of the [SHIFT] keys to nudge the ship sideways. Not to try to type "%" or other such character which requires [SHIFT].
The game should have used _KEYDOWN for all keystroke handling. "roquedrivel" isn't patient for stuff like that but otherwise would have had to program for the left and right arrow keys.
Remember that on this topic we're supposed to contribute micro(A) programs only. "roquedrivel" decided to offer one "they" were working on in QB64 which became too much to change so it runs on micro(A), but because micro(A) has nothing like SCREEN 0.
Many games for the ancient Atari, Tandy, Timex etc. computers were austere like this, but people went crazy for it at least during the late 1970's while BASIC was a hot topic. Then there was the need to use assembly language to make it faster, to use graphics mode, to employ sprites, to make it sound off... make it more complicated so it could be sold for money instead of remaining printed in a magazine.
On this forum I can't find a good game that JDJ did some months ago, which was a car race. It was different from mine, but I can't find my topic neither. That does real vertical scrolling and the player has to remain within the lane, besides watching out for obstacles.