ΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² написании студСнчСских Ρ€Π°Π±ΠΎΡ‚
АнтистрСссовый сСрвис

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ «баскСтбол»

Π”ΠΈΠΏΠ»ΠΎΠΌΠ½Π°ΡΠŸΠΎΠΌΠΎΡ‰ΡŒ Π² Π½Π°ΠΏΠΈΡΠ°Π½ΠΈΠΈΠ£Π·Π½Π°Ρ‚ΡŒ ΡΡ‚ΠΎΠΈΠΌΠΎΡΡ‚ΡŒΠΌΠΎΠ΅ΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹

ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈΠ³Ρ€Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π²ΠΏΡ€Π°Π²ΠΎ ΠΈΠ»ΠΈ Π²Π»Π΅Π²ΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ броска. Ѐункция findy (x:real;y:real;vx:real;vy:real):real — Ѐункция нахоТдСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ мяча ΠΏΠΎ ΠΎΡΠΈ y. ΠšΠΎΠ½Π΅Ρ† Ρ†Π²Π΅Ρ‚ ΠΏΠ΅Ρ€Π° — Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (hand, ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ (yp)). Π’ ΡΡ‚ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ нСльзя ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ броска. Uses graph, crt;{ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ графичСской… Π§ΠΈΡ‚Π°Ρ‚ΡŒ Π΅Ρ‰Ρ‘ >

Π Π°Π·Ρ€Π°Π±ΠΎΡ‚ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ½ΠΎΠΉ ΠΈΠ³Ρ€Ρ‹ «баскСтбол» (Ρ€Π΅Ρ„Π΅Ρ€Π°Ρ‚, курсовая, Π΄ΠΈΠΏΠ»ΠΎΠΌ, ΠΊΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Π°Ρ)

ΠœΠΈΠ½ΠΈΡΡ‚Π΅Ρ€ΡΡ‚Π²ΠΎ образования Российской Π€Π΅Π΄Π΅Ρ€Π°Ρ†ΠΈΠΈ

ΠšΠ ΠΠ‘ΠΠžΠ―Π Π‘ΠšΠ˜Π™ Π“ΠžΠ‘Π£Π”ΠΠ Π‘Π’Π’Π•ΠΠΠ«Π™ Π’Π•Π₯ΠΠ˜Π§Π•Π‘ΠšΠ˜Π™

Π£ΠΠ˜Π’Π•Π Π‘Π˜Π’Π•Π’

ΠšΠ°Ρ„Π΅Π΄Ρ€Π°

ΠšΠ£Π Π‘ΠžΠ’ΠΠ― Π ΠΠ‘ΠžΠ’Π

ΠšΡ€Π°ΡΠ½ΠΎΡΡ€ΡΠΊ 2002

1 Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ

2 ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

3 Π£ΠΊΡ€ΡƒΠΏΠ½Π΅Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

4 Π’Π°Π±Π»ΠΈΡ†Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²

5 ОписаниС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

6 Алгоритм

7 ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

8 ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

1 Π—Π°Π΄Π°Π½ΠΈΠ΅ ΠΊ ΠΏΡ€ΠΎΠ΅ΠΊΡ‚Ρƒ

НСобходимо Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡƒ — ΠΈΠ³Ρ€Ρƒ «Π±Π°ΡΠΊΠ΅Ρ‚Π±ΠΎΠ»». Π”ΠΎΠ»ΠΆΠ΅Π½Ρ‹ Π±Ρ‹Ρ‚ΡŒ ΡƒΠΏΡ€ΠΎΡ‰Π΅Π½Π½ΠΎ ΠΈΠ·ΠΎΠ±Ρ€Π°ΠΆΠ΅Π½Ρ‹ Π±Π°ΡΠΊΠ΅Ρ‚Π±ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‰ΠΈΡ‚ ΠΈ ΠΈΠ³Ρ€ΠΎΠΊ. НСобходимо, Ρ‡Ρ‚ΠΎΠ±Ρ‹ ΠΌΠΎΠΆΠ½ΠΎ Π±Ρ‹Π»ΠΎ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΠ°, Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ бросока ΠΈ Π΅Π³ΠΎ силу.

ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€Π½Π°Ρ ΠΈΠ³Ρ€Π° Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

2 ОписаниС ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

Π’Π°ΠΊ ΠΊΠ°ΠΊ ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ графичСский Ρ€Π΅ΠΆΠΈΠΌ, Ρ‚ΠΎ Π΄Π»Ρ Π΅Π΅ ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ Ρ€Π°Π±ΠΎΡ‚Ρ‹ Π² ΠΏΠ°ΠΏΠΊΠ΅, Π³Π΄Π΅ находится basket. exe Π΄ΠΎΠ»ΠΆΠ΅Π½ Π½Π°Ρ…ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ ΠΈ Ρ„Π°ΠΉΠ» egavga. bgi, ΠΈΠ½Π°Ρ‡Π΅ Π±ΡƒΠ΄Π΅Ρ‚ Π²Ρ‹Π²ΠΎΠ΄ΠΈΡ‚ΡŒΡΡ сообщСниС ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ.

ΠŸΡ€ΠΈ ΠΏΠΎΠΌΠΎΡ‰ΠΈ ΠΊΠ»Π°Π²ΠΈΠ°Ρ‚ΡƒΡ€Ρ‹ ΠΈΠ³Ρ€Π°ΡŽΡ‰ΠΈΠΉ ΠΌΠΎΠΆΠ΅Ρ‚ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Ρ‰Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π²ΠΏΡ€Π°Π²ΠΎ ΠΈΠ»ΠΈ Π²Π»Π΅Π²ΠΎ, ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ броска.

Π£ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅:

A — Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π²Π»Π΅Π²ΠΎ

D — Π΄Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π²ΠΏΡ€Π°Π²ΠΎ

W — ΡƒΠ²Π΅Π»ΠΈΡ‡Π΅Π½ΠΈΠ΅ ΡƒΠ³Π»Π° броска

S — ΡƒΠΌΠ΅Π½ΡŒΡˆΠ΅Π½ΠΈΠ΅ ΡƒΠ³Π»Π° броска

SPACE — Ρ€Π΅ΠΆΠΈΠΌ броска, бросок ПослС наТатия Π½Π° SPACE Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ Ρ€Π΅ΠΆΠΈΠΌ броска. Π’ Π»Π΅Π²ΠΎΠΌ Π²Π΅Ρ€Ρ…Π½Π΅ΠΌ ΡƒΠ³Π»Ρƒ экрана появится ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ, ΠΏΠΎΠΊΠ°Π·Ρ‹Π²Π°ΡŽΡ‰ΠΈΠΉ силу броска. Π‘ΠΈΠ»Π° броска Π±ΡƒΠ΄Π΅Ρ‚ цикличСски ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒΡΡ ΠΎΡ‚ 0 Π΄ΠΎ ΠΌΠ°ΠΊΡΠΈΠΌΡƒΠΌΠ°. Π§Π΅ΠΌ большС высота ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊΠ°, Ρ‚Π΅ΠΌ сильнСС получится бросок. Максимальная сила ΠΎΡ‚ΠΌΠ΅Ρ‡Π΅Π½Π° Ρ‡Π΅Ρ€Ρ‚ΠΎΠΉ. Для ΡΠΎΠ²Π΅Ρ€ΡˆΠ΅Π½ΠΈΡ броска Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΎ Π² Π½ΡƒΠΆΠ½Ρ‹ΠΉ ΠΌΠΎΠΌΠ΅Π½Ρ‚ Π΅Ρ‰Π΅ Ρ€Π°Π· Π½Π°ΠΆΠ°Ρ‚ΡŒ SPACE. Π—Π°Ρ‚Π΅ΠΌ ΠΌΠΎΠΆΠ½ΠΎ ΡƒΠ²ΠΈΠ΄Π΅Ρ‚ΡŒ ΠΏΠΎΠ»Π΅Ρ‚ мяча. Волько послС этого Ρ€Π΅ΠΆΠΈΠΌ броска Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ΡΡ.

Π’ ΡΡ‚ΠΎΠΌ Ρ€Π΅ΠΆΠΈΠΌΠ΅ нСльзя ΠΏΠ΅Ρ€Π΅Π΄Π²ΠΈΠ³Π°Ρ‚ΡŒ ΠΈΠ³Ρ€ΠΎΠΊΠ° ΠΈΠ»ΠΈ ΠΈΠ·ΠΌΠ΅Π½ΡΡ‚ΡŒ Π½Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅ броска.

3 Π£ΠΊΡ€ΡƒΠΏΠ½Π΅Π½Π½Ρ‹ΠΉ Π°Π»Π³ΠΎΡ€ΠΈΡ‚ΠΌ

4 Π’Π°Π±Π»ΠΈΡ†Π° ΠΈΠ΄Π΅Π½Ρ‚ΠΈΡ„ΠΈΠΊΠ°Ρ‚ΠΎΡ€ΠΎΠ²

Имя ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎΠΉ

Π’ΠΈΠΏ

НазначСниС

grdriver

integer

Π‘Π»ΡƒΠΆΠ΅Π±Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для Π²ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΡ ΠΈ Π½Π°ΡΡ‚Ρ€ΠΎΠΉΠΊΠΈ графичСского Ρ€Π΅ΠΆΠΈΠΌΠ°

grmode

integer

errcode

integer

x

integer

ПолоТСниС ΠΈΠ³Ρ€ΠΎΠΊΠ°

xprev

integer

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΠ°

step

integer

Π¨Π°Π³ ΠΈΠ³Ρ€ΠΎΠΊΠ°

radius

integer

Радиус мяча

handx

integer

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° мяча ΠΈ Ρ€ΡƒΠΊΠΈ ΠΏΠΎ ΠΎΡΠΈ x

handy

integer

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° мяча ΠΈ Ρ€ΡƒΠΊΠΈ ΠΏΠΎ ΠΎΡΠΈ y

v

integer

Π‘ΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ мяча

delay1

integer

Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ°

change

integer

Π‘Ρ‹Π»Π° Π»ΠΈ Π½Π°ΠΆΠ°Ρ‚Π° клавиша

angle

Real

НаправлСниС Ρ€ΡƒΠΊΠΈ (броска)

angleprev

Real

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π΅Π΅ НаправлСниС Ρ€ΡƒΠΊΠΈ

anglestep

Real

ИзмСнСниС направлСния Ρ€ΡƒΠΊΠΈ

key

Char

ВвСдСнная клавиша

yc

real

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° мяча ΠΏΠΎ ΠΎΡΠΈ y

i

integer

Π‘Ρ‡Π΅Ρ‚Ρ‡ΠΈΠΊ

direction

integer

НаправлСниС ΠΏΠΎΠ»Π΅Ρ‚Π° мяча

hand

integer

ВрСмСнная пСрСмСнная

goal

integer

Π‘Ρ‹Π» Π»ΠΈ Π³ΠΎΠ»

y

real

ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° мяча ΠΏΠΎ ΠΎΡΠΈ y

yp

real

ΠŸΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Π° мяча ΠΏΠΎ ΠΎΡΠΈ y

vx

real

Π‘ΠΊΠΎΠΊΠΎΡΡ‚ΡŒ мяча ΠΏΠΎ ΠΎΡΠΈ x

vy

real

Π‘ΠΊΠΎΠΊΠΎΡΡ‚ΡŒ мяча ΠΏΠΎ ΠΎΡΠΈ y

distance

real

РасстояниС ΠΎΡ‚ ΠΌΡΡ‡Π° Π΄ΠΎ «ΡƒΠ³Π»Π°» ΠΊΠΎΠ»ΡŒΡ†Π°

k

real

Π‘Ρ‹Π» Π»ΠΈ ΡƒΠ΄Π°Ρ€ мяча ΠΎΠ± ΠΊΠΎΠ»ΡŒΡ†ΠΎ

k1

real

Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

tmp

Real

tmp1

Real

tmp2

Real

5 ОписаниС ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€ ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΉ

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° showbasket — ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, Ρ€ΠΈΡΡƒΡŽΡ‰Π°Ρ Π±Π°ΡΠΊΠ΅Ρ‚Π±ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‰ΠΈΡ‚.

Ѐункция findy (x:real;y:real;vx:real;vy:real):real — Ѐункция нахоТдСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ мяча ΠΏΠΎ ΠΎΡΠΈ y.

ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° showplayer (x:integer;angle:real) — ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, Ρ€ΠΈΡΡƒΡŽΡ‰Π°Ρ ΠΈΠ³Ρ€ΠΎΠΊΠ°.

ΠŸΡ€ΠΎΡ†Π΅Π΄Ρ€Π° shot (x:integer;angle:real) — ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° «Π‘росок мяча» .

6 Алгоритм

ΠŸΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΠ° basketball

ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊ crt, graph

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅:

grdriver, grmode, errcode, x, xprev, step, radius: integer

handx, handy, v, delay1,change:integer

angle, angleprev, anglestep: real

key:char

ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° showbasket

Π½Π°Ρ‡Π°Π»ΠΎ

ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€ΠΎ Π² (130,100)

провСсти линию Π² (135,100)

провСсти линию Π² (135,230)

провСсти линию Π² (130,230)

провСсти линию Π² (130,100)

ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€ΠΎ Π² (130,150)

провСсти линию Π² (85,175)

провСсти линию Π² (35,250)

провСсти линию Π² (5,460)

провСсти линию Π² (60,280)

провСсти линию Π² (85,175)

ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€ΠΎ Π² (130,190)

провСсти линию Π² (90,215)

провСсти линию Π² (60,280)

провСсти линию Π² (65,460)

провСсти линию Π² (35,250)

провСсти линию Π² (90,215)

провСсти линию Π² (85,175)

провСсти линию Π² (130,190)

провСсти линию ΠΈΠ· (0,460) Π² (639,460)

ΠΏΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€ΠΎ Π² (135,190)

провСсти линию Π² (185,190)

провСсти линию Π² (185,192)

провСсти линию Π² (135,192)

ΠΊΠΎΠ½Π΅Ρ† функция Π²Ρ‹Π·ΠΎΠ² findy (x:realy:realvx:realvy:real):real

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ yc: real

Π½Π°Ρ‡Π°Π»ΠΎ

yc=y-vy/sqrt (v*v+0.0001)

Π²ΠΎΠ·Π²Ρ€Π°Ρ‚ yc ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ ΠΊΠΎΠ½Π΅Ρ† ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° showplayer (x:integerangle:real)

Π½Π°Ρ‡Π°Π»ΠΎ

Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ эллипс (x, 350,0,360,23,40)

провСсти линию ΠΈΠ· (x-10,385) Π² (x-20,459)

провСсти линию ΠΈΠ· (x+10,385) Π² (x+20,459)

Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (x, 297) с Ρ€Π°Π΄ΠΈΡƒΡΠΎΠΌ 13

handx=x-ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ (60*cos (angle))

handy=297+ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ (60*sin (angle))

провСсти линию ΠΈΠ· (x, 330) Π² (handx, handy)

ΠΊΠΎΠ½Π΅Ρ† ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° shot (x:integerangle:real)

ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅

i, direction, hand, goal: integer

y, yp, vx, vy, distance, k, k1,tmp, tmp1, tmp2:real

Π½Π°Ρ‡Π°Π»ΠΎ

goal=0

i=1

v=0

hand=handx

yp=handy

Π—Π°ΠΊΡ€Π°ΡΠΈΡ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ (550,20,600,40) Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ

ΠΏΠΎΠΊΠ° Π½Π΅ Π½Π°ΠΆΠ°Ρ‚Π° клавиша Π΄Π΅Π»Π°Ρ‚ΡŒ

Π½Π°Ρ‡Π°Π»ΠΎ

Ссли v<50 Ρ‚ΠΎ v=v+1

ΠΈΠ½Π°Ρ‡Π΅ v=0

провСсти линию ΠΈΠ· (10,100) Π² (20,100)

Π—Π°ΠΊΡ€Π°ΡΠΈΡ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ (10,50,20,50+v) Π±Π΅Π»Ρ‹ΠΌ Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (delay1*10)

Π—Π°ΠΊΡ€Π°ΡΠΈΡ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ (10,50,20,50+v) Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ

ΠšΠΎΠ½Π΅Ρ† Ρ†Π²Π΅Ρ‚ ΠΏΠ΅Ρ€Π° — Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (hand, ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ (yp))

с Ρ€Π°Π΄ΠΈΡƒΡΠΎΠΌ radius

Ρ†Π²Π΅Ρ‚ ΠΏΠ΅Ρ€Π° — Π±Π΅Π»Ρ‹ΠΉ

vy=-ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (v)*синус (angle)*7

vx=v*косинус (angle)

yp=Π²Ρ‹Π·ΠΎΠ² findy (handx, yp, vx, vy)

direction=1

k1=0

для i ΠΎΡ‚ 0 Π΄ΠΎ 800 Π΄Π΅Π»Π°Ρ‚ΡŒ

Π½Π°Ρ‡Π°Π»ΠΎ

tmp=hand-direction*(i-1)

Ρ†Π²Π΅Ρ‚ ΠΏΠ΅Ρ€Π° — Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ

Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ (tmp),

ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ (yp)) с Ρ€Π°Π΄ΠΈΡƒΡΠΎΠΌ radius

