Π§ΠΈΡ‚Π°ΠΉΡ‚Π΅ ΠΊΠ½ΠΈΠ³ΠΈ ΠΎΠ½Π»Π°ΠΉΠ½ Π½Π° Bookidrom.ru! БСсплатныС ΠΊΠ½ΠΈΠ³ΠΈ Π² ΠΎΠ΄Π½ΠΎΠΌ ΠΊΠ»ΠΈΠΊΠ΅

Π§ΠΈΡ‚Π°Ρ‚ΡŒ ΠΎΠ½Π»Π°ΠΉΠ½ Β«Π―Π·Ρ‹ΠΊ программирования Euphoria. Π‘ΠΏΡ€Π°Π²ΠΎΡ‡Π½ΠΎΠ΅ руководство». Π‘Ρ‚Ρ€Π°Π½ΠΈΡ†Π° 26

Автор W Cat

if length(chunk) < 100 then

exit

end if

end while


close(fn)

? length(whole_file) -- Π΄ΠΎΠ»ΠΆΠ½ΠΎ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с Ρ€Π°Π·ΠΌΠ΅Ρ€ΠΎΠΌ "temp", Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹ΠΌ ΠΏΠΎ ΠΊΠΎΠΌΠ°Π½Π΄Π΅ DIR


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

getc, gets


get_display_page


ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°:

DOS32

Бинтаксис:

include image.e

i = get_display_page()

ОписаниС:

Π‘ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²ΠΎ Π²ΠΈΠ΄Π΅ΠΎΠΏΠ»Π°Ρ‚ ΠΈΠΌΠ΅Π΅Ρ‚ графичСскиС Ρ€Π΅ΠΆΠΈΠΌΡ‹ со мноТСствСнными страницами памяти. Π­Ρ‚ΠΎ позволяСт Π²Π°ΠΌ Π·Π°ΠΏΠΈΡΡ‹Π²Π°Ρ‚ΡŒ ΡΠΊΡ€Π°Π½Π½ΡƒΡŽ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ Π½Π° ΠΎΠ΄Π½Ρƒ страницу, Π° ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Ρ‚ΡŒ Π² это ΠΆΠ΅ врСмя Π΄Ρ€ΡƒΠ³ΡƒΡŽ страницу, ΡƒΠΆΠ΅ Π³ΠΎΡ‚ΠΎΠ²ΡƒΡŽ ΠΊ просмотру. Ѐункция get_display_page() Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ страницы, которая отобраТаСтся Π½Π° ΠΌΠΎΠ½ΠΈΡ‚ΠΎΡ€Π΅.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

По ΡƒΠΌΠΎΠ»Ρ‡Π°Π½ΠΈΡŽ Π½ΠΎΠΌΠ΅Ρ€ Π°ΠΊΡ‚ΠΈΠ²Π½ΠΎΠΉ ΠΈ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°Π΅ΠΌΠΎΠΉ страницы ΠΎΠ΄ΠΈΠ½ ΠΈ Ρ‚ΠΎΡ‚ ΠΆΠ΅ ΠΈ Ρ€Π°Π²Π΅Π½ 0, Ρ‚ΠΎ Π΅ΡΡ‚ΡŒ ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒ Π²ΠΈΠ΄ΠΈΡ‚ собствСнно процСсс записи экранной ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΠΈ.

Ѐункция video_config() ΠΏΠΎΠΊΠ°ΠΆΠ΅Ρ‚ Π²Π°ΠΌ, сколько страниц доступно Π² Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΌ графичСском Ρ€Π΅ΠΆΠΈΠΌΠ΅.

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

set_display_page, get_active_page, video_config


get_key


Бинтаксис:

i = get_key()

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ ΠΊΠΎΠ΄ клавиши, которая Π±Ρ‹Π»Π° Π½Π°ΠΆΠ°Ρ‚Π° ΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚Π΅Π»Π΅ΠΌ, Π½ΠΎ Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ наТатия. Π’Ρ‹Π΄Π°Π΅Ρ‚ -1, Ссли Π½ΠΈ ΠΎΠ΄Π½Π° ΠΈΠ· клавиш Π½Π΅ Π±Ρ‹Π»Π° Π½Π°ΠΆΠ°Ρ‚Π°. Π‘ΠΏΠ΅Ρ†ΠΈΠ°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠ΄Ρ‹ Π²Ρ‹Π΄Π°ΡŽΡ‚ΡΡ для Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΎΠ½Π°Π»ΡŒΠ½Ρ‹Ρ… клавиш, клавиш со стрСлками ΠΈ Ρ‚.Π΄.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

ΠžΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½Π°Ρ систСма ΠΌΠΎΠΆΠ΅Ρ‚ Ρ…Ρ€Π°Π½ΠΈΡ‚ΡŒ Π½Π΅ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠ΅ Π½Π΅ слишком большоС количСство ΠΊΠΎΠ΄ΠΎΠ² ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°Ρ‚Π΅Π»ΡŒΠ½Ρ‹Ρ… Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ Π½Π° клавиши Π² своём Π±ΡƒΡ„Π΅Ρ€Π΅ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹. Ѐункция get_key() Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ Π΄Π°Π½Π½Ρ‹Π΅ ΠΈΠ· Π±ΡƒΡ„Π΅Ρ€Π° ΠΎ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΌ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ»Π°Π²ΠΈΡˆΡƒ ΠΈΠ»ΠΈ -1, Ссли Π±ΡƒΡ„Π΅Ρ€ пуст.

ЗапуститС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ key.bat, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ, ΠΊΠ°ΠΊΠΈΠ΅ ΠΊΠΎΠ΄Ρ‹ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ ΠΏΡ€ΠΈ Π½Π°ΠΆΠ°Ρ‚ΠΈΠΈ Π½Π° ΠΊΠ°ΠΆΠ΄ΡƒΡŽ ΠΈΠ· клавиш ΠΈΠΌΠ΅Π½Π½ΠΎ вашСй ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹ отличия.

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

wait_key, getc


get_mouse


ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°:

DOS32

Бинтаксис:

include mouse.e

x1 = get_mouse()

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ послСднСм ΠΌΡ‹ΡˆΠΈΠ½ΠΎΠΌ событии ΠΏΠΎ Ρ„ΠΎΡ€ΠΌΠ΅: {событиС, x, y} ΠΈΠ»ΠΈ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ -1, Ссли Π½ΠΈΠΊΠ°ΠΊΠΈΡ… событий с ΠΌΠΎΠΌΠ΅Π½Ρ‚Π° послСднСго Π²Ρ‹Π·ΠΎΠ²Π° get_mouse() Π½Π΅ Π±Ρ‹Π»ΠΎ.

Π’ Ρ„Π°ΠΉΠ»Π΅ mouse.e ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Ρ‹ Π³Π»ΠΎΠ±Π°Π»ΡŒΠ½Ρ‹Π΅ константы для ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΡ… Π²ΠΎΠ·ΠΌΠΎΠΆΠ½Ρ‹Ρ… ΠΌΡ‹ΡˆΠΈΠ½Ρ‹Ρ… событий (Π½Π°ΠΆΠ°Ρ‚ΠΈΠΉ Π½Π° ΠΊΠ½ΠΎΠΏΠΊΠΈ):


global constant MOVE = 1, -- Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅

LEFT_DOWN = 2, -- лСвая Π½Π°ΠΆΠ°Ρ‚Π°

LEFT_UP = 4, -- лСвая ΠΎΡ‚ΠΏΡƒΡ‰Π΅Π½Π°

RIGHT_DOWN = 8, -- правая Π½Π°ΠΆΠ°Ρ‚Π°

RIGHT_UP = 16, -- правая ΠΎΡ‚ΠΏΡƒΡ‰Π΅Π½Π°

MIDDLE_DOWN = 32, -- срСдняя Π½Π°ΠΆΠ°Ρ‚Π°

MIDDLE_UP = 64 -- срСдняя ΠΎΡ‚ΠΏΡƒΡ‰Π΅Π½Π°


