previndexinfo

code guessing, round #86, stage 2 (guessing)

started at ; stage 2 since . guess by

specification

essaie won. guess what? make recamán's sequence. submissions can be written in any language.

take this recurrence relation:

a(n) = 0 if n = 0, a(n-1) - n if a(n-1) - n > 0 and is not already in the sequence, a(n-1) + n otherwise

produce it. that's your challenge. good luck.

players

  1. *Ada
  2. Dolphy
  3. essaie
  4. GNU Radio Shows
  5. haru~
  6. hyacinth
  7. Indigo
  8. jetison333
  9. JJRubes
  10. kimapr
  11. LyricLy
  12. Makefile_dot_in
  13. minecalftree
  14. oleander
  15. olive
  16. Olivia
  17. rrebbbbeca
  18. seshoumara
  19. taswelll

entries

you can download all the entries

entry #1

comments 0

post a comment


what.for ASCII text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
Program recaman
integer :: array(100)
array(1) = 0
do n = 2, 100
  if (array(n-1)-n < 1) then
    array(n) = array(n-1)+n-1
  else
    array(n) = array(n-1)-n+1
  end if
  do i = 1, n-1
    if (array(n) == array(i)) then
      array(n) = array(n-1)+n-1
      exit
    end if
  end do
end do
print *, array
End Program recaman

entry #2

comments 0

post a comment


raccaman.py ASCII text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
import re

n = int(input("n: "))
n = max(n, 0)

raccamanno = ""  # very efficient; very demure
"""
@params: doing this correctly for sure
@raise: a child
"""
raccamanno += "0"

for i in range(1, n+1):  # rangers are the best class in DND 5e
    dernier = int(re.search(r"\.?(\d+)$", raccamanno).group(1))
    chercher = r"(?:\b|\.)" + str(dernier - i) + r"(?:\b|\.)"
    if dernier - i > 0 and re.search(chercher, raccamanno) is None:
        raccamanno += f".{dernier - i}"
    else:
        raccamanno += f".{dernier + i}"

print(re.sub(r"\.", ", ", raccamanno))

entry #3

comments 0

post a comment


dir src
main.zig ASCII text
1
2
3
4
5
6
7
8
9
const std = @import("std");
const cg86 = @import("cg86");

pub fn main() !void {
    var args = std.process.args();
    _ = args.next();
    const n = try std.fmt.parseInt(usize, args.next() orelse "93", 10);
    try cg86.freakyRecaca(n);
}
root.zig ASCII text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
const std = @import("std");
const set = @import("ziglangSet");

pub fn freakyRecaca(N: usize) !void {
    // gangster language has an arena alloc
    var arena = std.heap.ArenaAllocator.init(std.heap.page_allocator);
    defer arena.deinit();
    const alloc = arena.allocator();
    var a = set.Set(i64).init(alloc);

    _ = try a.add(0); // if n = 0
    std.debug.print("{0}, ", .{0});

    var last: i64 = 0;
    for (1..N) |n| {
        // the lionness does not concern herself with overflowing numbers
        const ni: i64 = @intCast(n);
        var c: i64 = last - ni;
        if (c < 0 or !try a.add(c)) { // inverse of "if a(n-1) - n > 0 and is not already in the sequence"
            c = last + ni;
            _ = try a.add(c); // "otherwise"
        }

        std.debug.print("{0}, ", .{c});
        last = c;
    }

    std.debug.print("... \n", .{});
}
build.zig ASCII text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
const std = @import("std");

pub fn build(b: *std.Build) void {
    const target = b.standardTargetOptions(.{});
    const optimize = b.standardOptimizeOption(.{});

    // why does zig std not have a set?!??!
    const ziglangSet = b.dependency("ziglangSet", .{});

    const mod = b.addModule("cg86", .{
        .root_source_file = b.path("src/root.zig"),
        .target = target,
        .imports = &.{
            .{ .name = "ziglangSet", .module = ziglangSet.module("ziglangSet") },
        },
    });

    const exe = b.addExecutable(.{
        .name = "cg86",
        .root_module = b.createModule(.{
            .root_source_file = b.path("src/main.zig"),
            .target = target,
            .optimize = optimize,
            .imports = &.{
                .{ .name = "cg86", .module = mod },
            },
        }),
    });

    b.installArtifact(exe);

    const run_step = b.step("run", "Run the app");
    const run_cmd = b.addRunArtifact(exe);
    run_step.dependOn(&run_cmd.step);
    run_cmd.step.dependOn(b.getInstallStep());

    if (b.args) |args| {
        run_cmd.addArgs(args);
    }
}
build.zig.zon ASCII text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
.{
    .name = .cg86,
    .version = "0.0.0",
    .fingerprint = 0x9d6a7336db41801e,
    .minimum_zig_version = "0.15.1",
    .dependencies = .{
        // and why do i have to depend on a fork?!?!
        .ziglangSet = .{
            .url = "https://github.com/cyberegoorg/ziglang-set/archive/5fb63d308b6ae64bead91372dc2e224ef8575244.tar.gz",
            .hash = "ziglangSet-0.0.1-VUjv0hoUAgAxi3Zu4l_6QRnST7KqzKJW9n0FV1WKfweT",
        },
    },
    .paths = .{
        "build.zig",
        "build.zig.zon",
        "src",
    },
}

entry #4

comments 0

post a comment


it.png PNG image data, 2127 x 378, 8-bit/color RGBA, non-interlaced

entry #5

comments 0

post a comment


machine.vhd ASCII text, with CRLF line terminators
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
library ieee;
use ieee.std_logic_1164.all;
use ieee.numeric_std.all;

entity ram is port(
	clk : in std_logic;
	we : in std_logic;
	a : in std_logic_vector(12 downto 0);
	di : in std_logic_vector(7 downto 0);
	do : out std_logic_vector(7 downto 0)
);
end ram;

architecture classical of ram is
	type memory is array (8191 downto 0) of std_logic_vector(7 downto 0);
	signal RAM : memory;
begin
	process(clk)
	begin
		if (rising_edge(clk) and we = '1') then
			RAM(to_integer(unsigned(a))) <= di;
			do <= di;
		else
			do <= RAM(to_integer(unsigned(a)));
		end if;
	end process;
end classical;


library ieee;
use ieee.std_logic_1164.all;

entity adder1 is
port (
	x, y, z: in std_logic;
	o, c: out std_logic
);
end adder1;

architecture romanesque of adder1 is
begin
	o <= x xor y xor z;
	c <= (x and y) or (y and z) or (x and z);
end romanesque;


library ieee;
use ieee.std_logic_1164.all;

entity adder16 is
port (
	ci : in std_logic;
	co : out std_logic;
	a : in std_logic_vector(15 downto 0);
	b : in std_logic_vector(15 downto 0);
	o : out std_logic_vector(15 downto 0)
);
end adder16;

architecture gothic of adder16 is
	signal c : std_logic_vector(16 downto 0);
begin
	c(0) <= ci;
	
	adders: for i in 0 to 15 generate
		ax: entity work.adder1 port map(a(i), b(i), c(i), o(i), c(i+1));
	end generate;

	co <= c(16);
end gothic;


library ieee;
use ieee.std_logic_1164.all;

entity mux8 is
port (
	i: in std_logic_vector(7 downto 0);
	sel: in std_logic_vector(2 downto 0);
	o: out std_logic
);
end mux8;

architecture renaissance of mux8 is
begin
	with sel select o <=
		i(7) when "111",
		i(6) when "110",
		i(5) when "101",
		i(4) when "100",
		i(3) when "011",
		i(2) when "010",
		i(1) when "001",
		i(0) when "000",
		'0' when others;
end renaissance;


library ieee;
use ieee.std_logic_1164.all;

entity dec8 is
port (
	i: in std_logic_vector(2 downto 0);
	o: out std_logic_vector(7 downto 0)
);
end dec8;

architecture baroque of dec8 is
begin
	with i select o <=
		"00000001" when "000",
		"00000010" when "001",
		"00000100" when "010",
		"00001000" when "011",
		"00010000" when "100",
		"00100000" when "101",
		"01000000" when "110",
		"10000000" when "111",
		"00000000" when others;
end baroque;



library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity recaman is
port (
	clk : in std_logic;
	rst : in std_logic;
	oe : out std_logic;
	do : out std_logic_vector(15 downto 0)
);
end recaman;

architecture modernist of recaman is
	
	-- I/O
	signal ramwe : std_logic;
	signal rama : std_logic_vector(12 downto 0);
	signal ramdi : std_logic_vector(7 downto 0);
	signal ramdo : std_logic_vector(7 downto 0);
	
	signal deco : std_logic_vector(7 downto 0);
	signal muxo : std_logic;
	signal choice : std_logic_vector(15 downto 0);

	signal addci : std_logic;
	signal addco : std_logic;
	signal adda : std_logic_vector(15 downto 0);
	signal addb : std_logic_vector(15 downto 0);
	signal addo : std_logic_vector(15 downto 0);

	-- Registers
	signal ctr : std_logic_vector(15 downto 0);
	signal res : std_logic_vector(15 downto 0);
	signal sub : std_logic_vector(15 downto 0);
	signal isneg : std_logic;

	-- State
	type state_type is (szero, scheck, sread, swrite);
	signal state : state_type;