Ссли handx-i<=135+radius ΠΈ handx-i>=135+radius

ΠΈ yp<230 ΠΈ yp>100 Ρ‚ΠΎ

Π½Π°Ρ‡Π°Π»ΠΎ

Ссли direction=1 Ρ‚ΠΎ hand=handx-i-i

direction=-1

ΠΊΠΎΠ½Π΅Ρ†

vy=vy-10.0/ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (vx)

tmp1=ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (handx-i-185)

tmp2=ΠΌΠΎΠ΄ΡƒΠ»ΡŒ (yp-190)

Ссли tmp1<160 ΠΈ tmp2<160 Ρ‚ΠΎ

distance=ΠΊΠΎΡ€Π΅Π½ΡŒ (tmp1*tmp1+tmp2*tmp2)

ΠΈΠ½Π°Ρ‡Π΅ distance=radius+10

Ссли distance<=radius ΠΈ k=0 Ρ‚ΠΎ

Π½Π°Ρ‡Π°Π»ΠΎ

k1=арктангСнс ((190-yp)/

(185-handx+i+0.1))

k1=(k1-арктангСнс (vy/vx))*2+k1

vy=синус (k1)*v

vx=косинус (k1)*v

k=1

ΠΊΠΎΠ½Π΅Ρ† ΠΈΠ½Π°Ρ‡Π΅ k=0

