All pastes #25501 Raw Edit

Unnamed

public text v1 · immutable
#25501 ·published 2005-10-14 18:32 UTC
rendered paste body
View.Set ("graphics:600,300;position:center,center;nocursor")

var lgTahoma : int := Font.New ("tahoma:16")
var smTahoma : int := Font.New ("tahoma:10")
var chars : array char of boolean

proc Intro (var players : int)
    drawfill (0, 0, green, green)
    Font.Draw ("Welcome to the D'OC Racetrack!", 170, 275, lgTahoma, yellow)
    loop
        exit when hasch
        delay (50)
    end loop
    Input.Flush
    locate (5, 1)
    colorback (green)
    color (yellow)
    loop
        put "How many players?"
        get players
        exit when players <= 4 and players >= 1
        if players > 4 then
            put "4 players maximum."
        elsif players <= 0 then
            put "Must have at least one player"
        end if
    end loop
    cls
end Intro

proc updateHUD (money : array 1 .. * of int)
    drawfillbox (10, 250, 120, 280, green)
    for i : 1 .. upper (money)
        Font.Draw ("Player " + intstr (i) + ": $" + intstr (money (i)), 10, 260 - (i * 15), smTahoma, yellow)
    end for
end updateHUD

proc newRace (var money : array 1 .. * of int, horses : array 1 .. 6 of int, var betAmount : array 1 .. * of int, var horseNum : array 1 .. * of int)
    Font.Draw ("The D'OC Racetrack", 180, 275, lgTahoma, yellow)
    updateHUD (money)
    for i : 1 .. 6
        drawfillbox (375, 100 + (i * 24), 400, 100 + (i * 24) + 25, i)
        drawbox (374, 100 + (i * 24) - 1, 401, 100 + (i * 24) + 26, black)
        Font.Draw (intstr (i), 385, 107 + (i * 24), smTahoma, white)
    end for
    for i : 1 .. upper (money)
        drawfillbox (420, 245, 500, 265, green)
        Font.Draw ("Player " + intstr (i) + ", choose a horse:", 420, 250, smTahoma, yellow)
        loop
            Input.KeyDown (chars)
            if chars ('1') then
                horseNum (i) := 1
            elsif chars ('2') then
                horseNum (i) := 2
            elsif chars ('3') then
                horseNum (i) := 3
            elsif chars ('4') then
                horseNum (i) := 4
            elsif chars ('5') then
                horseNum (i) := 5
            elsif chars ('6') then
                horseNum (i) := 6
            end if
        end loop
    end for
end newRace

% ------------------------------ MAIN PROGRAM LOOP ----------------------------
var racing : boolean := false
var players : int
var horses : array 1 .. 6 of int := init (1, 2, 3, 4, 5, 6)

Intro (players)

var money : array 1 .. players of int
var bet, horseChoice : array 1 .. players of int

for i : 1 .. upper (money)
    bet (i) := 0
    horseChoice (i) := 0
    locate (5, 1)
    colorback (green)
    color (yellow)
    put "How much money does player ", i, " have? $" ..
    get money (i)
    cls
end for
newRace (money, horses, bet, horseChoice)