Π’Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹ x ΠΈ y ΡΠ²Π»ΡΡŽΡ‚ΡΡ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ курсора ΠΌΡ‹ΡˆΠΈ Π½Π° ΠΌΠΎΠΌΠ΅Π½Ρ‚ ΠΏΡ€ΠΎΠΈΠ·ΠΎΡˆΠ΅Π΄ΡˆΠ΅Π³ΠΎ события. Ѐункция get_mouse() Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Π½Π΅ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ ΠΈΠ»ΠΈ -1, ΠΈΠ»ΠΈ событиС. Ѐункция Π½Π΅ ΠΎΠΆΠΈΠ΄Π°Π΅Ρ‚ событий. Π’Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ обстановку Π½Π° ΠΌΡ‹ΡˆΠΈ достаточно часто, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΈΠ·Π±Π΅ΠΆΠ°Ρ‚ΡŒ пропуска событий. Когда случаСтся ΠΎΡ‡Π΅Ρ€Π΅Π΄Π½ΠΎΠ΅ событиС, Π΄Π°Π½Π½Ρ‹Π΅ ΠΎ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅ΠΌ Ρ‚Π΅Ρ€ΡΡŽΡ‚ΡΡ, Ссли Π²Ρ‹ Π½Π΅ успСли ΠΏΡ€ΠΎΡ‡ΠΈΡ‚Π°Ρ‚ΡŒ ΠΈΡ…. На ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ΅ нСслоТно ΠΎΡ‚ΡΠ»Π΅Π΄ΠΈΡ‚ΡŒ практичСски всС события. ΠŸΠΎΡ‚Π΅Ρ€Ρ события MOVE Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС Π½Π΅ ΠΎΡ‡Π΅Π½ΡŒ ΠΊΡ€ΠΈΡ‚ΠΈΡ‡Π½Π°, Ρ‚Π°ΠΊ ΠΊΠ°ΠΊ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ MOVE ΠΏΠΎΠΊΠ°ΠΆΡƒΡ‚ Π²Π°ΠΌ, Π³Π΄Π΅ находится курсор ΠΌΡ‹ΡˆΠΈ.

Π˜Π½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡ ΠΎ Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… событиях, происходящих ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ, Ρ‚Π°ΠΊΠΆΠ΅ ΠΌΠΎΠΆΠ΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒΡΡ. НапримСр, Ссли ΠΌΡ‹ΡˆΡŒ пСрСдвигаСтся с Π½Π°ΠΆΠ°Ρ‚ΠΎΠΉ Π»Π΅Π²ΠΎΠΉ ΠΊΠ½ΠΎΠΏΠΊΠΎΠΉ, get_mouse() Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ события LEFT_DOWN + MOVE, Ρ‚.Π΅. 2 + 1, Ρ‡Ρ‚ΠΎ Ρ€Π°Π²Π½ΠΎ 3. По этой ΠΏΡ€ΠΈΡ‡ΠΈΠ½Π΅ Π²Ρ‹ Π΄ΠΎΠ»ΠΆΠ½Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΡΡ‚ΡŒ ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΈ Π²Ρ‹Π΄Π΅Π»ΡΡ‚ΡŒ частныС события с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ and_bits(). ΠŸΡ€ΠΎΡΠΌΠΎΡ‚Ρ€ΠΈΡ‚Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹ Π½ΠΈΠΆΠ΅, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΡƒΡΡΠ½ΠΈΡ‚ΡŒ Π΄Π΅Ρ‚Π°Π»ΠΈ.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

Π’ ΠΏΠΈΠΊΡΠ΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… с ΡˆΠΈΡ€ΠΈΠ½ΠΎΠΉ экрана 320 пиксСлов Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π±ΡƒΠ΄Π΅Ρ‚ Π΄Π΅Π»ΠΈΡ‚ΡŒ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ x Π½Π° 2, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡Π°Ρ‚ΡŒ ΠΏΡ€Π°Π²ΠΈΠ»ΡŒΠ½ΡƒΡŽ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ курсора Π½Π° экранС (странная ΠΎΡΠΎΠ±Π΅Π½Π½ΠΎΡΡ‚ΡŒ DOS.)

Π’ тСкстовых Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… DOS32 Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ ΠΌΠ°ΡΡˆΡ‚Π°Π±ΠΈΡ€ΠΎΠ²Π°Ρ‚ΡŒ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ x ΠΈ y, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΏΠΎΠ»ΡƒΡ‡ΠΈΡ‚ΡŒ ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ ΠΏΠΎ строкам ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°ΠΌ.

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΠΎΠ²Π°Ρ‚ΡŒ get_mouse() ΠΏΠΎΠ΄ DOS32, Π²Π°ΠΌ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌ Π·Π°Π³Ρ€ΡƒΠΆΠ΅Π½Π½Ρ‹ΠΉ Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ DOS для ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ связи с ΠΏΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½Π½ΠΎΠΉ ΠΊ ΠΏΠΎΡ€Ρ‚Ρƒ ΠΌΡ‹ΡˆΡŒΡŽ.