y=Π²Ρ‹Π·ΠΎΠ² findy (handx-i/10,yp, vx, vy)

Ρ†Π²Π΅Ρ‚ ΠΏΠ΅Ρ€Π° — Π±Π΅Π»Ρ‹ΠΉ Ссли tmp>135 ΠΈ tmp<185 ΠΈ yp<=190 ΠΈ y>190 Ρ‚ΠΎ

Π½Π°Ρ‡Π°Π»ΠΎ Π—Π°ΠΊΡ€Π°ΡΠΈΡ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ

(550,20,600,40) Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€ΠΎ Π² (550,30)

ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ 'goal'

goal=1

ΠΊΠΎΠ½Π΅Ρ†

Ссли y<460-radius ΠΈ y>-50 ΠΈ handx-i>radius Ρ‚ΠΎ

Π½Π°Ρ‡Π°Π»ΠΎ

Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅

(hand-i*direction, ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ (y))

с Ρ€Π°Π΄ΠΈΡƒΡΠΎΠΌ radius

Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ showbasket

Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ showplayer (x, angle)

yp=y

Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° (delay1)

ΠΊΠΎΠ½Π΅Ρ†

ΠΈΠ½Π°Ρ‡Π΅ break

ΠΊΠΎΠ½Π΅Ρ†

Ссли goal=0 Ρ‚ΠΎ