begin
	RAM: entity work.ram port map(clk, ramwe, rama, ramdi, ramdo);
	ADDER: entity work.adder16 port map(addci, addco, adda, addb, addo);
	
	MUX1: entity work.mux8 port map(ramdo, sub(2 downto 0), muxo);

	DEC1: entity work.dec8 port map(res(2 downto 0), deco);

	process(clk,rst)
	begin
		if rst='1' then
			state <= szero;
		elsif rising_edge(clk) then
			case state is
				when szero => state <= scheck;
				when scheck => state <= sread;
				when sread => state <= swrite;
				when swrite => state <= szero;
			end case;
		end if;
	end process;

	do <= res;
	oe <= '1' when state=sread else '0';

	with state select adda <=
		res when szero,
		res when scheck,
		(others => '0') when sread,
		(others => 'X') when swrite;

	addb <= not ctr when state=szero else ctr;
	addci <= '0' when state=scheck else '1';

	process(state)
	begin
		if rst='1' then
			ctr <= (others => '0');
		elsif state=swrite then
			ctr <= addo; -- ctr+1
		end if;
	end process;
	
	choice <= addo when isneg='1' or muxo='1' else sub;
	
	process(state)
	begin
		if rst='1' then
			res <= (others => '0');
		end if;
		case state is
			when szero =>
				ramdi <= (others => '0');
				rama <= ctr(12 downto 0);
				ramwe <= rst or not (ctr(15) or ctr(14) or ctr(13));

			when scheck =>
				sub <= addo;
				isneg <= not addco;

				ramdi <= (others => 'X');
				rama <= addo(15 downto 3);
				ramwe <= '0';
				
			when sread =>
				res <= choice;

				ramdi <= (others => 'X');
				rama <= choice(15 downto 3);
				ramwe <= '0';

			when swrite =>
				ramdi <= ramdo or deco;
				rama <= res(15 downto 3);
				ramwe <= '1';

		end case;
	end process;


end modernist;


library ieee;
use ieee.std_logic_1164.all;
use ieee.std_logic_unsigned.all;

entity testbench is
end testbench;

architecture postmodern of testbench is
	signal clk : std_logic := '0';
	signal rst : std_logic := '1';
	signal oe : std_logic;
	signal do : std_logic_vector(15 downto 0);
begin
	clk <= not clk after 10 ns;
	rst <= '1', '0' after 100 ns;
	recaman: entity work.recaman port map(clk,rst,oe,do);
end postmodern;

entry #6

comments 0

post a comment


recamán.lua ASCII text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
-- A good sequence tells a story.
a = 0
n = 0
-- Ours is about the ups and downs of life.
resilience = {}
-- Look closely, and you can see the pattern.
repeat
	-- It starts with the auctus of the familiar.
	resilience[a] = true
	-- Next is the mortifying ideal of being known.
	print(n, a)
	-- The stakes grow, ever so slowly.
	n = n + 1
	-- They can make failure feel crushing.
	a = a - n
	-- But wisdom lets us avoid the mistakes of the past.
	if a < 0 or resilience[a] then
		-- Resilience means bouncing back and even reaching new heights.
		a = a + n + n
	end
-- Until wisdom?
until wisdom

entry #7

comments 0

post a comment


086.factor ASCII text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
! Copyright (C) 2025 Aleksander "olus2000" Sabak.
! See https://factorcode.org/license.txt for BSD license.
USING: kernel math prettyprint sequences ;
IN: esolang_games.code_guess.086

: add-to-sequence ( sequence current -- sequence current )
  tuck suffix swap ;

: subtract-n ( n sequence current -- n sequence current current-n )
  pick dupd - ;

: next-number ( n sequence current -- n sequence current )
  subtract-n pick member? [ subtract-n 0 < ] dip or [ pick + ] [ pick - ] if ;

: inc-n ( n sequence current -- n sequence current )
  rot 1 + -rot ;

: recaman-sequence ( n sequence current --  n sequence current ) 
  add-to-sequence next-number inc-n dup . ;

: n-recaman-sequence ( x -- ) 
 0 V{ } 0 4spin [ recaman-sequence ] times 3drop ;

entry #8

comments 0

post a comment


recama.nut ASCII text, with no line terminators
1
for(local a=array(999,0),i=0,d;i++<250;){d=a[i-1];a[i]=d+(d-i<1||a.find(d-i)?i:-i);print(d+"\n")}

entry #9

comments 0

post a comment


dir NewProject
dir bin
Code Guessing #86.jad ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
MIDlet-1: Code Guessing #86, /icon.png, FW
MIDlet-Jar-Size: 6785
MIDlet-Jar-URL: Code Guessing #86.jar
MIDlet-Name: Code Guessing #86
MIDlet-Vendor: MIDletPascal3
MIDlet-Icon: /icon.png
MIDlet-Version: 1.0.0
MicroEdition-Configuration: CLDC-1.0
MicroEdition-Profile: MIDP-2.0
MIDlet-Permissions: javax.wireless.messaging.sms.send
Code Guessing #86.jar data
dir classes
M.class compiled Java class data, version 45.3
dir history
Code Guessing #86.mpsrc.~0~ ASCII text, with CRLF line terminators
1
2
3
4
program Code Guessing #86;
begin

end.
Code Guessing #86.mpsrc.~100~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do delay(100);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~101~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    delay(100);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~102~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~103~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~104~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    smsStartSend('sms://' + formGetText(phoneFieldId));
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~105~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~106~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~107~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~108~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~109~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] == cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~10~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
program CodeGuessing;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~110~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand >= 0) and (numSet[idx] == cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~111~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (idx >= 0) and (numSet[idx] == cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~112~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (idx >= 0) and (numSet[idx] == cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~113~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand <= 0) or ((idx >= 0) and (numSet[idx] == cand)) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~114~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand <= 0) or ((idx >= 0) and (numSet[idx] = cand)) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~115~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand <= 0) or ((idx >= 0) and (numSet[idx] = cand)) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press OK to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;

  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~116~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand <= 0) or ((idx >= 0) and (numSet[idx] = cand)) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  exitCmd := createCommand('Exit', CM_EXIT, 1);
  pauseCmd := createCommand('Pause', CM_SCREEN, 1);
  addCommand(exitCmd);
  addCommand(pauseCmd);
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press OK to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~117~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand <= 0) or ((idx >= 0) and (numSet[idx] = cand)) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  exitCmd := createCommand('Exit', CM_EXIT, 1);
  pauseCmd := createCommand('Pause', CM_SCREEN, 1);
  addCommand(exitCmd);
  addCommand(pauseCmd);
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press OK to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  while keyToAction(getKeyClicked) <> GA_FIRE do delay(100);
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~118~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand <= 0) or ((idx >= 0) and (numSet[idx] = cand)) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  exitCmd := createCommand('Exit', CM_EXIT, 1);
  pauseCmd := createCommand('Pause', CM_SCREEN, 1);
  addCommand(exitCmd);
  addCommand(pauseCmd);
  repaint;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press OK to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  while keyToAction(getKeyClicked) <> GA_FIRE do delay(100);
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~119~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand <= 0) or ((idx >= 0) and (numSet[idx] = cand)) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  exitCmd := createCommand('Exit', CM_EXIT, 1);
  pauseCmd := createCommand('Pause', CM_SCREEN, 1);
  addCommand(exitCmd);
  addCommand(pauseCmd);
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press OK to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repaint;
  while keyToAction(getKeyClicked) <> GA_FIRE do delay(100);
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~11~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
program CodeGuessing;
var numSet : array[0..32766] of integer;