Π’Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π²Ρ‹Π·Ρ‹Π²Π°Ρ‚ΡŒ get_mouse() Π² Π±ΠΎΠ»ΡŒΡˆΠΈΠ½ΡΡ‚Π²Π΅ тСкстовых ΠΈ ΠΏΠΈΠΊΡΠ΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠΎΠ².

ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² get_mouse(), ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ Π΄Π΅Π»Π°Π΅Ρ‚Π΅, Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ курсор ΠΌΡ‹ΡˆΠΈ ΠΈΠ»ΠΈ подсвСчиваСт ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ символа, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится курсор.

DOS Π² ΠΎΠ±Ρ‰Π΅ΠΌ случаС Π½Π΅ обСспСчиваСт использованиС ΠΌΡ‹ΡˆΠΈ Π² графичСских Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… SVGA (экраны с числом пиксСлов Π±ΠΎΠ»Π΅Π΅ 640x480). Π­Ρ‚ΠΎ ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π΅Π½ΠΈΠ΅ снято Π² Windows 95 (DOS 7.0). Грэм Π‘Π°Ρ€ΠΊΠΈ, ΠŸΠΈΡ‚Π΅Ρ€ Π‘Π»ΡŽ ΠΈ Π΄Ρ€ΡƒΠ³ΠΈΠ΅ программисты Ρ€Π°ΡΠΏΡ€ΠΎΡΡ‚Ρ€Π°Π½ΡΡŽΡ‚ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹ для ΠΌΡ‹ΡˆΠΈ, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Π΅ Ρ€Π΅ΡˆΠ°ΡŽΡ‚ ΠΏΡ€ΠΎΠ±Π»Π΅ΠΌΡ‹, связанныС с использованиСм ΠΌΡ‹ΡˆΠΈ Π² SVGA. ΠŸΠΎΡΠ΅Ρ‚ΠΈΡ‚Π΅ Π² Π˜Π½Ρ‚Π΅Ρ€Π½Π΅Ρ‚ страницу Архива Ρ„Π°ΠΉΠ»ΠΎΠ² Euphoria.

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ x ΠΈ y, Π²Ρ‹Π΄Π°Π²Π°Π΅ΠΌΡ‹Π΅ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠ΅ΠΉ, Π±ΡƒΠ΄ΡƒΡ‚ ΡΠΎΠ²ΠΏΠ°Π΄Π°Ρ‚ΡŒ с ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ острия курсора ΠΌΡ‹ΡˆΠΈ ΠΈΠ»ΠΈ ΠΌΠΎΠ³ΡƒΡ‚ ΠΎΡ‚Π½ΠΎΡΠΈΡ‚ΡŒΡΡ ΠΊ Π±Π»ΠΈΠΆΠ°ΠΉΡˆΠ΅ΠΌΡƒ пиксСлу, Π½Π° ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ это остриС ΡƒΠΊΠ°Π·Ρ‹Π²Π°Π΅Ρ‚. ΠŸΡ€ΠΎΠ²Π΅Ρ€ΡŒΡ‚Π΅ это, Ссли Π²Ρ‹ ΠΏΡ‹Ρ‚Π°Π΅Ρ‚Π΅ΡΡŒ ΠΏΡ€ΠΎΡ‡Π΅ΡΡ‚ΡŒ Ρ†Π²Π΅Ρ‚ пиксСла с ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ get_pixel(). ΠœΠΎΠΆΠ΅Ρ‚ ΠΎΠΊΠ°Π·Π°Ρ‚ΡŒΡΡ, Ρ‡Ρ‚ΠΎ Π²Π°ΠΌ Π½ΡƒΠΆΠ½Ρ‹ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ x-1, y-1 вмСсто x, y.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 1:

Π’Ρ‹Π΄Π°Π½Π½Ρ‹Π΅ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρ‹:


{2, 100, 50}