Π½Π°Ρ‡Π°Π»ΠΎ Π—Π°ΠΊΡ€Π°ΡΠΈΡ‚ΡŒ ΠΏΡ€ΡΠΌΠΎΡƒΠ³ΠΎΠ»ΡŒΠ½ΠΈΠΊ (550,20,600,40) Ρ‡Π΅Ρ€Π½Ρ‹ΠΌ ΠŸΠ΅Ρ€Π΅ΠΌΠ΅ΡΡ‚ΠΈΡ‚ΡŒ ΠΏΠ΅Ρ€ΠΎ Π² (550,30)

ΠΠ°ΠΏΠΈΡΠ°Ρ‚ΡŒ 'miss'

ΠšΠΎΠ½Π΅Ρ†

Ρ†Π²Π΅Ρ‚ ΠΏΠ΅Ρ€Π° — Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ

Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅

(handx-i, ΠΎΠΊΡ€ΡƒΠ³Π»Π΅Π½ΠΈΠ΅ (yp)) с Ρ€Π°Π΄ΠΈΡƒΡΠΎΠΌ radius

Ρ†Π²Π΅Ρ‚ ΠΏΠ΅Ρ€Π° — Π±Π΅Π»Ρ‹ΠΉ

Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (handx, handy)

с Ρ€Π°Π΄ΠΈΡƒΡΠΎΠΌ radius

ΠΊΠΎΠ½Π΅Ρ† Π½Π°Ρ‡Π°Π»ΠΎ

grdriver=detect

Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ графичСский Ρ€Π΅ΠΆΠΈΠΌ

initgraph (grdriver, grmode,' ')

errcode=graphresult

delay1=200

Ссли errcode=grok Ρ‚ΠΎ

Π½Π°Ρ‡Π°Π»ΠΎ

radius=14

xprev=400

x=xprev

angleprev=pi/18

angle=angleprev

anglestep=pi/72

step=5

Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ showbasket

Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ showplayer (xprev, angleprev)

Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (handx, handy)

с Ρ€Π°Π΄ΠΈΡƒΡΠΎΠΌ radius

