Skip to content

Tron


Tron was my first graphics game in high school finished in ’90. It was written in Turbo Pascal with CGA graphics using a 286. I had to write my own editors – graphics, map, item. All of it was self taught since nobody I knew could program. I basically had to “reinvent” things like sprites. I also wrote two text adventure games for the Apple IIe in Basic before attempting my first graphics game. The game is loosely modeled after Ultima ][ on Apple IIe but using the Tron universe. The player can ride vehicles (LightCycle, Intercepter), battle monsters, ride across the grid, explore IO towers (towns). The goal is to defeat the MCP by finding keycards to reprogram and destroy it.

procedure use;
var i:byte;
begin
 println('Use: 1.probe 2.nullifier 3.bar 4.cloak 5.flask');
 print('number: ');
 ans:=readkey;
 case ans of
     '1':begin
         if (hero.power[1]>0) and (hero.items[1]) then
            begin
             println('a key apears.');
             dec(hero.power[1]);
             inc(hero.keys);
            end
         else
         println('out of blue power or no probe.');
         end;
    '2':begin
         if not hero.items[3] then begin
            println('no nullifier.');
            exit;
         end;
         print('Dir: ');
         i:=getdir;
         case i of
            1:if (hero.items[3]) and (map[hero.x,hero.y-1,1]=2) and (hero.power[4]>0) then
             begin
                dec(hero.power[4]);
                hitsound;
                map[hero.x,hero.y-1,1]:=5;
                map[hero.x,hero.y-1,2]:=52;
                map[hero.x,hero.y-1,3]:=0;
                println('');
             end
            else
             begin
                println('');
                println('out of power,no nullifier, or no wall.');
             end;
         2:if (hero.items[3]) and (map[hero.x+1,hero.y,1]=2) and (hero.power[4]>0) then
             begin
                dec(hero.power[4]);
                hitsound;
                map[hero.x+1,hero.y,1]:=5;
                map[hero.x+1,hero.y,2]:=52;
                map[hero.x+1,hero.y,3]:=0;
                println('');
             end
            else
             begin
                println('');
                println('Out of power,no nullifier,or no wall.');
             end;
         3:if (hero.items[3]) and (map[hero.x,hero.y+1,1]=2) and (hero.power[4]>0) then
             begin
                dec(hero.power[4]);
                hitsound;
                map[hero.x,hero.y+1,1]:=5;
                map[hero.x,hero.y+1,2]:=52;
                map[hero.x,hero.y+1,3]:=0;
                println('');
             end
         else
            begin
             println('');
             println('Out of power,no nullifier,or no wall.');
            end;
         4:if (hero.items[3]) and (map[hero.x-1,hero.y,1]=2) and (hero.power[4]>0) then
             begin
                dec(hero.power[4]);
                hitsound;
                map[hero.x-1,hero.y,1]:=5;
                map[hero.x-1,hero.y,2]:=52;
                map[hero.x-1,hero.y,3]:=0;
                println('');
             end
            else
            begin
             println('');
             println('Out of power,no nullifier,or no wall.');
            end;
         end;
     end;
    '3':if (hero.items[4]) and (map[hero.x,hero.y,2]=0) then
                 begin
                    map[hero.x,hero.y,2]:=46;
                    println('a light cycle appears around you.');
                    board;
                 end
                 else if (map[hero.x,hero.y,2]<>0) and (hero.items[4]) then
                    begin
                     println('obstructed.');
                     exit;
                    end
                 else
                    begin
                     println('no steering bar.');
                     exit;
                 end;
    '4':if (hero.items[7]) and (hero.power[2]>0) then
        begin
         println('You don the camoflage cloak.');
         hero.camoon:=true;
         hero.camotime:=100;
         dec(hero.power[2]);
        end
        else println('Out of red power or no cloak.');
    '5':if hero.flasks>0 then begin
             dec(hero.flasks);
             hero.hits:=hero.hitmax;
             println('you feel much better.');
            end
            else println('no more flasks.');
     else begin println('what?'); exit; end;
    end;
    statusscreen;
end;