говорят ΠΎ Ρ‚ΠΎΠΌ, Ρ‡Ρ‚ΠΎ Π² Π΄Π°Π½Π½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ лСвая ΠΊΠ½ΠΎΠΏΠΊΠ° Π½Π°ΠΆΠ°Ρ‚Π°, Π° курсор ΠΌΡ‹ΡˆΠΈ находится Π½Π° экранС Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ с ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π°ΠΌΠΈ x=100, y=50.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€ 2:

Π§Ρ‚ΠΎΠ±Ρ‹ ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΈΡ‚ΡŒ LEFT_DOWN, Ρ‚.Π΅. Π½Π΅ Π½Π°ΠΆΠ°Ρ‚Π° Π»ΠΈ лСвая ΠΊΠ½ΠΎΠΏΠΊΠ°, Π½Π°ΠΏΠΈΡˆΠΈΡ‚Π΅ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ Π½Π°ΠΏΠΎΠ΄ΠΎΠ±ΠΈΠ΅ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅ΠΉ:


object event


while 1 do

event = get_mouse()

if sequence(event) then

if and_bits(event[1], LEFT_DOWN) then

-- лСвая ΠΊΠ½ΠΎΠΏΠΊΠ° Π±Ρ‹Π»Π° Π½Π°ΠΆΠ°Ρ‚Π°

exit

end if

end if

end while


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

mouse_events, mouse_pointer, and_bits


get_pixel


ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°:

DOS32

Бинтаксис:

x = get_pixel(s)

ОписаниС:

Когда s являСтся 2-Ρ… элСмСнтным рядом экранных ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚ {x, y}, get_pixel() Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Π½ΠΎΠΌΠ΅Ρ€ Ρ†Π²Π΅Ρ‚Π° пиксСла Π½Π° пиксСльном экранС Π² этой Ρ‚ΠΎΡ‡ΠΊΠ΅ (нСбольшоС Ρ†Π΅Π»ΠΎΠ΅ число).

Когда s являСтся 3-Ρ… элСмСнтным рядом Ρ„ΠΎΡ€ΠΌΡ‹ {x, y, n}, get_pixel() Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ряд ΠΈΠ· n Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Ρ†Π²Π΅Ρ‚ΠΎΠ² для Ρ‚ΠΎΡ‡Π΅ΠΊ, начиная с {x, y} ΠΈ с шагом 1 Π²ΠΏΡ€Π°Π²ΠΎ, {x+1, y}, {x+2, y} ΠΈ Ρ‚.Π΄.

Π’ΠΎΡ‡ΠΊΠΈ Π·Π° ΠΏΡ€Π΅Π΄Π΅Π»Π°ΠΌΠΈ экрана ΠΈΠΌΠ΅ΡŽΡ‚ нСпрСдсказуСмыС Π½ΠΎΠΌΠ΅Ρ€Π° Ρ†Π²Π΅Ρ‚ΠΎΠ².

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

Когда Π°Ρ€Π³ΡƒΠΌΠ΅Π½Ρ‚ n Π·Π°Π΄Π°Π½, для чтСния Ρ†Π²Π΅Ρ‚ΠΎΠ² пиксСлов ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΎΡ‡Π΅Π½ΡŒ быстрый Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ. Он Π·Π½Π°Ρ‡ΠΈΡ‚Π΅Π»ΡŒΠ½ΠΎ быстрСС, Ρ‡Π΅ΠΌ ΠΏΠΎΠΎΡ‡Π΅Ρ€Ρ‘Π΄Π½Ρ‹ΠΉ Π²Ρ‹Π·ΠΎΠ² get_pixel() для чтСния Ρ†Π²Π΅Ρ‚Π° ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰Π΅Π³ΠΎ пиксСла.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


object x


x = get_pixel({30,40})

-- x Π΄Π°Ρ‘Ρ‚ Π·Π½Π°Ρ‡Π΅Π½ΠΈΠ΅ Ρ†Π²Π΅Ρ‚Π° Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ x=30, y=40


x = get_pixel({30,40,100})

-- x Π΄Π°Ρ‘Ρ‚ ряд ΠΈΠ· 100 Π½ΠΎΠΌΠ΅Ρ€ΠΎΠ² Ρ†Π²Π΅Ρ‚Π°, ΠΏΡ€Π΅Π΄ΡΡ‚Π°Π²Π»ΡΡŽΡ‰ΠΈΡ…