ΠΏΠΎΠΊΠ° key<>ESC Π΄Π΅Π»Π°Ρ‚ΡŒ

Π½Π°Ρ‡Π°Π»ΠΎ

Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ key

change=1

Ссли key='a' ΠΈ xprev>300 Ρ‚ΠΎ x=xprev-step

ΠΈΠ½Π°Ρ‡Π΅ Ссли key='d' ΠΈ xprev<600 Ρ‚ΠΎ

x=xprev+step

ΠΈΠ½Π°Ρ‡Π΅ Ссли key='s' Ρ‚ΠΎ

Π½Π°Ρ‡Π°Π»ΠΎ

Ссли angle<0.5 Ρ‚ΠΎ

angle=angleprev+anglestep

ΠΊΠΎΠ½Π΅Ρ†

ΠΈΠ½Π°Ρ‡Π΅ Ссли key='w' Ρ‚ΠΎ

Π½Π°Ρ‡Π°Π»ΠΎ

Ссли angle>-0.5 Ρ‚ΠΎ

angle=angleprev-anglestep

ΠΊΠΎΠ½Π΅Ρ†

ΠΈΠ½Π°Ρ‡Π΅ Ссли key=' ' Ρ‚ΠΎ

Π½Π°Ρ‡Π°Π»ΠΎ

Π’Ρ‹Π·Π²Π°Ρ‚ΡŒ shot (x, angle) change=0

ΠšΠΎΠ½Π΅Ρ†

ΠΈΠ½Π°Ρ‡Π΅ change=0

Ссли change=1 Ρ‚ΠΎ

Π½Π°Ρ‡Π°Π»ΠΎ

Π¦Π²Π΅Ρ‚ ΠΏΠ΅Ρ€Π° — Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ showplayer (xprev, angleprev)

Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (handx, handy) с Ρ€Π°Π΄ΠΈΡƒΡΠΎΠΌ radius

Π¦Π²Π΅Ρ‚ ΠΏΠ΅Ρ€Π° — Π±Π΅Π»Ρ‹ΠΉ Π²Ρ‹Π·Π²Π°Ρ‚ΡŒ ΠΏΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Ρƒ showplayer (x, angle)

Π½Π°Ρ€ΠΈΡΠΎΠ²Π°Ρ‚ΡŒ ΠΎΠΊΡ€ΡƒΠΆΠ½ΠΎΡΡ‚ΡŒ Π² Ρ‚ΠΎΡ‡ΠΊΠ΅ (handx, handy) с Ρ€Π°Π΄ΠΈΡƒΡΠΎΠΌ radius

xprev=x

angleprev=angle

ΠΊΠΎΠ½Π΅Ρ†

ΠΊΠΎΠ½Π΅Ρ†

Π²Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ графичСский Ρ€Π΅ΠΆΠΈΠΌ

ΠΊΠΎΠ½Π΅Ρ†

ΠΈΠ½Π°Ρ‡Π΅ Π½Π°ΠΏΠΈΡΠ°Ρ‚ΡŒ 'Graphics error:', grapherrormsg (errcode)

ΠΊΠΎΠ½Π΅Ρ†

7 ΠšΠΎΠ½Ρ‚Ρ€ΠΎΠ»ΡŒΠ½Ρ‹Π΅ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Ρ‹

8 ВСкст ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹

program basketball;

uses graph, crt;{ΠŸΠΎΠ΄ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ графичСской Π±ΠΈΠ±Π»ΠΈΡ‚ΠΎΠ΅ΠΊΠΈ ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡ‚Π΅ΠΊΠΈ Π²Π²ΠΎΠ΄Π°/Π²Ρ‹Π²ΠΎΠ΄Π°}

var

grdriver, grmode, errcode: integer;

{ΠŸΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ для Π²Ρ‹Π±ΠΎΡ€Π° графичСского Ρ€Π΅ΠΆΠΈΠΌΠ°}

x, xprev, step: integer;

{ВСкущая ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ ΠΈΠ³Ρ€ΠΎΠΊΠ°, шаг ΠΈΠ³Ρ€ΠΎΠΊΠ°}

radius:integer;{Радиус мяча}

angle, angleprev, anglestep: real;{Π£Π³ΠΎΠ» Π½Π°ΠΊΠ»ΠΎΠ½Π°

Ρ€ΡƒΠΊΠΈ (Ρ‚Π΅ΠΊΡƒΡ‰ΠΈΠΉ, ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰ΠΈΠΉ), шаг измСнСния ΡƒΠ³Π»Π°}

key:char; {НаТатая клавиша}

change:integer; {Π˜Π½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€ Π±Ρ‹Π»Π° Π»ΠΈ Π½Π°ΠΆΠ°Ρ‚Π° клавиша}

handx, handy, v: integer; {ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ Ρ€ΡƒΠΊΠΈ, ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ мяча}

delay1:integer; {Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ° для Π²Ρ‹Π²ΠΎΠ΄Π° Π½Π° ΡΠΊΡ€Π°Π½}

procedure showbasket;

{ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, Ρ€ΠΈΡΡƒΡŽΡ‰Π°Ρ Π±Π°ΡΠΊΠ΅Ρ‚Π±ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‰ΠΈΡ‚ с ΠΊΠΎΡ€Π·ΠΈΠ½ΠΎΠΉ}

begin

moveto (130,100); {ΠŸΠ΅Ρ€Π΅Π²ΠΎΠ΄ΠΈΠΌ ΠΏΠ΅Ρ€ΠΎ Π² Ρ‚ΠΎΡ‡ΠΊΡƒ}

