packages feed

swarm-0.5.0.0: data/scenarios/Testing/1535-ping/_1535-in-range/buddy.sw

def doN = \n. \f. if (n > 0) {f; doN (n - 1) f} {}; end;

def waitForMap =
    mapPieceCount <- count "map piece";
    if (mapPieceCount < 2) {
        wait 1;
        waitForMap;
    } {};
    end;

def randomReverse =
    x <- random 2;
    if (x == 0) {
        turn back;
    } {}
    end;

def goToTreasure = \dirMin. \dirMax.
    let randAmplitude = dirMax - dirMin in

    xRand <- random randAmplitude;
    let xDist = dirMin + xRand in
    randomReverse;
    doN xDist move;

    turn left;

    yRand <- random randAmplitude;
    let yDist = dirMin + yRand in
    randomReverse;
    doN yDist move;

    place "bitcoin";
    end;

def go =
    waitForMap;
    goToTreasure 10 40;
    end;

go;