home *** CD-ROM | disk | FTP | other *** search
- uses
- eco_lib, crt
-
- ;
-
-
- const
- c : array[0..4, 0..7] of record fore, back: byte; letter: char end = (
- (
- (fore: lightgray; back: black; letter: 'A'),
- (fore: lightcyan; back: black; letter: 'B'),
- (fore: lightred; back: black; letter: 'C'),
- (fore: yellow; back: black; letter: 'D'),
- (fore: white; back: black; letter: 'E'),
- (fore: black; back: lightgray; letter: 'F'),
- (fore: blue; back: lightgray; letter: 'G'),
- (fore: red; back: lightgray; letter: 'H')
- ),
- (
- (fore: lightred; back: darkgray; letter: 'I'),
- (fore: yellow; back: darkgray; letter: 'J'),
- (fore: white; back: darkgray; letter: 'K'),
- (fore: lightcyan; back: darkgray; letter: 'L'),
- (fore: lightgray; back: darkgray; letter: 'M'),
- (fore: black; back: white; letter: 'N'),
- (fore: blue; back: white; letter: 'O'),
- (fore: red; back: white; letter: 'P')
- ),
- (
- (fore: cyan; back: blue; letter: 'Q'),
- (fore: lightcyan; back: blue; letter: 'R'),
- (fore: yellow; back: blue; letter: 'S'),
- (fore: white; back: blue; letter: 'T'),
- (fore: yellow; back: lightblue; letter: 'U'),
- (fore: white; back: lightblue; letter: 'V'),
- (fore: black; back: lightcyan; letter: 'W'),
- (fore: blue; back: lightcyan; letter: 'X')
- ),
- (
- (fore: yellow; back: brown; letter: 'Y'),
- (fore: white; back: brown; letter: 'Z'),
- (fore: yellow; back: red; letter: '1'),
- (fore: white; back: red; letter: '2'),
- (fore: lightcyan; back: red; letter: '3'),
- (fore: yellow; back: lightred; letter: '4'),
- (fore: black; back: yellow; letter: '5'),
- (fore: blue; back: yellow; letter: '6')
- ),
- (
- (fore: black; back:lightgreen; letter: '7'),
- (fore: blue; back:lightgreen; letter: '8'),
- (fore: 0; back: 0; letter: '9'),
- (fore: 0; back: 0; letter: '0'),
- (fore: 0; back: 0; letter: '-'),
- (fore: 0; back: 0; letter: '='),
- (fore: 0; back: 0; letter: '\'),
- (fore: 0; back: 0; letter: '/')
- )
- );
-
-
- var
- i, j : byte;
- key : char;
- found : boolean;
-
- begin
- if _currows < 43 then begin
- writeln('Sorry, but I need at least 43 rows...');
- writeln('I now have ', _currows, ' rows available.');
- halt
- end;
- __clrscn(1, 1, _curcolumns, _currows-4, white, darkgray, ' ');
- __setblwin(false);
- __clrscn(1, _currows-3, _curcolumns, _currows, lightgray, black, ' ');
- for i := 0 to 4 do for j := 0 to 7 do if (
- (c[i, j].fore + c[i, j].back) > 0
- ) then begin
- __bandwin(
- true, j * 9 + 6, i * 9 + 4, j * 9 + 8, i * 9 + 6,
- c[i, j].fore, c[i ,j].back, sh_default, bt_single
- );
- __betwscn(
- j * 9 + 6, j * 9 + 8, i * 9 + 4, c[i, j].fore, c[i ,j].back,
- __num(c[i, j].fore)
- );
- __betwscn(
- j * 9 + 6, j * 9 + 9, i * 9 + 6, c[i, j].fore, c[i ,j].back,
- __num(c[i, j].back)
- );
- __betwscn(
- j * 9 + 6, j * 9 + 9, i * 9 + 5, {c[i, j].fore, c[i ,j].back,} 15, 0,
- (c[i, j].letter)
- );
- end;
-
- j := 4; i := 4;
- __bandwin(
- true, j * 9 - 11, i * 9 + 4, j * 9 + 8, i * 9 + 6,
- yellow, black, sh_default, bt_single
- );
- __betwscn(j * 9 - 11, j * 9 + 7, i * 9 + 4, yellow, black,
- 'StdFrame by Floor'
- );
- __betwscn(j * 9 - 10, j * 9 + 7, i * 9 + 5, yellow, black,
- 'Press A..Z, 1..8'
- );
- __betwscn(j * 9 - 11, j * 9 + 7, i * 9 + 6, yellow, black,
- '(C) by UltiHouse.'
- );
-
- j := 7; i := 4;
- __bandwin(
- true, j * 9 - 11, i * 9 + 4, j * 9 + 8, i * 9 + 6,
- yellow, black, sh_default, bt_single
- );
- __betwscn(j * 9 - 11, j * 9 + 7, i * 9 + 4, yellow, black,
- 'Often used colour'
- );
- __betwscn(j * 9 - 10, j * 9 + 7, i * 9 + 5, yellow, black,
- 'combinations right'
- );
- __betwscn(j * 9 - 11, j * 9 + 7, i * 9 + 6, yellow, black,
- 'under your hands.'
- );
- key := upcase(readkey);
- i := 0; j := 0;
-
- repeat
- j := 0;
- repeat
- found := key = c[i, j].letter;
- if not found then inc(j);
- until (j > 7) or found;
- if not found then inc(i);
- until ((i > 4) and (j > 7)) or (found);
- gotoxy(1, _currows-3);
- if found then write(
- _colours[c[i, j].fore], ' on ', _colours[c[i, j].back]
- ) else write('Sorry! ');
- end.
-