lineto (135,100); {РисуСм линию Π΄ΠΎ Ρ‚ΠΎΡ‡ΠΊΠΈ}

lineto (135,230);

lineto (130,230);

lineto (130,100);

moveto (130,150);

lineto (85,175);

lineto (35,250);

lineto (5,460);

lineto (60,280);

lineto (85,175);

moveto (130,190);

lineto (90,215);

lineto (60,280);

lineto (65,460);

lineto (35,250);

lineto (90,215);

lineto (85,175);

lineto (130,190);

moveto (135,190);

lineto (185,190);

lineto (185,192);

lineto (135,192);

line (0,460,639,460); {РисуСм ΠΏΠΎΠ»}

end;

function findy (x:real;y:real;vx:real;vy:real):real;

{Ѐункция нахоТдСния ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ мяча ΠΏΠΎ ΠΎΡΠΈ y}

var yc: real; {ΠšΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ мяча ΠΏΠΎ ΠΎΡΠΈ y}

begin

yc:=y-vy/sqrt (v*v+0.0001);

{ВычисляСм ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ мяча}

findy:=yc; {Π’ΠΎΠ·Π²Ρ€Π°Ρ‚ ΠΈΠ· Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ}

end;

procedure showplayer (x:integer;angle:real);

{ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π°, Ρ€ΠΈΡΡƒΡŽΡ‰Π°Ρ ΠΈΠ³Ρ€ΠΎΠΊΠ°}

begin

ellipse (x, 350,0,360,23,40);{РисуСм Ρ‚ΡƒΠ»ΠΎΠ²ΠΈΡ‰Π΅}

line (x-10,385,x-20,459); {РисуСм }

line (x+10,385,x+20,459); {Π½ΠΎΠ³ΠΈ}

circle (x, 297,13); {РисуСм Π³ΠΎΠ»ΠΎΠ²Ρƒ}

handx:=x-round (60*cos (angle)); {ВычисляСм ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅}

handy:=297+round (60*sin (angle));{Ρ€ΡƒΠΊΠΈ}

line (x, 330, handx, handy); {РисуСм Ρ€ΡƒΠΊΠΈ}

end;

procedure shot (x:integer;angle:real);

{ΠŸΡ€ΠΎΡ†Π΅Π΄ΡƒΡ€Π° «Π‘росок мяча» }

var i, direction, hand, goal: integer;{ΠŸΠ΅Ρ€ΠΌΠ΅Π½Π½Ρ‹Π΅ Ρ†ΠΈΠΊΠ»Π°,

направлСния, Π½Π°Ρ‡Π°Π»ΡŒΠ½ΠΎΠΉ Ρ‚ΠΎΡ‡ΠΊΠΈ мяча, ΠΏΠΎΠΊΠ°Π·Π°Ρ‚Π΅Π»ΡŒ Π±Ρ‹Π» Π»ΠΈ Π³ΠΎΠ»}

y, yp, vx, vy: real;

{ВСкущая ΠΈ ΠΏΡ€Π΅Π΄Ρ‹Π΄ΡƒΡ‰Π°Ρ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρ‹ мяча, скорости мяча ΠΏΠΎ ΠΎΡΡΠΌ x, y}

distance, k1: real;{РасстояниС ΠΎΡ‚ ΠΌΡΡ‡Π° Π΄ΠΎ «ΡƒΠ³Π»Π°» ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹, ΡƒΠ³ΠΎΠ» двиТСния мяча}

tmp, tmp1, tmp2,k:real;{Π’Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Π΅ ΠΏΡ€Π΅Ρ€ΠΌΠ΅Π½Π½Ρ‹Π΅}

begin

goal:=0; {ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ}

i:=1; {}

v:=0; {}

hand:=handx; {установка}

yp:=handy; {}

direction:=1; {}

k:=0; {}

yp:=handy; {ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…}

SetFillStyle (1,0); {Π—Π°Ρ‚ΠΈΡ€Π°Π΅ΠΌ мСсто, Π³Π΄Π΅ появляСтся}

Bar (550,20,600,40); {Ρ€Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ броска}

while not keypressed do {Пока Π½Π΅ Π½Π°ΠΆΠ°Ρ‚Π° клавиша}

begin

if (v<50) then v:=v+1 {РисуСм}

else v:=0; {}

line (10,100,20,100); {динамичСский}

SetFillStyle (1,15); {}

Bar (10,50,20,50+v); {ΠΈΠ½Π΄ΠΈΠΊΠ°Ρ‚ΠΎΡ€}

delay (delay1*10); {}

SetFillStyle (1,0); {}

Bar (10,50,20,50+v); {силы броска}

end;

readkey; {Π–Π΄Π΅ΠΌ наТатия клавиши}

setcolor (0); {УстанавливаСм Ρ†Π²Π΅Ρ‚ ΠΏΠ΅Ρ€Π° Π² Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ}

circle (handx, round (yp), radius);{Π—Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ мяч}

setcolor (15); {УстанавливаСм Ρ†Π²Π΅Ρ‚ ΠΏΠ΅Ρ€Π° Π² Π±Π΅Π»Ρ‹ΠΉ}

vy:=abs (v)*sin (-angle)*7;{Π‘Ρ‡ΠΈΡ‚Π°Π΅ΠΌ ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Ρ‹}

vx:=v*cos (angle); {Π²Π΅ΠΊΡ‚ΠΎΡ€Π° скорости ΠΏΠΎ ΠΎΡΡΠΌ}

for i:=0 to 800 do

begin

tmp:=hand-direction*(i-1);

