-->
|
|
|
§ 4.19. Ãðàôè÷åñêèå èñïîëíèòåëè Ïîóðî÷íûå ïëàíû, èíòåðàêòèâÑëó÷àéíûå ÷èñëàÂàøè ïðîãðàììû áóäóò ãîðàçäî èíòåðåñíåå, åñëè âíåñòè â íèõ ýëåìåíò ñëó÷àéíîñòè. Äåëî â òîì, ÷òî ó êîìïüþòåðà åñòü ñïåöèàëüíàÿ ôóíêöèÿ, êîòîðàÿ âûäàåò ñëó÷àéíûå ÷èñëà. Åå îáîçíà÷åíèå RND ïîëó÷åíî ñîêðàùåíèåì àíãëèéñêîãî ñëîâà «random», êîòîðîå îçíà÷àåò «ñëó÷àéíûé». Êîãäà áðîñàåòñÿ èãðàëüíàÿ êîñòü, òî çàðàíåå íå èçâåñòíî, êàêîå ÷èñëî âûïàäåò. Íî â ëþáîì ñëó÷àå ýòî áóäåò ÷èñëî îò 1 äî 6. Ïðè ïîìîùè ôóíêöèè RND ïîëó÷àåòñÿ ïðîèçâîëüíîå (ñëó÷àéíîå) ÷èñëî îò 0 äî 1.
×òîáû ïîëó÷èòü ñëó÷àéíûå ÷èñëà èç ïðîèçâîëüíîãî ïðîìåæóòêà, èñïîëüçóþò âûðàæåíèå RND * à + b, ãäå à — øèðèíà ïðîìåæóòêà, b — çíà÷åíèå ëåâîé ãðàíèöû.
Äëÿ òîãî ÷òîáû êîìïüþòåð «çàäóìûâàë» ïðîèçâîëüíûå êîîðäèíàòû õ è ó, ïðèíàäëåæàùèå íàøåìó ãðàôè÷åñêîìó ýêðàíó, âîñïîëüçóåìñÿ ñëåäóþùèìè ïðîãðàììíûìè ñòðîêàìè: õ = 639*RND ó = 463*RND Çäåñü ÷èñëà 639 è 463 îïðåäåëÿþò âåðõíèå ãðàíèöû âûäàâàåìûõ çíà÷åíèé. Ðàññìîòðèì ïðèìåð. Ïóñòü (x, ó) — êîîðäèíàòû íåêîòîðîé òî÷êè íà ýêðàíå, «çàäóìàííûå» êîìïüþòåðîì. (õ+5, ó+5) — êîîðäèíàòû òî÷êè, íàõîäÿùåéñÿ íåïîäàëåêó. Íàðèñóåì «êîñîé äîæäèê»: SCREEN 12 10 õ = RND*639 ó = RND*463 LINE (õ,ó) - (õ + 5,ó + 5) GOTO 10  ðåçóëüòàòå âûïîëíåíèÿ ýòîé ïðîãðàììû âåñü ýêðàí ïîêðûâàåòñÿ «êîñûìè äîæäèíêàìè».  ïîñëåäíåé ñòðîêå ïðîãðàììû ìû îòäàåì ïðèêàç âåðíóòüñÿ íà ñòðîêó ñ ìåòêîé 10. Êîìïüþòåð ñíîâà è ñíîâà «çàäóìûâàåò» êîîðäèíàòû òî÷êè è ÷åðòèò îòðåçîê-«äîæäèíêó» íà ýêðàíå. Ðèñîâàíèå áóäåò ïðîäîëæàòüñÿ äî òåõ ïîð, ïîêà âû íå ïðåðâåòå âûïîëíåíèå ïðîãðàììû.
|
|
|