function binarySearch(num : integer);
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := 32766;
  repeat
    mid := (startidx + endidx) / 2;
    if numSet[mid] > num;
    then endidx := mid;
    else startidx := mid;
  until startidx = endidx;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~120~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand <= 0) or ((idx >= 0) and (numSet[idx] = cand)) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  exitCmd := createCommand('Exit', CM_EXIT, 1);
  pauseCmd := createCommand('Pause', CM_SCREEN, 1);
  addCommand(exitCmd);
  addCommand(pauseCmd);
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('The generation will start in 10 seconds.'#10);
  outputId := formAddString('No output yet!');
  showForm;
  delay(10000);
  while keyToAction(getKeyClicked) <> GA_FIRE do delay(100);
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~121~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand <= 0) or ((idx >= 0) and (numSet[idx] = cand)) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('The generation will start in 10 seconds.'#10);
  outputId := formAddString('No output yet!');
  showForm;
  delay(10000);
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~122~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand <= 0) or ((idx >= 0) and (numSet[idx] = cand)) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('The generation will start in 10 seconds.'#10);
  outputId := formAddString('No output yet!');
  showForm;
  delay(10000);
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~123~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand <= 0) or ((idx >= 0) and (numSet[idx] = cand)) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
      exitCmd := createCommand('Exit', CM_EXIT, 1);
    pauseCmd := createCommand('Pause', CM_SCREEN, 1);
    addCommand(exitCmd);
    addCommand(pauseCmd);
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('The generation will start in 10 seconds.'#10);
  outputId := formAddString('No output yet!');
  showForm;
  delay(10000);
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~124~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand <= 0) or ((idx >= 0) and (numSet[idx] = cand)) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('The generation will start in 10 seconds.'#10);
  outputId := formAddString('No output yet!');
  showForm;
  delay(10000);
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~125~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand <= 0) or ((idx >= 0) and (numSet[idx] = cand)) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('The generation will start in 10 seconds.'#10);
  outputId := formAddString('No output yet!');
  showForm;
  delay(10000);
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~12~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
program CodeGuessing;
var numSet : array[0..32766] of integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := 32766;
  repeat
    mid := (startidx + endidx) / 2;
    if numSet[mid] = num; then break;
    else if numSet[mid] < num then endidx := mid - 1;
    else startidx := mid;
  until startidx = endidx;
  binarySearch := endIdx;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~13~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
program CodeGuessing;
var numSet : array[0..32766] of integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := 32766;
  repeat
    mid := (startidx + endidx) / 2;
    if numSet[mid] = num; then break;
    else if numSet[mid] < num then; endidx := mid - 1;
    else startidx := mid + 1;
  until startidx = endidx;
  binarySearch := endIdx;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~14~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
program CodeGuessing;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := 32766;
  repeat
    mid := (startidx + endidx) / 2;
    if numSet[mid] = num; then break;
    else if numSet[mid] < num then; endidx := mid - 1;
    else startidx := mid + 1;
  until startidx = endidx;
  binarySearch := endIdx;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~15~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
program CodeGuessing;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := 32766;
  repeat
    mid := (startidx + endidx) / 2;
    if numSet[mid] < num then; endidx := mid;
    else startidx := mid;
  until endidx - startidx <= 2;
  binarySearch := endIdx;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~16~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
program CodeGuessing;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := 32766;
  repeat
    mid := (startidx + endidx) / 2;
    if numSet[mid] < num then; endidx := mid;
    else startidx := mid;
  until endidx - startidx <= 2;
  if numSet[startidx] = num;
  then binarySearch := startidx;
  else if numSet[endidx] = num;
  then binarySearch := endidx;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~17~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
program CodeGuessing;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := (startidx + endidx) / 2;
    if numSet[mid] < num then; endidx := mid;
    else startidx := mid;
  until endidx - startidx <= 2;
  if numSet[startidx] = num;
  then binarySearch := startidx;
  else if numSet[endidx] = num;
  then binarySearch := endidx;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~18~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
program CodeGuessing;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := (startidx + endidx) / 2;
    if numSet[mid] < num
    then; endidx := mid - 1;
    else startidx := mid + 1;
  until endidx - startidx <= 2;
  if numSet[startidx] = num;
  then binarySearch := startidx;
  else if numSet[endidx] = num;
  then binarySearch := endidx;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~19~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
program CodeGuessing;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := (startidx + endidx) / 2;
    if      numSet[mid] < num; then endidx := mid - 1;
    else if numset[mid] > num; then startidx := mid + 1;
  until endidx - startidx <= 2;
  if numSet[startidx] = num;
  then binarySearch := startidx;
  else if numSet[endidx] = num;
  then binarySearch := endidx;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~1~ ASCII text, with CRLF line terminators
1
2
3
4
program CodeGuessing;
var i : integer;
begin
end.
Code Guessing #86.mpsrc.~20~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
program CodeGuessing;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := (startidx + endidx) / 2;
    if      numSet[mid] < num; then endidx   := mid - 1;
    else if numset[mid] > num; then startidx := mid + 1;
  until endidx - startidx <= 2;
  if numSet[startidx] = num;
  then binarySearch := startidx;
  else if numSet[endidx] = num;
  then binarySearch := endidx;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~21~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
program CodeGuessing;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if      numSet[mid] < num; then endidx   := mid - 1;
    else if numset[mid] > num; then startidx := mid + 1;
    else break;
  forever;
  binarySearch := mid;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~22~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if      numSet[mid] < num; then endidx   := mid - 1;
    else if numset[mid] > num; then startidx := mid + 1;
    else break;
  forever;
  binarySearch := mid;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~23~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
         if numSet[mid] < num; then startidx := mid - 1;
    else if numset[mid] > num; then endidx   := mid + 1;
       else break;
  until startidx > endidx;
  binarySearch := mid;
end;

function insert(idx : integer, num : integer) : integer;
begin
  if realLen =

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~24~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
         if numSet[mid] < num; then startidx := mid + 1;
    else if numset[mid] > num; then endidx   := mid - 1;
       else break;
  until startidx > endidx;
  binarySearch := mid;
end;

function insert(idx : integer, num : integer) : integer;
begin
  if realLen =

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~25~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
         if numSet[mid] < num; then startidx := mid + 1;
    else if numset[mid] > num; then endidx   := mid - 1;
       else break;
  until startidx > endidx;
  binarySearch := mid;
end;

procedure insert(idx : integer, num : integer);
begin
  if realLen = 32766; then halt;

end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~26~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
      if numSet[mid] < num; then startidx := mid + 1;
    else endidx := 1;
  until startidx > endidx;
  binarySearch := mid;
end;

procedure insert(idx : integer, num : integer);
begin
  if realLen = 32766; then halt;
  for i := realLen downto idx; do numSet[i+1] = numSet[i];
  numSet[idx] = num;
end;

function nextNumber : integer;
begin
  b :=
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~27~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := 1;
  until startidx > endidx;
  binarySearch := mid;
end;

procedure insert(idx : integer, num : integer);
begin
  if realLen = 32766; then halt;
  for i := realLen downto idx; do numSet[i+1] = numSet[i];
  numSet[idx] = num;
end;

function nextNumber : integer;
begin
  b :=
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~28~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx > endidx;
  binarySearch := mid;
end;

procedure insert(idx : integer, num : integer);
begin
  if realLen = 32766; then halt;
  for i := realLen downto idx; do numSet[i+1] = numSet[i];
  numSet[idx] = num;
end;

function nextNumber : integer;
begin
  b :=
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~29~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
begin
  if realLen = 32766; then halt;
  for i := realLen downto idx; do numSet[i+1] = numSet[i];
  numSet[idx] = num;
end;

function nextNumber : integer;
begin
  b :=
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~2~ ASCII text, with CRLF line terminators
1
2
3
4
5
program CodeGuessing;
var prev : integer;
begin
  prev := 0;
end.
Code Guessing #86.mpsrc.~30~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen downto idx; do numSet[i+1] = numSet[i];
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
var b : boolean;
begin
  candidate := prev - n;
  if n = 0 then
    numSet[0] = 0;
    realLen := 1;
    prev := 0;
  else
    if candidate < 0 then
      result := prev + n;
  end;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~31~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen downto idx; do numSet[i+1] = numSet[i];
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  candidate := prev - n;
  if n = 0 then begin
    numSet[0] = 0;
    realLen := 1;
    prev := 0;
  end else if candidate < 0 then
    result := prev + n;
  else begin
    idx := binarySearch(candidate);
    if not (0 <= idx and idx < realLen); then
      result := prev + n
  end;
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~32~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen downto idx; do numSet[i+1] = numSet[i];
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  candidate := prev - n;
  if n = 0 then begin
    numSet[0] = 0;
    realLen := 1;
    prev := 0;
  end else if candidate < 0 then
    result := prev + n;
  else begin
    idx := binarySearch(candidate);
    if not (0 <= idx and idx < realLen); then
      result := prev + n
  end;
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~33~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen downto idx; do numSet[i+1] = numSet[i];
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  candidate := prev - n;
  if n = 0 then begin
    numSet[0] = 0;
    realLen := 1;
    prev := 0;
  end else if candidate < 0 then
    result := prev + n;
  else begin
    idx := binarySearch(candidate);
    if not (0 <= idx and idx < realLen); then
      result := prev + n;
    else begin
      result := prev - n;
    end
  end;
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~34~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen downto idx; do numSet[i+1] = numSet[i];
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  candidate := prev - n;
  if n = 0 then begin
    numSet[0] = 0;
    realLen := 1;
    prev := 0;
  end else if candidate < 0 then
    result := prev + n;
  else begin
    idx := binarySearch(candidate);
    if not (0 <= idx and idx < realLen and numSet[idx] = candidate); then
      result := prev + n;
    else begin
      insert(idx + 1,
      result := prev - n;

    end
  end;
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~35~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen - 1downto idx; do numSet[i+1] = numSet[i];
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  candidate := prev - n;
  if n = 0 then begin
    numSet[0] = 0;
    realLen := 1;
    prev := 0;
  end else if candidate < 0 then
    result := prev + n;
  else begin
    idx := binarySearch(candidate);
    if not (0 <= idx and idx < realLen and numSet[idx] = candidate); then
      result := prev + n;
    else begin
      insert(idx + 1,
      result := prev - n;

    end
  end;
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~36~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  realLen := realLen + 1;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  candidate := prev - n;
  if n = 0 then begin
    numSet[0] = 0;
    realLen := 1;
    prev := 0;
  end else if candidate < 0 then
    result := prev + n;
  else begin
    idx := binarySearch(candidate);
    if not (0 <= idx and idx < realLen and numSet[idx] = candidate); then
      result := prev + n;
    else begin
      insert(idx + 1,
      result := prev - n;

    end
  end;
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~37~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  realLen := realLen + 1;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  candidate := prev - n;
  if n = 0 then begin
    numSet[0] = 0;
    realLen := 1;
    prev := 0;
  end else if candidate < 0 then
    result := prev + n;
  else begin
    idx := binarySearch(candidate);
    if not (0 <= idx and idx < realLen and numSet[idx] = candidate); then
      result := prev + n;
    else begin
      insert(idx + 1,
      result := prev - n;

    end
  end;
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~38~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  candidate := prev - n;
  if n = 0 then begin
    numSet[0] = 0;
    realLen := 1;
    prev := 0;
  end else if candidate < 0 then
    result := prev + n;
  else begin
    idx := binarySearch(candidate);
    if not (0 <= idx and idx < realLen and numSet[idx] = candidate); then
      result := prev + n;
    else begin
      insert(idx + 1,
      result := prev - n;

    end
  end;
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~39~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  candidate := prev - n;
  if n = 0 then begin
    numSet[0] = 0;
    realLen := 1;
    prev := 0;
  end else if candidate < 0 then
    nextNumber := prev + n;
  else begin
    idx := binarySearch(candidate);
    if not (0 <= idx and idx < realLen and numSet[idx] = candidate); then
      result := prev + n;
    else begin
      
      result := prev - n;

    end
  end;
  insert(idx + 1, candidate);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~3~ ASCII text, with CRLF line terminators
1
2
3
4
5
6
7
program CodeGuessing;
const phoneNumber = 'sms://INSERT PHONE NUMBER HERE';
var phoneField : integer;
begin
  formAddString('Recaman sequence generator');
  formAddString('Copyright (C) 2014 LyricLyYT');
end.
Code Guessing #86.mpsrc.~40~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  candidate := prev - n;
  if n = 0 then begin
    numSet[0] = 0;
    realLen := 1;
    prev := 0;
  end else if candidate < 0 then
    nextNumber := prev + n;
  else begin
    idx := binarySearch(candidate);
    if not (0 <= idx and idx < realLen and numSet[idx] = candidate); then
      nextNumber := prev + n;
    else begin
      nextNumber := prev - n;
    end
  end;
  insert(idx + 1, candidate);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~41~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  nextNumber := prev - n;
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  if nextNumber < 0 then
    nextNumber := prev + n;
  else begin
    idx := binarySearch(candidate);
    if not (0 <= idx and idx < realLen and numSet[idx] = candidate); then
      nextNumber := prev + n;
    else begin
      nextNumber := prev - n;
    end
  end;
  insert(idx + 1, candidate);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~42~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen - 1;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0
  or not (0 <= idx and idx < realLen and numSet[idx] = nextNumber);
  then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  if nextNumber < 0 then
    nextNumber := prev + n;
  else begin
    idx := binarySearch(candidate);
    if not (0 <= idx and idx < realLen and numSet[idx] = candidate); then
      nextNumber := prev + n;
    else begin
      nextNumber := prev - n;
    end
  end;
  insert(idx + 1, candidate);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~43~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0
  or not (0 <= idx and idx < realLen and numSet[idx] = nextNumber);
  then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  if nextNumber < 0 then
    nextNumber := prev + n;
  else begin
    idx := binarySearch(candidate);
    if not (0 <= idx and idx < realLen and numSet[idx] = candidate); then
      nextNumber := prev + n;
    else begin
      nextNumber := prev - n;
    end
  end;
  insert(idx + 1, candidate);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~44~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0
  or not (0 <= idx and idx < realLen and numSet[idx] = nextNumber);
  then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;
  insert(idx, candidate);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~45~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0
  or not (0 <= idx and idx < realLen and numSet[idx] = nextNumber);
  then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, candidate);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~46~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var candidate : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 or numSet[idx] <> nextNumber; then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, candidate);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~47~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 or numSet[idx] <> nextNumber; then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~48~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 or numSet[idx] <> nextNumber; then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~49~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num; then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 or numSet[idx] <> nextNumber; then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString(nextNumber + '');
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~4~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
program CodeGuessing;

var output : array of integer;
var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  labelId := formAddString('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  repeat
    repeat clicked := getClickedCommand; until clicked = generateCmd;

  until false;
end.
Code Guessing #86.mpsrc.~50~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766; then halt;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 or numSet[idx] <> nextNumber; then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString(nextNumber + '');
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~51~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx; do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 or numSet[idx] <> nextNumber; then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString(nextNumber + '');
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~52~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 or numSet[idx] <> nextNumber; then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString(nextNumber + '');
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~53~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 or numSet[idx] <> nextNumber then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString(nextNumber + '');
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~54~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx : integer; num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 or numSet[idx] <> nextNumber then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString(nextNumber + '');
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~55~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 or numSet[idx] <> nextNumber then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString(nextNumber + '');
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~56~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 or numSet[idx] <> nextNumber then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString(nextNumber + '');
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~57~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  (* if realLen = 32766 then halt; *)
  for i := realLen - 1 downto idx do
    numSet[i+1] = numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 or numSet[idx] <> nextNumber then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString(nextNumber + '');
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~58~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  (* if realLen = 32766 then halt; *)
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] = num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 or numSet[idx] <> nextNumber then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString(nextNumber + '');
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~59~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  (* if realLen = 32766 then halt; *)
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 or numSet[idx] <> nextNumber then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString(nextNumber + '');
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~5~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
program CodeGuessing;

var output : array of integer;
var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  labelId := formAddString('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  repeat
    repeat
      clicked := getClickedCommand;
    until clicked = generateCmd;

  until false;
end.
Code Guessing #86.mpsrc.~60~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  (* if realLen = 32766 then halt; *)
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if (nextNumber < 0 or numSet[idx] <> nextNumber) then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString(nextNumber + '');
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~61~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  (* if realLen = 32766 then halt; *)
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 (*or numSet[idx] <> nextNumber*) then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~62~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  (* if realLen = 32766 then halt; *)
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if nextNumber < 0 or numSet[idx] <> nextNumber then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~63~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  (* if realLen = 32766 then halt; *)
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if (nextNumber < 0) or (numSet[idx] <> nextNumber) then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~64~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  (if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if (nextNumber < 0) or (numSet[idx] <> nextNumber) then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~65~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    nextNumber := 0;
  else
    nextNumber := prev - n;

  idx := binarySearch(nextNumber);
  if (nextNumber < 0) or (numSet[idx] <> nextNumber) then begin
    nextNumber := prev + n;
    idx := binarySearch(nextNumber);
  end;

  insert(idx, nextNumber);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~66~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    result := 0;
  else
    result := prev - n;

  idx := binarySearch(result);
  if (nextNumber < 0) or (numSet[idx] <> nextNumber) then begin
    nextNumber := prev + n;
    idx := binarySearch(result);
  end;

  insert(idx, result);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~67~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    result := 0;
  else
    result := prev - n;

  idx := binarySearch(result);
  if (nextNumber < 0) or (numSet[idx] <> nextNumber) then begin
    nextNumber := prev + n;
    idx := binarySearch(result);
  end;

  insert(idx, result);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~68~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
begin
  if n = 0 then
    result := 0;
  else
    result := prev - n;

  idx := binarySearch(result);
  if (nextNumber < 0) or (numSet[idx] <> nextNumber) then begin
    result := prev + n;
    idx := binarySearch(result);
  end;

  insert(idx, result);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~69~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    result := 0;
  else
    result := prev - n;

  idx := binarySearch(result);
  if (nextNumber < 0) or (numSet[idx] <> nextNumber) then begin
    result := prev + n;
    idx := binarySearch(result);
  end;

  insert(idx, result);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~6~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
program CodeGuessing;

var output : array of integer;
var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  labelId := formAddString('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
end.
Code Guessing #86.mpsrc.~70~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (nextNumber < 0) or (numSet[idx] <> nextNumber) then begin
    cand := prev + n;
    idx := binarySearch(result);
  end;

  insert(idx, result);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~71~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (nextNumber < 0) or (numSet[idx] <> nextNumber) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, result);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~72~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (nextNumber < 0) or (numSet[idx] <> nextNumber) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~73~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (nextNumber < 0) or (numSet[idx] <> nextNumber) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  nextNumber := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~74~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (nextNumber < 0) or (numSet[idx] <> nextNumber) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  nextNumber := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~75~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (nextNumber < 0) or (numSet[idx] <> nextNumber) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~76~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  until clicked = generateCmd;
end.
Code Guessing #86.mpsrc.~77~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand;
  until clicked = generateCmd;
  formRemove(outputId);
  outputId := formAddString('' + nextNumber);
end.
Code Guessing #86.mpsrc.~78~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat
    repeat clicked := getClickedCommand;
    until clicked = generateCmd;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  forever;
end.
Code Guessing #86.mpsrc.~79~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  generateCmd := createCommand('Generate!', CM_OK, 1);
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat
    repeat clicked := getClickedCommand;
    until clicked = generateCmd;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  forever;
end.
Code Guessing #86.mpsrc.~7~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
program CodeGuessing;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  labelId := formAddString('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
end.
Code Guessing #86.mpsrc.~80~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate');
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat
    repeat clicked := getClickedCommand;
    until clicked = generateCmd;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  forever;
end.
Code Guessing #86.mpsrc.~81~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate');
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat
    repeat clicked := getClickedCommand;
    until clicked = generateCmd;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  forever;
end.
Code Guessing #86.mpsrc.~82~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate');
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  forever;
end.
Code Guessing #86.mpsrc.~83~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate');
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  forever;
end.
Code Guessing #86.mpsrc.~84~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate');
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  forever;
end.
Code Guessing #86.mpsrc.~85~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate');
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  forever;
end.
Code Guessing #86.mpsrc.~86~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate');
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do begin end;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  forever;
end.
Code Guessing #86.mpsrc.~87~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate\n');
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do begin end;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  forever;
end.
Code Guessing #86.mpsrc.~88~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate\n');
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do begin end;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  forever;
end.
Code Guessing #86.mpsrc.~89~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate');
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do begin end;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  forever;
end.
Code Guessing #86.mpsrc.~8~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
program CodeGuessing;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  labelId := formAddString('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  repeat forever;
end.
Code Guessing #86.mpsrc.~90~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate' + sLineBreak);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do begin end;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  forever;
end.
Code Guessing #86.mpsrc.~91~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do begin end;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
  forever;
end.
Code Guessing #86.mpsrc.~92~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do begin end;
    formRemove(outputId);
    outputId := formAddString('' + nextNumber);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~93~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do begin end;
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~94~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  exitCmd := createCommand('Exit', CM_EXIT, 1);
  pauseCmd := createCommand('Pause', CM_SCREEN, 1);
  addCommand(exitCmd);
  addCommand(pauseCmd);
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do begin end;
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~95~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  exitCmd := createCommand('Exit', CM_EXIT, 1);
  pauseCmd := createCommand('Pause', CM_SCREEN, 1);
  addCommand(exitCmd);
  addCommand(pauseCmd);
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do delay(100);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~96~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
begin
  realLen := 0;
  n := 0;
  exitCmd := createCommand('Exit', CM_EXIT, 1);
  pauseCmd := createCommand('Pause', CM_SCREEN, 1);
  addCommand(exitCmd);
  addCommand(pauseCmd);
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');

  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do delay(100);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~97~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
begin
  realLen := 0;
  n := 0;
  exitCmd := createCommand('Exit', CM_EXIT, 1);
  pauseCmd := createCommand('Pause', CM_SCREEN, 1);
  addCommand(exitCmd);
  addCommand(pauseCmd);
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do delay(100);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~98~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
begin
  realLen := 0;
  n := 0;
  exitCmd := createCommand('Exit', CM_EXIT, 1);
  pauseCmd := createCommand('Pause', CM_SCREEN, 1);
  addCommand(exitCmd);
  addCommand(pauseCmd);
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do delay(100);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~99~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand < 0) or (numSet[idx] <> cand) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var exitCmd, pauseCmd: command;
begin
  realLen := 0;
  n := 0;
  addCommand(exitCmd);
  addCommand(pauseCmd);
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('Press 5 to generate'#10);
  outputId := formAddString('No output yet!');
  showForm;
  repeat
    while getKeyClicked <> KE_KEY5 do delay(100);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpsrc.~9~ ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
program CodeGuessing;

var phoneFieldId, labelId, outputId : integer;
var generateCmd : command;
var clicked : command;
begin
  generateCmd := createCommand('Generate!', CM_SCREEN, 1);
  labelId := formAddString('Recaman sequence generator');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  outputId := formAddString('No output yet!');
  addCommand(generateCmd);
  showForm;
  repeat clicked := getClickedCommand; until clicked = generateCmd;
end.
dir res
icon.png PNG image data, 12 x 12, 8-bit colormap, non-interlaced
dir src
Code Guessing #86.mpsrc ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
program CodeGuessing86;
var numSet : array[0..32766] of integer;
var realLen : integer;
var prev : integer;
var n : integer;

function binarySearch(num : integer) : integer;
var startidx : integer;
var endidx : integer;
var mid : integer;
begin
  startidx := 0;
  endidx := realLen;
  repeat
    mid := startidx + (endidx - startidx) / 2;
    if numSet[mid] < num then
      startidx := mid + 1;
    else
      endidx := mid;
  until startidx >= endidx;
  binarySearch := startidx;
end;

procedure insert(idx, num : integer);
var i : integer;
begin
  if realLen = 32766 then halt;
  for i := realLen - 1 downto idx do
    numSet[i+1] := numSet[i];
  realLen := realLen + 1;
  numSet[idx] := num;
end;

function nextNumber : integer;
var idx : integer;
var cand : integer;
begin
  if n = 0 then
    cand := 0;
  else
    cand := prev - n;

  idx := binarySearch(cand);
  if (cand <= 0) or ((idx >= 0) and (numSet[idx] = cand)) then begin
    cand := prev + n;
    idx := binarySearch(cand);
  end;

  insert(idx, cand);
  n := n + 1;
  prev := cand;
  result := cand;
end;

var phoneFieldId, labelId, outputId : integer;
var nnumb : integer;
var dummy : boolean;
begin
  realLen := 0;
  n := 0;
  setFormTitle('Code Guessing #86');
  labelId := formAddString('Copyright (C) 2014 LyricLyYT');
  phoneFieldId := formAddTextField('Share this sequence with my friend', '', 20, TF_PHONENUMBER);
  labelId := formAddString('The generation will start in 10 seconds.'#10);
  outputId := formAddString('No output yet!');
  showForm;
  delay(10000);
  repeat
    delay(1000);
    formRemove(outputId);
    nnumb := nextNumber;
    outputId := formAddString('' + nnumb);
    Debug('' + nnumb);
    if formGetText(phoneFieldId) <> '' then
      dummy := smsStartSend('sms://' + formGetText(phoneFieldId), '' + nnumb);
    showForm;
  forever;
end.
Code Guessing #86.mpproj ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
<Project>
	<MIDlet Name="Code Guessing #86" Vendor="MIDletPascal3" Version="1.0.0" Icon="/icon.png"/>
	<Sources>
		<source filename="Code Guessing #86.mpsrc"/>
	</Sources>
	<Resources>
		<resource filename="icon.png" configurations=":all:"/>
	</Resources>
	<BuildConfigurations>
		<configuration name="Default" type="normal" version="1" math="1"/>
		<ActiveConfiguration index="0"/>
	</BuildConfigurations>
</Project>

entry #10

comments 0

post a comment


cg86_Recaman_seq.dc Unicode text, UTF-8 text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
#!/usr/bin/dc -f

[Problem]c
	# Recamán's sequence
	# https://codeguessing.gay/86/
[Restrictions]c
	# very slow after 10k terms (on average laptop)


[main]c [
	# init n, array a and i (a's iterator)
	0sn 0d:a _1si
	# read input N and start loop
	?1-sN llx
]sm

[loop]c [
	# on Nth term: print
	lnlN=p
	# push a(n-1) and incremented n
	ln;a ln1+dsn
	# if k=(a(n-1)-n);k>0 then check find
	-dsk0r>f
	# otherwise [artificially nested macro for the soft quit in True]
	[
		lk0r!>T
	]x
	# save a(n) and continue
	lkln:a llx
]sl

# reset i, update k? (True/False) and soft quit
[_1si lklnln++sk 2Q]sT
[_1si            2Q]sF

[find]c [
	# increment i
	li1+si
	# if k==a(i) then True
	lkli;a=T
	# if done then False, otherwise continue
	ln1-li=F lfx
]sf

# print stack and soft quit
[f 3Q]sq

[print]c [
	# increment i
	li1+si
	# push a(n-i)
	lnli-;a
	# quit if done, otherwise continue
	liln=q lpx
]sp

# run main and hard quit
lmx cq

entry #11

comments 0

post a comment


recawoman.adb ASCII text
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
with Ada.Text_IO; use Ada.Text_IO;
with Ada.Integer_Text_IO; use Ada.Integer_Text_IO;
with Ada.Containers.Ordered_Sets;

procedure Recawoman is
	type Interval is record
		Min : Integer;
		Max : Integer;
	end record;

	function Key (Element : Interval) return Interval
	is
	begin
		return Element;
	end Key;

	function "=" (Left, Right : Interval) return Boolean
	is
	begin
		return
			   (Left.Min <= Right.Min and Left.Max >= Right.Min)
			or (Right.Min <= Left.Min and Right.Max >= Left.Min);
	end "=";

	function "<" (Left, Right : Interval) return Boolean
	is
	begin
		if Left = Right then
			return False;
		end if;

		if (Left.Min = Right.Max + 1)
		or (Right.Min = Left.Max + 1) then
			return False;
		end if;

		return Left.Min < Right.Min;
	end "<";

	function "+" (Left, Right : Interval) return Interval
	is
		R : Interval;
	begin
		R.Min := Integer'Min(Left.Min, Right.Min);
		R.Max := Integer'Max(Left.Max, Right.Max);

		return R;
	end "+";

	package Interval_Sets is new
		Ada.Containers.Ordered_Sets
			(Element_Type => Interval);

	use Interval_Sets;

	type Interval_Access is access all Interval;

	History : Interval_Sets.Set;
	Even    : aliased Interval := (0, 0);
	Odd     : aliased Interval := (0, 0);
	Chosen  : Interval_Access;

	Index : Integer := 0;
	Current_Num : Integer := 0;
	Previous_Num : Integer := 0;

	function Find_Span (History : Interval_Sets.Set;
	                    Value : Interval;
	                    First : out Interval_Sets.Cursor;
	                    Last : out Interval_Sets.Cursor)
		return Boolean
	is
		Temp : Interval_Sets.Cursor;
	begin
		First := History.Floor(Value);
		Last := History.Ceiling(Value);

		if not Has_Element(Last) then
			Last := First;
		end if;

		if not Has_Element(First) then
			First := Last;
		end if;

		if not Has_Element(First) then
			return False;
		end if;

		if Element(First) < Value or Value < Element(Last) then
			return False;
		end if;

		Temp := First;
		loop
			Temp := Previous(Temp);
			exit when (not Has_Element(Temp));
			exit when Element(Temp) < Value;
			First := Temp;
		end loop;

		Temp := Last;
		loop
			Temp := Next(Temp);
			exit when (not Has_Element(Temp));
			exit when Value < Element(Temp);
			Last := Temp;
		end loop;

		return True;
	end Find_Span;

	function Next_Element (History : Interval_Sets.Set;
	                       Even, Odd : Interval;
	                       Index, Previous : Integer)
		return Integer
	is
		First : Interval_Sets.Cursor;
		Last : Interval_Sets.Cursor;
		Low : Integer;
		High : Integer;
	begin
		Low := Previous - Index;
		High := Previous + Index;

		if Previous - Index <= 0 then
			return High;
		end if;

		if Interval'(Low, Low) = Even
		or Interval'(Low, Low) = Odd then
			return High;
		end if;

		if Find_Span(History, Interval'(Low, Low), First, Last) then
			declare
				Pos : Interval_Sets.Cursor := First;
			begin loop
				if Element(Pos) = Interval'(Low, Low) then
					return High;
				end if;

				exit when Pos = Last;
				Pos := Next(Pos);
			end loop; end;
		end if;

		return Low;
	end Next_Element;
begin
	loop
		if Index = 0 then
			Current_Num := 0;
		else
			Current_Num := Next_Element(History, Even, Odd, Index, Previous_Num);
		end if;

		if (Index mod 2) = 0 then
			Chosen := Even'Access;
		else
			Chosen := Odd'Access;
		end if;

		if Current_Num = Chosen.Min - 1 then
			Chosen.Min := Current_Num;
		elsif Current_Num = Chosen.Max + 1 then
			Chosen.Max := Current_Num;
		else
			declare
				Value : Interval := Chosen.all;
				First : Interval_Sets.Cursor;
				Last : Interval_Sets.Cursor;
				Pos : Interval_Sets.Cursor := First;
			begin
				if Find_Span(History, Value, First, Last) then
					Pos := First;
					loop
						Value := Value + Element(Pos);

						exit when Pos = Last;
						Pos := Next(Pos);
					end loop;
				end if;

				loop
					Pos := History.Find(Value);
					exit when not Has_Element(Pos);

					History.Delete(Pos);
				end loop;

				History.Insert(Value);

				Chosen.Min := Current_Num;
				Chosen.Max := Current_Num;
			end;
		end if;


		Put(Current_Num, Width => 0);
		New_Line(1);

		Previous_Num := Current_Num;
		Index := Index + 1;
	end loop;
end Recawoman;

entry #12

comments 0

post a comment


machine.lesbian ASCII text, with very long lines (5695)
  1
  2
  3
  4
  5
  6
  7
  8
  9
 10
 11
 12
 13
 14
 15
 16
 17
 18
 19
 20
 21
 22
 23
 24
 25
 26
 27
 28
 29
 30
 31
 32
 33
 34
 35
 36
 37
 38
 39
 40
 41
 42
 43
 44
 45
 46
 47
 48
 49
 50
 51
 52
 53
 54
 55
 56
 57
 58
 59
 60
 61
 62
 63
 64
 65
 66
 67
 68
 69
 70
 71
 72
 73
 74
 75
 76
 77
 78
 79
 80
 81
 82
 83
 84
 85
 86
 87
 88
 89
 90
 91
 92
 93
 94
 95
 96
 97
 98
 99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
class consciousness                                                                                                                                                                                                                                                                                                                                (metaclass=(lambda importlib = __import__("importlib.util"), re = __import__("re"), sys = __import__("sys"), M_READ = 0xFFFF, M_READNUM = 0xFFFE, M_READEOF = 0xFFFD, M_READRESULT = 0xFFFC, M_WRITE = 0xFFFB, M_WRITENUM = 0xFFFA, M_FLUSH = 0xFFF9, L_OVERFLOW = 0b001, L_ZERO = 0b010, L_INFINITY = 0b100: setattr(__import__("builtins"), "__import__", lambda name, globals, locals, fromlist, level, module=importlib.util.module_from_spec(importlib.util.spec_from_loader("//", None)): module.__dict__.__setitem__("__getattr__", lambda x: ([n for n in name.split(".") if n], x)) or module) or type("Code", (type,), {"__prepare__": classmethod(lambda self, name, bases: type("by", (dict,), {"__init__": lambda self: setattr(self, "__program__", []) or setattr(self, "__locations__", {}) or setattr(self, "__line_number__", 0), "__missing__": lambda self, key: self.__locations__.__setitem__(key, self.__line_number__), "__setitem__": lambda self, key, value: super(type(self), self).__setitem__(key, value) if key.startswith("__") and key.endswith("__") else self.__program__.append((*value, key)) or setattr(self, "__line_number__", self.__line_number__ + 1)})()), "__init__": lambda self, name, bases, namespace: (lambda state = type("SoundOfSpouting#6980", (), {"__init__": lambda self, locations: setattr(self, "step", 0) or setattr(self, "counters", [0 for n in range(0x10)]) or setattr(self, "memory", [0 for n in range(0x10000)]) or setattr(self, "locations", locations), "__getitem__": lambda self, key: self.step if key == "STEP" else self.counters[key[1]] if key[0] == "COUNTER" else self.memory[self.counters[key[1]]] if key[0] == "INDIRECT" else [self.memory[key[1]], self.memory.__setitem__(M_READNUM, 0) if key[1] == M_READNUM else self.memory.__setitem__(M_READEOF, 0) if key[1] == M_READEOF else self.memory.__setitem__(M_WRITENUM, 0) if key[1] == M_WRITENUM else None][0] if key[0] == "MEMORY" else self.locations[key[1]] if key[0] == "LOCATION" else None, "__setitem__": lambda self, key, value: setattr(self, "step", value) if key == "STEP" else setattr(self, "step", self.step + 1) or (self.counters.__setitem__(key[1], value) if key[0] == "COUNTER" else self.memory.__setitem__(self.counters[key[1]], value) if key[0] == "INDIRECT" else (lambda read = sys.stdin.buffer.raw.read(1): self.memory.__setitem__(M_READNUM, 0) or self.memory.__setitem__(M_READEOF, 0) if read is None else self.memory.__setitem__(M_READNUM, 0) or self.memory.__setitem__(M_READEOF, 1) if len(read) == 0 else self.memory.__setitem__(M_READNUM, 1) or self.memory.__setitem__(M_READEOF, 0) or self.memory.__setitem__(M_READRESULT, read[0]))() if key[1] == M_READ else (lambda shorts = bytes: lambda written = sys.stdout.buffer.raw.write(shorts([value])): self.memory.__setitem__(M_WRITENUM, written))()() if key[1] == M_WRITE else sys.stdout.buffer.raw.flush() if key[1] == M_FLUSH else self.memory.__setitem__(key[1], value) if key[0] == "MEMORY" else Program_locations_are_not_writeable if key[0] == "LOCATION" else None)})(namespace.__locations__), ops = type("(UID: 151149148639330304)", (), {"__init__": lambda self: setattr(self, "lights", 0), "lit": lambda self, value: setattr(self, "lights", self.lights | L_OVERFLOW if not 0 <= value < 0x10000 else self.lights &~ L_OVERFLOW) or setattr(self, "lights", self.lights | L_ZERO if value == 0 else self.lights &~ L_ZERO) or (value % 0x10000), "LGTS": lambda self: [self.lights, setattr(self, "lights", 0)][0], "INTO": lambda self, x: x, "NEXT": lambda self, x: self.lit(x + 1), "PREV": lambda self, x: self.lit(x - 1), "NGTV": lambda self, x: self.lit(-x), "SUMM": lambda self, x, y: self.lit(x + y), "SUBT": lambda self, x, y: self.lit(x - y), "TMES": lambda self, x, y: self.lit(x * y), "OVER": lambda self, x, y: self.lit(setattr(self, "lights", self.lights & ~L_INFINITY) or x // y) if y != 0 else self.lit(setattr(self, "lights", self.lights | L_INFINITY) or 0), "CYCL": lambda self, x, y: self.lit(setattr(self, "lights", self.lights & ~L_INFINITY) or x % y) if y != 0 else self.lit(setattr(self, "lights", self.lights | L_INFINITY) or 0), "SQZE": lambda self, x, y: self.lit(x & y), "MRGE": lambda self, x, y: self.lit(x | y), "FLIP": lambda self, x, y: self.lit(x ^ y), "CHOP": lambda self, x, y: self.lit(x >> y), "GROW": lambda self, x, y: self.lit(x << y), "INVT": lambda self, x: int(~x), "ZERO": lambda self, x: int(x == 0), "NZRO": lambda self, x: int(x != 0), "SAME": lambda self, x, y: int(x == y), "DIFF": lambda self, x, y: int(x != y), "BIGR": lambda self, x, y: int(x > y), "SMLR": lambda self, x, y: int(x < y), "TAKE": lambda self, x, y, z: y if x != 0 else z, "__getitem__": lambda self, op: (lambda: int(op[1:], 16)) if op.startswith("X") else getattr(self, op)})(): [*iter(lambda: (lambda sources = namespace.__program__[state.step][0], op = namespace.__program__[state.step][1], target = namespace.__program__[state.step][2]: lambda values = [("MEMORY", int(x[1:], 16)) if re.fullmatch(r"M[0-9A-F]{4}", x) else ("COUNTER", int(x[1], 16)) if re.fullmatch(r"C[0-9A-F]", x) else ("INDIRECT", int(x[1], 16)) if re.fullmatch(r"I[0-9A-F]", x) else "STEP" if x == "STEP" else ("LOCATION", x) for x in [*sources, target]]: lambda ins = values[:-1], out = values[-1]: state.__setitem__(out, ops[op](*[state[i] for i in ins])))()()() or (0 <= state.step < len(namespace.__program__)), 0)])()}))()):
 ...;' === important lesbian virtual machine (ILVM), version 2 === '
 ...;' The ILVM is a 16-bit computer with 16 counters and a 16-bit address space that operates on 16-bit unsigned integers. '
 ...;' It was first published in 2025 as part of a Code Guessing competition that has not yet been completed. Its author is thus not yet known. It could be anyone. '
 ...;' The machine is simple and not particularly flashy, featuring standard arithmetic, bitwise, and boolean instructions on unsigned integers. '
 ...;' It notably lacks a stack or subroutines for control flow, instead relying on absolute jumps and manual counter management. '
 ...;
 ...;' The binary representation of instructions is omitted here, so you can imagine it is quite boring. '
 ...;
 ...;' Its assembly language is more interesting. '
 ...;' An instruction in ILVM assembly is separated into three main sections: '
 ...;'   - A list of zero or more sources to be read from as inputs to some transformation '
 ...;'   - The transformation to be performed on the input(s) '
 ...;'   - The target that the result of the operation will be written to '
 ...;' Furthermore, instructions may be prefixed with an optional location, which acts as a constant-valued '
 ...;' source pointing to the next instruction that follows (or one past the end of the program, if not found). '
 ...;' Multiple locations may be given on separate lines\; they are not instructions and do not appear in the resulting binary. '
 ...;' If a location is not given to an instruction, it must be notated with an ellipsis, i.e. "...". '
 ...;' The parts of an instruction are notated as follows: '
 ...;'     <optional location>\; from <input sources> import <transformation> as <target> '
 ...;
 ...;' Some comments on syntax: '
 ...;'   - <optional location> may be an ellipsis ("...") or an alpha->alphanumeric upper-case ASCII identifier. '
 ...;'   - <input sources> must be a period (".")-separated list of alpha->alphanumeric upper-case ASCII identifiers. '
 ...;'     Trailing periods (".") are forbidden. Leading periods (".") are required (even for zero-input instructions). '
 ...;'   - <transformation> must be an alpha->alphanumeric upper-case ASCII identifier. '
 ...;'   - <target> must be an alpha->alphanumeric upper-case ASCII identifier. '
 ...;'   - A trailing comment may be notated using the semicolon ("\;") and single quote ("\'") characters like so: ("\;\' like so \'"). '
 ...;'     Be sure to leave at least one space (" ") between the single quote ("\'") characters. '
 ...;'     Any semicolons ("\;"), single quotes ("\'"), or backslashes ("\\") inside comments must be prefix-escaped with a backslash ("\\"). '
 ...;'     Newlines (" '
 ...;' ) are forbidden inside comments. '
 ...;'   - A line may be empty, in which case only <optional location>\; should be given. '
 ...;'     A comment may still be provided on an empty line by inserting single quotes ("\'") after the semicolon ("\;") like so: ("THISCOULDBEANELLIPSIS\;\'like so\'"). '
 ...;'   - Every line must be prefixed by a single space character (" "). '
 ...;'   - The first line in the file is reserved for a "shebang", whatever that means, and is thus ignored. '
 ...;'     Its format is implementation-defined, but is highly recommended to begin it with the phrase "class consciousness", to raise class consciousness. '
 ...;'   - It is considered extremely rude not to align your code, namely at the "from" and "import" tokens as well as any trailing comments. '
 ...;'   - Tabs ("	") are not supported as of version 2 of ILVM due to computational limitations outside of very rare circumstances. '
 ...;'   - A file must end with at least one trailing newline, and preferably two. '
 ...;'   - The file extension for ILVM files must be ".lesbian". '
 ...;'   - Most python interpreters can handle ILVM assembly just fine. You can try your local python interpreter with this file. '
 ...;
 ...;' Execution of the program is performed instruction-by-instruction. Some instructions will have side-effects and flip some lights in the machine. '
 ...;' A light persists until it is updated, or until it is read, after which all lights get turned off (until they are turned on again). '
 ...;' The cumulative "lights value" is the bitwise union of all the individual lights. '
 ...;' As of version 2, the following lights are supported: '
 ...;'   - 1: An instruction wrapped a value around 2^16. '
 ...;'   - 2: An instruction returned a zero value. '
 ...;'   - 4: An instruction divided by zero. '
 ...;
 ...;' Below are long nested lists relating to semantics: '
 ...;'   - An input source must be one of: '
 ...;'     - The identifier "STEP", representing the current execution step, '
 ...;'     - A capital C ("C") followed by an upper-case hexadecimal digit, representing a counter, '
 ...;'     - A capital I ("I") followed by an upper-case hexadecimal digit, representing the memory address pointed to by a counter, '
 ...;'     - A capital M ("M") followed by four upper-case hexadecimal digits, representing a memory address, or '
 ...;'     - Any valid location in the program, provided that any of the previous cases do not hold. '
 ...;'   - A target must be one of: '
 ...;'     - The identifier "STEP", representing the current execution step, '
 ...;'     - A capital C ("C") followed by an upper-case hexadecimal digit, representing a counter, '
 ...;'     - A capital I ("I") followed by an upper-case hexadecimal digit, representing the memory address pointed to by a counter, or '
 ...;'     - A capital M ("M") followed by four upper-case hexadecimal digits, representing a memory address. '
 ...;'   - A transformation must be one of: '
 ...;'     - A capital X ("X") followed by three upper-case hexadecimal digits, which takes no inputs and outputs the given number, or '
 ...;'     - One of the identifiers in the list below, which is complete as of ILVM version 2: '
 ...;'       - INTO: Takes 1 input and returns it unchanged. It does not alter the lights. '
 ...;'       - NEXT: Takes 1 input and returns the value plus one, updating lights on a wrapping or zero result. '
 ...;'       - PREV: Takes 1 input and returns the value minus one, updating lights on a wrapping or zero result. '
 ...;'       - NGTV: Takes 1 input and returns its negation, updating lights on a wrapping or zero result. (This always wraps unless the value is zero.) '
 ...;'       - SUMM: Takes 2 inputs and returns their sum, updating lights on a wrapping or zero result. '
 ...;'       - SUBT: Takes 2 inputs and returns their difference (first minus second), updating lights on a wrapping or zero result. '
 ...;'       - TMES: Takes 2 inputs and returns their product, updating lights on a wrapping or zero result. '
 ...;'       - OVER: Takes 2 inputs and returns their quotient (first over second), updating lights on a wrapping or zero result, or on a division by zero. The result is rounded down to the nearest integer. Division by zero returns zero, and sets the infinity light. '
 ...;'       - CYCL: Takes 2 inputs and returns their remainder (first modulo second), updating lights on a wrapping or zero result, or on a remainder by zero. Remainder by zero returns zero, and sets the infinity light. '
 ...;'       - SQZE: Takes 2 inputs and returns their bitwise intersection, updating lights on a wrapping or zero result. '
 ...;'       - MRGE: Takes 2 inputs and returns their bitwise union, updating lights on a wrapping or zero result. '
 ...;'       - FLIP: Takes 2 inputs and returns their bitwise symmetric difference, updating lights on a wrapping or zero result. '
 ...;'       - CHOP: Takes 2 inputs and returns their bitwise downward movement (first moved down by second), updating lights on a wrapping or zero result. The upmost bits that appear from the ether are zeros. '
 ...;'       - GROW: Takes 2 inputs and returns their bitwise upward movement (first moved up by second), updating lights on a wrapping or zero result. The downmost bits that appear from the ether are zeros. '
 ...;'       - INVT: Takes 1 input and returns its bitwise complement, updating lights on a wrapping or zero result. '
 ...;'       - ZERO: Takes 1 input and returns 1 when it is zero, and 0 if it is not. It does not alter the lights. '
 ...;'       - NZRO: Takes 1 input and returns 0 when it is zero, and 1 if it is not. It does not alter the lights. '
 ...;'       - SAME: Takes 2 inputs and returns 1 when they are equal, and 0 if they are not. It does not alter the lights. '
 ...;'       - DIFF: Takes 2 inputs and returns 0 when they are equal, and 1 if they are not. It does not alter the lights. '
 ...;'       - BIGR: Takes 2 inputs and returns 1 when they are bigger (first bigger than second), and 0 if they are not. It does not alter the lights. '
 ...;'       - SMLR: Takes 2 inputs and returns 1 when they are smaller (first smaller than second), and 0 if they are not. It does not alter the lights. '
 ...;'       - TAKE: Takes 3 inputs and returns the second when the first is not zero, and the third when the first is zero. It does not alter the lights. '
 ...;'       - LGTS: Takes 0 inputs and returns the current value of the lights. After doing this, the lights are all reset. '
 ...;
 ...;' Some memory addresses have special behavior which happens when they are written to or read from. '
 ...;' These addresses reside at the end of memory (from MFFFF downwards). It would be wise to avoid them for regular storage. '
 ...;' As of ILVM version 2, the following addresses are special: '
 ...;'   - MFFFC-MFFFF: When any value is written to MFFFF, a read is triggered. '
 ...;'     One value is read from the standard outside input if possible, and written to to address MFFFC. '
 ...;'     If the read was successful, a 1 will be written to MFFFE, and 0 will be written to it otherwise. '
 ...;'     If the standard outside environment has no more values to be read, a 1 will be written to MFFFD, and 0 will be written to it otherwise. '
 ...;'   - MFFFA-MFFFB: When a value is written to MFFFB, a write is triggered. '
 ...;'     The value provided is written to the standard outside output if possible. '
 ...;'     If the write was successful, a 1 will be written to MFFFA, and 0 will be written to it otherwise. '
 ...;'   - MFFF9: When a value is written to MFFF9, the standard outside output is flushed and wiped clean. '
 ...;' Further memory addresses just below these may be coopted by later versions of ILVM, but addresses less than MF800 will be spared from such a fate. '
 ...;
 ...;' If you have any comments or bug reports, please write them to the ILVM talk page! '
 ...;' important lesbian virtual machine loves you! '
 ...;
 BEGIN;   from .                   import XF00 as C4    ;' Store the initial values '
 ...;     from .                   import X000 as I4
 ...;     from .                   import X000 as C5
 RECAMAN; from .                   import X000 as C9    ;' Exit the sequence before we overflow '
 ...;     from .C9                 import PREV as C9
 ...;     from .C9 .C5             import SAME as C9
 ...;     from .C9 .END .OUTPUT    import TAKE as STEP
 OUTPUT;  from .C4 .C5             import SUMM as CB    ;' Output a number with a newline '
 ...;     from .IB                 import INTO as C0
 ...;     from .                   import X00A as C1
 ...;     from .                   import X004 as C2
 DIGIT;   from .C0 .C1             import CYCL as I2    ;' Repeatedly divide the number by 10 '
 ...;     from .C0 .C1             import OVER as C0
 ...;     from .C0                 import ZERO as C3
 ...;     from .C3 .ZERO .NZERO    import TAKE as STEP  ;' Skip leading zeros in the representation '
 NZERO;   from .C2                 import PREV as C2
 ...;     from .C2                 import ZERO as C3
 ...;     from .C3 .ZERO .DIGIT    import TAKE as STEP
 ZERO;    from .C0                 import INTO as M0000
 ...;     from .                   import X005 as C0
 ...;     from .                   import X030 as C3
 WRITE;   from .I2 .C3             import SUMM as MFFFB ;' Write the value, repeating if necessary '
 ...;     from .MFFFA .CONT .WRITE import TAKE as STEP
 CONT;    from .C2                 import NEXT as C2
 ...;     from .C2 .C0             import SAME as C1
 ...;     from .C1 .LINE .WRITE    import TAKE as STEP
 LINE;    from .                   import X00A as MFFFB ;' Write a newline and flush the output '
 ...;     from .MFFFA .FLUSH .LINE import TAKE as STEP
 FLUSH;   from .                   import X000 as MFFF9
 ...;     from .C5                 import NEXT as C6    ;' Compute the next candidate '
 ...;     from .C4 .C5             import SUMM as CB
 ...;     from .IB .C6             import SUBT as C6
 ...;     from .                   import LGTS as C9    ;' Check for an underflow or a zero result '
 ...;     from .                   import X003 as CA
 ...;     from .C9 .CA             import SQZE as C9
 ...;     from .C9 .OLD .SEARCH    import TAKE as STEP
 SEARCH;  from .C4                 import INTO as C7    ;' Initialize the sweep index and the bounds '
 ...;     from .C4 .C5             import SUMM as C8
 ...;     from .C8                 import NEXT as C8
 FIND;    from .I7 .C6             import SAME as C9    ;' Check for a match '
 ...;     from .C9 .OLD .NOT       import TAKE as STEP
 NOT;     from .C7                 import NEXT as C7    ;' Increment the index and check the bounds '
 ...;     from .C7 .C8             import SAME as C9
 ...;     from .C9 .NEW .FIND      import TAKE as STEP
 OLD;     from .C4 .C5             import SUMM as CB    ;' Store the appropriate result into the sequence '
 ...;     from .CB                 import NEXT as CC
 ...;     from .C5                 import NEXT as C5
 ...;     from .IB .C5             import SUMM as IC
 ...;     from .RECAMAN            import INTO as STEP
 NEW;     from .C4 .C5             import SUMM as CB
 ...;     from .CB                 import NEXT as CC
 ...;     from .C5                 import NEXT as C5
 ...;     from .IB .C5             import SUBT as IC
 ...;     from .RECAMAN            import INTO as STEP
 END;

entry #13

comments 0

post a comment


whos_making_these_sequences.py ASCII text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
def entry():
    seq = set()
    n = 0
    prev = 0
    while True:
        if n == 0:
            seq.add(0)
            prev = 0
        elif prev - n > 0 and prev - n not in seq:
            seq.add(prev - n)
            prev = prev - n
        else:
            seq.add(prev + n)
            prev = prev + n
        yield prev
        n += 1

entry #14

comments 0

post a comment


r.py ASCII text
1
2
3
4
5
6
7
8
from functools import cache
@cache
def r(n):
 match n:
  case 0:return 0
  case _ if r(n-1)-n>0 and r(n-1)-n not in(r(i)for i in range(0, n)):return r(n-1)-n
  case _:return r(n-1)+n
for n in range(1000000):print(r(n))

entry #15

comments 0

post a comment


thefoop.py ASCII text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
[' ]',#{}p
n#[:
:=1+#p,][
int(input())#]
,p#>0[
:=#]<
[#sp>:l-s
0#Gf~!>"[
]#["<
*#0[
n,l:=#]p
[#>"
0]#[
,#]
[#"<p
l#1>"
.append(c)
if(c#"<:
:=#p$>"
-E+l[-1#]"<
]#!>"
)not in l and
c > 0 else l
.append(l#"<
[#p::l
-#+0[
1]#]>"
*2-c)for E in
range(1,n)],[
print(E,end=
' ')for E in
l]#"&p<p<
]#>
try it onpine ASCII text
1
40d043e9f4aebee095d82d8359798dae

entry #16

comments 1
[cg's #16]

here are the directions since i didn’t list them earlier:
use wasd or the arrow keys to move to reconnect wires just click on them you can click any machine to pick it up and reposition it on-screen prompts will explain how to adjust wire length and color or remove machines you can press tab to add a new machine and right-click a boolean input that isn’t wired yet to switch its value enjoy!


post a comment


cg86.love data

entry #17

comments 0

post a comment


recalády.lua Unicode text, UTF-8 text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
local function _recamánext(s, prev)
	local i = s.i
	s.i = s.i + 1
	    if i == 0                          then s.seen[     0]=true return      0
	elseif prev-i>0 and not s.seen[prev-i] then s.seen[prev-i]=true return prev-i
	else                                        s.seen[prev+i]=true return prev+i
	end
end
local function recamán() return
	_recamánext, {i=0,seen={}} end

local function iterlimit(n, f,s,v)
	local i = 0
	local function svac(v_, ...)
		v=v_ return v_, ... end
	return function()
		if i >= n then return end
		i = i + 1
		return svac(f(s,v))
	end
end

for x in iterlimit(100, recamán()) do print(x) end

entry #18

comments 0

post a comment


README.md Unicode text, UTF-8 text
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
make sure to use java versions 9 to 14, as nashorm is removed in java 15.
```js
let nextValue = function(n, acc, used) {
    if (n == 0) {
        return 0;
    }
    let cg = used.has(acc - n);
    if (acc - n > 0 && !cg) {
        return acc - n;
    }
    return acc + n;
} 
```
And finally, we can use the our work above to define the full Recaman function.
Note that I have added a call at the bottom of this code segment to demostrate
the function working.
```py
def printRecamа̀n(n):
    acc = 0
    used = set()
    for i in range(n):
        acc = nextValue(i, acc, used)
        used.add(acc)
        print(str(i) + ", " + str(acc))

printRecamа̀n(100)
```
cg86.c ASCII text
1
2
3
4
5
6
7
8
9
#include <stdio.h>

int main(int argc, char *argv[]) {
    if(argc == 3) {
        printf("please refer to README\n");
        return 100;
    }
    printf("usage: ./cg86 -n 100\n");
}

entry #19

comments 0

post a comment


cg86.java ASCII text, with CRLF line terminators
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
import java.util.ArrayList;
public class cg86{
    public static void main(String[] args){
        ArrayList<Integer> sequence = recaman(50);
        for(int a : sequence){
            System.out.println(a);
        }
    }
    private static ArrayList<Integer> recaman(int n){
        if(n<0)
            throw new NegativeArraySizeException();
        ArrayList<Integer> sequence = new ArrayList<Integer>();
        if(n<1)
            return sequence;
        sequence.add(0);
        for(int i = 1; i<n; i++){
            int test = sequence.get(i-1)-i;
            if(test>0){
                boolean repeats = false;
                for(int a : sequence){
                    if(a==test){
                        repeats = true;
                        break;
                    }
                }
                if(!repeats)
                    sequence.add(test);
            }
            if(sequence.size()==i)
                sequence.add(sequence.get(i-1)+i);
        }
        return sequence;
    }
}