setcolor (0);{УстанавливаСм Ρ†Π²Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π° Π² Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ}

circle (round (tmp), round (yp), radius);

{Π—Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ мяч}

if (handx-i<=135+radius) and

(handx-i>=135+radius) and (yp<230) and (yp>100) then {Если мяч ударяСтся ΠΎΠ± Ρ‰ΠΈΡ‚}

begin

if (direction=1) then

hand:=handx-i-i;{ИзмСняСм Π°ΠΏΡ€Π°Π²Π»Π΅Π½ΠΈΠ΅}

direction:=-1; {двиТСния}

end;

vy:=vy-10.0/abs (vx);

{ΠŸΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ ΠΏΠΎ ΠΎΡΠΈ y (притяТСниС)}

tmp1:=abs (handx-i-185); {Π‘Ρ‡ΠΈΡ‚Π°Π΅ΠΌ}

tmp2:=abs (yp-190); {расстояниС}

if (tmp1<160) and (tmp2<160) then {ΠΎΡ‚ мяча Π΄ΠΎ}

distance:=sqrt (tmp1*tmp1+tmp2*tmp2){" ΡƒΠ³Π»Π°" }

else distance:=radius+10; {ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹}

if (distance<=radius) and (k=0) then

{Если мяч ударяСтся ΠΎΠ± «ΡƒΠ³ΠΎΠ»» ΠΊΠΎΡ€Π·ΠΈΠ½Ρ‹, ΠΈ ΠΌΡ‹ ΡΡ‚ΠΎ

Π΅Ρ‰Π΅ Π½Π΅ ΡƒΡ‡ΠΈΡ‚Ρ‹Π²Π°Π»ΠΈ}

begin

k1:=arctan ((190-yp)/

(185-handx+i+0.1));

k1:=(k1-arctan (vy/vx))*2+k1;

vy:=sin (k1)*v; {ΠŸΠ΅Ρ€Π΅ΡΡ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ}

vx:=cos (k1)*v; {ΡΠΊΠΎΡ€ΠΎΡΡ‚ΡŒ мяча}

k:=1;

end

else k:=0;

y:=findy (handx-i/10,yp, vx, vy);

{Π‘Ρ‡ΠΈΡ‚Π°Π΅ΠΌ ΡΠ»Π΅Π΄ΡƒΡŽΡˆΡƒΡŽ ΠΊΠΎΠΎΡ€Π΄ΠΈΠ½Π°Ρ‚Ρƒ мяча ΠΏΠΎ ΠΎΡΠΈ y}

setcolor (15);{УстанавливаСм Ρ†Π²Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π° Π² Π±Π΅Π»Ρ‹ΠΉ}

if (tmp>135) and (tmp<185) and (yp<=190)

and (y>190) then

begin

SetFillStyle (1,0); {Π—Π°Ρ‚ΠΈΡ€Π°Π΅ΠΌ}

Bar (550,20,600,40);{Π—Π°Ρ‚ΠΈΡ€Π°Π΅ΠΌ}

MoveTo (550,30); {надписью}

OutText ('goal'); {ПишСм 'goal'}

goal:=1; {устанавливаСм, Ρ‡Ρ‚ΠΎ Π³ΠΎΠ» Π±Ρ‹Π»}

end;

if (y<(460-radius)) and (y>-50)

and (handx-i>radius) then

{Если мяч находится Π½Π° Ρ‚Π΅Ρ€Ρ€ΠΈΡ‚ΠΎΡ€ΠΈΠΈ ΠΏΠ»ΠΎΡ‰Π°Π΄ΠΊΠΈ}

begin

circle (hand-i*direction, round (y), radius);

showbasket;

{РисуСм Π±Π°ΡΠΊΠ΅Ρ‚Π±ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‰ΠΈΡ‚ с ΠΊΠΎΡ€Π·ΠΈΠ½ΠΎΠΉ}

showplayer (x, angle);{РисуСм ΠΈΠ³Ρ€ΠΎΠΊΠ°}

yp:=y;

delay (delay1); {Π—Π°Π΄Π΅Ρ€ΠΆΠΊΠ°}

end

else break; {Π’Ρ‹Ρ…ΠΎΠ΄ΠΈΠΌ ΠΈΠ· Ρ†ΠΈΠΊΠ»Π° ΠΏΠΎΠ»Π΅Ρ‚Π° мяча}

end;

if (goal=0) then {Если Π³ΠΎΠ»Π° Π½Π΅ Π±Ρ‹Π»ΠΎ}

begin

SetFillStyle (1,0); {Π—Π°Ρ‚ΠΈΡ€Π°Π΅ΠΌ}

Bar (550,20,600,40); {мСсто с}

MoveTo (550,30); {надписью}

OutText ('miss'); {ПишСм 'miss'}

end;

setcolor (0); {УстанавливаСм Ρ†Π²Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π° Π² Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ}

circle (handx-i, round (yp), radius);{Π—Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ мяч}

setcolor (15);

{УстанавливаСм Ρ†Π²Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π° Π² Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ Π±Π΅Π»Ρ‹ΠΉ}

circle (handx, handy, radius); {РисуСм мяч}

end;

begin

grdriver:=detect; {Π˜Π½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΡ}

initgraph (grdriver, grmode,' ');{графичСского}

errcode:=graphresult; {Ρ€Π΅ΠΆΠΈΠΌΠ°}

delay1:=200;

