Login
Mini Mars Plus
Title:Mini Mars Plus
Category:Game/Landing
Release Date:
Language:English
Size:16K
Machine:PAL & NTSC
Code Type:Basic
Distribution:Freeware
Game ending type:(n/a)
 Play Online!
Code by:raze
Notes: 
  External links:
    itch.io

No votes yet.
Mini Mars Plus Screenshot


Compos
ComposCategoryRankScoreNotes
BASIC 10 Liners 2023PUR-12084.40


Description
===================================
M I N I M A R S P L U S
===================================
Title: Mini Mars Plus
Platform: Commodore Plus/4
Author: Giuseppe Mignogna
Language: BASIC 3.5
Category: PUR-120
===================================


Intro
-------------------
This game has been written using CBM prg Studio 3.13. It has been tested with the emulators Yape 1.2.1 and Plus4emu 1.2.9.2. Vice should be OK too, but I didn't try it. The original .prg file has been compiled using Austrospeed for Plus4. Source and compiler are available in the folder "source".


How to run
-------------------
To run it, simply drag and drop the .d64 file into Yape -OR- attach it to drive 8, type DLOAD"MMP" and then type RUN.


How to play
-------------------
To play, use a joystick in port 2 (left, right and fire). The goal of the game is to smoothly land the spacecraft on the ground base. Values of Angle of inclination (A), Vertical velocity (V) and Angular Velocity (VA) must be kept as lower as possible and will be shown if you crash.


Code
-------------------
========================================
COMPRESSED CODE MAX 120 CHARS PER LINE
========================================

1colO0,1:colO1,6:colO4,1:sC:chA1,0,0,"minimars+ by giuseppe mignogna 2023     use joy 2 - wait...":dIc(1,200)
2vO8:fOy=0to99:r=6.22*y/99:c(1,y)=sI(r)*6:c(1,y+100)=c(1,y):c(0,y)=cos(r)*6:c(0,y+100)=c(0,y):chA1,19,1,stR(y):nE
3colO1,3,5:gR1,1:x=160:y=50:vx=0:vy=0:a=0:d=0:q=0:w=0:e=0:j=0:b=rN(0)*280:bO1,b,190,b+40,199:dR1,0,190to319,190:colO1,2
4j=jO(2):ifj>127tHvx=vx+c(1,a)/10:vy=vy-c(0,a)/10::k=rN(0)*0.5+1.5:j=j-128:sO3,0,0:sO3,550,10
5q=x:w=y:e=a:ifj=3tHd=d+0.5:sO3,0,0:sO3,750,5:eLifj=7tHd=d-0.5:sO3,0,0:sO3,750,5
6cI0,q,w,3,6,,,e*3.63,120:f=e+50:dR0,q+c(1,f),w-c(0,f)toq+c(1,f)*u,w-c(0,f)*u:a=a+d:ifa>99tHa=0:eLifa<0tHa=99
7x=x+vx:y=y+vy:vy=vy+0.1:cI1,x,y,3,6,,,a*3.63,120:ifk<>0tHf=a+50:dR1,x+c(1,f),y-c(0,f)tox+c(1,f)*k,y-c(0,f)*k:u=k:k=0
8ifx<-10orx>330ory<-10tHsO3,300,100:chA1,0,0,"ouch! a:"+stR(a)+" v:"+stR(vy)+" va:"+stR(d):sO3,100,50:gO3:eLify>184tH10
9gO4
10ifx>baNx95)aNvy<2aNaB(d)<2tHchA1,0,0,"well done!":sO1,400,10:sO1,600,40:gO3:eLx=-20:gO8



========================================
UNCOMPRESSED CODE
========================================

1color0,1:color1,6:color4,1:scnclr:char1,0,0,"minimars+ by giuseppe mignogna 2023     use joy 2 - wait...":dimc(1,200)
2vol8:fory=0to99:r=6.22*y/99:c(1,y)=sin(r)*6:c(1,y+100)=c(1,y):c(0,y)=cos(r)*6:c(0,y+100)=c(0,y):char1,19,1,str$(y):next
3color1,3,5:graphic1,1:x=160:y=50:vx=0:vy=0:a=0:d=0:q=0:w=0:e=0:j=0:b=rnd(0)*280:box1,b,190,b+40,199:draw1,0,190to319,190:color1,2
4j=joy(2):ifj>127thenvx=vx+c(1,a)/10:vy=vy-c(0,a)/10::k=rnd(0)*0.5+1.5:j=j-128:sound3,0,0:sound3,550,10
5q=x:w=y:e=a:ifj=3thend=d+0.5:sound3,0,0:sound3,750,5:elseifj=7thend=d-0.5:sound3,0,0:sound3,750,5
6circle0,q,w,3,6,,,e*3.63,120:f=e+50:draw0,q+c(1,f),w-c(0,f)toq+c(1,f)*u,w-c(0,f)*u:a=a+d:ifa>99thena=0:elseifa<0thena=99
7x=x+vx:y=y+vy:vy=vy+0.1:circle1,x,y,3,6,,,a*3.63,120:ifk<>0thenf=a+50:draw1,x+c(1,f),y-c(0,f)tox+c(1,f)*k,y-c(0,f)*k:u=k:k=0
8ifx<-10orx>330ory<-10thensound3,300,100:char1,0,0,"ouch! a:"+str$(a)+" v:"+str$(vy)+" va:"+str$(d):sound3,100,50:goto3:elseify>184then10
9goto4
10ifx>bandx95)andvy<2andabs(d)<2thenchar1,0,0,"well done!":sound1,400,10:sound1,600,40:goto3:elsex=-20:goto8



Code explanation
-------------------
Line 1: sets colors; prints a message; initializes the array c
Line 2: precalculates valus for sin and cosin (100 values)
Line 3: opens the graphic screen; sets some variables; draws the ground and the base at a random position
Line 4: checks if fire has been pressed and increases the velocity value; var. k keeps the lenght of rocket fire
Line 5: stores spacecraft old position; checks if left or right joy has been pressed and increaes or decreases angular velocity
Line 6: deletes old spacecraft and rocket fire; updates angular inclination
Line 7: updates spacecraft position; draws spacecraft and rocket fire at new position
Line 8: checks if the spacecraft is going to outer space
Line 9: go back to line 4
Line 10: checks if the spacecraft succesfully landed or crashed

Copyright © Plus/4 World Team, 2001-2024