-- строчку пиксСлов, Π½Π°Ρ‡ΠΈΠ½Π°ΡŽΡ‰ΡƒΡŽΡΡ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ {30,40} ΠΈ ΠΈΠ΄ΡƒΡ‰ΡƒΡŽ Π²ΠΏΡ€Π°Π²ΠΎ


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

pixel, graphics_mode, get_position


get_position


Бинтаксис:

include graphics.e

s = get_position()

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ Π½ΠΎΠΌΠ΅Ρ€Π° Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΡ… строки ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΠΈ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ находится курсор, ΠΊΠ°ΠΊ 2-Ρ… элСмСнтный ряд Π²ΠΈΠ΄Π° {строка, ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ°}.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

Ѐункция get_position() Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ Π² ΠΎΠ±ΠΎΠΈΡ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… - тСкстовом ΠΈ пиксСльном. Π’ ΠΏΠΈΠΊΡΠ΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… курсор Π½Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²ΠΈΠ΄Π΅Π½, Π½ΠΎ get_position() Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π΄Π°Π²Π°Ρ‚ΡŒ строку ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ, Π² ΠΊΠΎΡ‚ΠΎΡ€Ρ‹Ρ… появится ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ символ.

БистСма ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ символы, отличаСтся ΠΎΡ‚ Ρ‚ΠΎΠΉ, Π² ΠΊΠΎΡ‚ΠΎΡ€ΠΎΠΉ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ пиксСлы. ΠŸΠΈΠΊΡΠ΅Π»Ρ‹ ΠΎΡ‚ΠΎΠ±Ρ€Π°ΠΆΠ°ΡŽΡ‚ΡΡ Ρ‚Π°ΠΊ, Ρ‡Ρ‚ΠΎ Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ находится Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (x=0,y=0) ΠΈ пСрвая ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° управляСт Π³ΠΎΡ€ΠΈΠ·ΠΎΠ½Ρ‚Π°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, слСва Π½Π°ΠΏΡ€Π°Π²ΠΎ. Для символов ΠΆΠ΅ пСрвая ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° управляСт Π²Π΅Ρ€Ρ‚ΠΈΠΊΠ°Π»ΡŒΠ½Ρ‹ΠΌ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΠΌ, свСрху Π²Π½ΠΈΠ·, Π° Π²Π΅Ρ€Ρ…Π½ΠΈΠΉ Π»Π΅Π²Ρ‹ΠΉ находится Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ 1,1. Π’ ΠΏΠΈΠΊΡΠ΅Π»ΡŒΠ½Ρ‹Ρ… Ρ€Π΅ΠΆΠΈΠΌΠ°Ρ… Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° экран ΠΈ пиксСлы, ΠΈ тСкст. Ѐункция get_position() Π²Ρ‹Π΄Π°Ρ‘Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠ΅ строку ΠΈ ΠΊΠΎΠ»ΠΎΠ½ΠΊΡƒ для Π²Ρ‹Π²ΠΎΠ΄ΠΈΠΌΠΎΠ³ΠΎ Π²Π°ΠΌΠΈ тСкста, Π° Π½Π΅ для пиксСла, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ Π²Ρ‹ ΡΠΎΠ±ΠΈΡ€Π°Π΅Ρ‚Π΅ΡΡŒ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ. Π‘ΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π°Ρ функция для получСния Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ ΠΏΠΎΠ·ΠΈΡ†ΠΈΠΈ пиксСла Π² языкС Euphoria отсутствуСт.

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

position, get_pixel


get_screen_char


Бинтаксис:

include image.e

s = get_screen_char(i1, i2)

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ 2-элСмСнтный ряд s Π² Ρ„ΠΎΡ€ΠΌΠ΅ {ΠΊΠΎΠ΄ ascii, Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚} для символа Π½Π° экранС Π² строкС i1, ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ΅ i2. Ряд s состоит ΠΈΠ· Π΄Π²ΡƒΡ… Π°Ρ‚ΠΎΠΌΠΎΠ². ΠŸΠ΅Ρ€Π²Ρ‹ΠΉ Π΄Π°Ρ‘Ρ‚ ΠΊΠΎΠ΄ ASCII для символа. Π’Ρ‚ΠΎΡ€ΠΎΠΉ ΠΆΠ΅ содСрТит ΠΈΠ½Ρ„ΠΎΡ€ΠΌΠ°Ρ†ΠΈΡŽ ΠΎ Ρ†Π²Π΅Ρ‚Π°Ρ… символа ΠΈ Ρ„ΠΎΠ½Π° ΠΈ, Π²ΠΎΠ·ΠΌΠΎΠΆΠ½ΠΎ, Π΄Ρ€ΡƒΠ³ΠΈΠ΅ Π΄Π°Π½Π½Ρ‹Π΅, относящиСся ΠΊ Π²Π½Π΅ΡˆΠ½Π΅ΠΌΡƒ Π²ΠΈΠ΄Ρƒ символа Π½Π° экранС.

ΠšΠΎΠΌΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈΠΈ:

Π‘ ΠΏΠΎΠΌΠΎΡ‰ΡŒΡŽ ΠΏΠΎΠ΄ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌ get_screen_char() ΠΈ put_screen_char() Π²Ρ‹ ΠΌΠΎΠΆΠ΅Ρ‚Π΅ Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Ρ‚ΡŒ ΠΈ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒ Π½Π° экран символы с ΠΈΡ… Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚Π°ΠΌΠΈ.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


-- Π·Π°ΠΏΠΎΠΌΠΈΠ½Π°Π΅Ρ‚ Π² рядС s символ ΠΈ Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ ΠΈΠ· Π²Π΅Ρ€Ρ…Π½Π΅Π³ΠΎ Π»Π΅Π²ΠΎΠ³ΠΎ ΡƒΠ³Π»Π° экрана

s = get_screen_char(1,1)

-- Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ ΠΈΠ· ряда s символ с Π΅Π³ΠΎ Π°Ρ‚Ρ€ΠΈΠ±ΡƒΡ‚ΠΎΠΌ Π² ΠΏΠΎΠ·ΠΈΡ†ΠΈΡŽ строка 25, ΠΊΠΎΠ»ΠΎΠ½ΠΊΠ° 10

put_screen_char(25, 10, {s})


Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

put_screen_char, save_text_image


get_vector


ΠŸΠ»Π°Ρ‚Ρ„ΠΎΡ€ΠΌΠ°:

DOS32

Бинтаксис:

include machine.e

s = get_vector(i)

ОписаниС:

Π’Ρ‹Π΄Π°Ρ‘Ρ‚ Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ дальний адрСс Π·Π°Ρ‰ΠΈΡ‰Π΅Π½Π½ΠΎΠ³ΠΎ Ρ€Π΅ΠΆΠΈΠΌΠ° для ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ° прСрывания Π½ΠΎΠΌΠ΅Ρ€ i. Ряд s Π±ΡƒΠ΄Π΅Ρ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ 2 элСмСнта: {16-Π±ΠΈΡ‚Π½Ρ‹ΠΉ сСгмСнт, 32-Π±ΠΈΡ‚Π½ΠΎΠ΅ смСщСниС}.

ΠŸΡ€ΠΈΠΌΠ΅Ρ€:


s = get_vector(#1C)

-- s Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ дальний адрСс ΠΎΠ±Ρ€Π°Π±ΠΎΡ‚Ρ‡ΠΈΠΊΠ°

-- прСрывания ΠΎΡ‚ Ρ‚Π°ΠΉΠΌΠ΅Ρ€Π°, Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€: {59, 808}


ΠŸΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹:

demo\dos32\hardint.ex

Π‘ΠΌ. Ρ‚Π°ΠΊΠΆΠ΅:

set_vector, lock_memory


getc


Бинтаксис:

i = getc(fn)

ОписаниС:

Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅Ρ‚ ΠΈ Π²Ρ‹Π΄Π°Ρ‘Ρ‚ ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠΉ символ (Π±Π°ΠΉΡ‚) ΠΈΠ· Ρ„Π°ΠΉΠ»Π° ΠΈΠ»ΠΈ с устройства fn. ΠšΠΎΠ΄Ρ‹ символов Π±ΡƒΠ΄ΡƒΡ‚ ΠΈΠΌΠ΅Ρ‚ΡŒ Π²Π΅Π»ΠΈΡ‡ΠΈΠ½Ρƒ ΠΎΡ‚ 0 Π΄ΠΎ 255. ΠŸΡ€ΠΈ достиТСнии ΠΊΠΎΠ½Ρ†Π° Ρ„Π°ΠΉΠ»Π° выдаётся -1.