{Установка Π·Π°Π΄Π΅Ρ€ΠΆΠΊΠΈ (Ссли ΠΏΡ€Π³Ρ€Π°ΠΌΠΌΠ° Ρ€Π°Π±ΠΎΡ‚Π°Π΅Ρ‚ ΠΌΠ΅Π΄Π»Π΅Π½Π½ΠΎ

(слабый ΠΊΠΎΠΌΠΏΡŒΡŽΡ‚Π΅Ρ€) Π΅Π΅ Π½ΡƒΠΆΠ½ΠΎ ΡƒΠΌΠ΅Π½ΡŒΡˆΠΈΡ‚ΡŒ)}

if errcode=grok then {Ссли Π½Π΅Ρ‚ ошибки Π² Π³Ρ€Π°Ρ„ΠΈΠΊΠ΅}

begin

radius:=14; {ΠΠ°Ρ‡Π°Π»ΡŒΠ½Π°Ρ}

xprev:=400; {установка}

x:=xprev; {ΠΏΠ΅Ρ€Π΅ΠΌΠ΅Π½Π½Ρ‹Ρ…}

angleprev:=pi/18; {ΠΎΠ±ΡŠΡΠ²Π»Π΅Π½Π½Ρ‹Ρ…}

angle:=angleprev; {Π²}

anglestep:=pi/72; {Π½Π°Ρ‡Π°Π»Π΅}

step:=5; {ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΌΡ‹}

showbasket;

{РисуСм Π±Π°ΡΠΊΠ΅Ρ‚Π±ΠΎΠ»ΡŒΠ½Ρ‹ΠΉ Ρ‰ΠΈΡ‚ с ΠΊΠΎΡ€Π·ΠΈΠ½ΠΎΠΉ}

showplayer (xprev, angleprev);{РисуСм ΠΈΠ³Ρ€ΠΎΠΊΠ°}

circle (handx, handy, radius); {РисуСм мяч}

while (key<>#27) do {Пока Π½Π΅ Π±Ρ‹Π»Π° Π½Π°ΠΆΠ°Ρ‚Π° ESC}

begin

key:=readkey;{Π‘Ρ‡ΠΈΡ‚Ρ‹Π²Π°Π΅ΠΌ Π½Π°ΠΆΠ°Ρ‚ΡƒΡŽ ΠΊΠ»Π°Π²ΠΈΡˆΡƒ}

change:=1;

if (key='a') and (xprev>300) then

x:=xprev-step

{Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π²Π»Π΅Π²ΠΎ}

else if (key='d') and (xprev<600) then

x:=xprev+step

{Π”Π²ΠΈΠΆΠ΅Π½ΠΈΠ΅ ΠΈΠ³Ρ€ΠΎΠΊΠ° Π²ΠΏΡ€Π°Π²ΠΎ}

else if (key='s') then

begin

if (angle<0.5) then

angle:=angleprev+anglestep

{ΠžΠΏΡƒΡΠΊΠ°Π΅ΠΌ Ρ€ΡƒΠΊΡƒ}

end

else if (key='w') then

begin

if (angle>-0.5)

then

angle:=angleprev;

anglestep

{ΠžΠΏΡƒΡΠΊΠ°Π΅ΠΌ Ρ€ΡƒΠΊΡƒ}

end

else if (key=' ') then

begin

shot (x, angle);

{ΠžΡΡƒΡ‰Π΅ΡΡ‚Π²Π»ΡΠ΅ΠΌ бросок}

change:=0;

end

else change:=0;

if (change=1) then

{Если ΠΈΠ³Ρ€ΠΎΠΊ двинулся ΠΈΠ»ΠΈ ΠΏΠΎΠ²Π΅Ρ€Π½ΡƒΠ» Ρ€ΡƒΠΊΡƒ}

begin

SetColor (0);

{УстанавливаСм Ρ†Π²Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π° Π² Ρ‡Π΅Ρ€Π½Ρ‹ΠΉ}

showplayer (xprev, angleprev);

{Π—Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ ΠΈΠ³Ρ€ΠΎΠΊΠ°}

circle (handx, handy, radius); {Π—Π°ΠΊΡ€Π°ΡˆΠΈΠ²Π°Π΅ΠΌ мяч}

setcolor (15);

{УстанавливаСм Ρ†Π²Π΅Ρ‚ ΠΏΡ€Π΅Ρ€Π° Π² Π±Π΅Π»Ρ‹ΠΉ}

showplayer (x, angle);{РисуСм ΠΈΠ³Ρ€ΠΎΠΊΠ°}

circle (handx, handy, radius);

{РисуСм ΠœΡΡ‡}

xprev:=x;

angleprev:=angle;

end

end;

closegraph;{Π’Ρ‹ΠΊΠ»ΡŽΡ‡Π°Π΅ΠΌ графичСский ΠΏΠ΅ΠΆΠΈΠΌ}

end

else writeln ('Graphics error:',

grapherrormsg (errcode));

{ПишСм ΡΠΎΠΎΡŽΡ‰Π΅Π½ΠΈΠ΅ ΠΎΠ± ΠΎΡˆΠΈΠ±ΠΊΠ΅ ΠΈΠ½ΠΈΡ†ΠΈΠ°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ Π³Ρ€Π°Ρ„ΠΈΠΊΠΈ}

end.

ΠŸΠΎΠΊΠ°Π·Π°Ρ‚ΡŒ вСсь тСкст
Π—Π°ΠΏΠΎΠ»Π½ΠΈΡ‚ΡŒ Ρ„ΠΎΡ€ΠΌΡƒ Ρ‚Π΅ΠΊΡƒΡ‰Π΅ΠΉ Ρ€Π°Π±ΠΎΡ‚ΠΎΠΉ