Практика программирования (Бейсик, Си, Паскаль)



         

Задачи, советы и ответы - часть 8


NEXT I

D0 WHILE INKEY$=""

PUT (X,Y),TАРЕЛКА, X0R :

S0UND 32767,4.92 ;' Задержка на 0.6 сек

PUT (A,Y),TAKELKA,X0R ;' Стирание тарелки

DX=INT(RND*60)+1: IF DX M0D 2=1 THEN DX=-DX

X=X+DX :' Смещение по горизонтали

IF X>590 THEN X=590 :' Контроль за правой границей экрана

IF X<0 THEN X=0 :' Контроль за левой границей экрана

DY=INT(RND*40)+1: IF DY M0D 2=1 THEN DY=-DY

Y=Y+DY :' Смещение по вертикали

IF Y>450 THEN Y=450 :' Контроль за нижней границей экрана

IF Y<0 THEN Y=0 :' Контроль за верхней границей экрана

L00P

END

Программа 8_17.с

/* Летающая тарелка */ #include <graphics.h> #include <stdlib.h>

main() {

int x=320, y=240, i, dx, dy, gd=0, gm;

char Tarelka[600];

initgraph(&gd,&gm,"");

randomize() ; /* Построение летающей тарелки */

setfillstyle( S0LID_FILL, 4);

fillellipse(100, 50, 20, 8) ;

ellipse(100, 46, 190, 357, 20, 6) ;

line(107, 44, 110, 38);

circle(110, '38, 2} ;

line(93, 44, 90, 38);

circle(90, 38, 2); /* Запомнили изображение и стерли его */

getimage(79, 36, 121, 59, Tarelka);

putimage(79, 36, Tarelka, X0R_PUT); /* Построение звездного неба */

for ( i=0 ; i<1000; ++i )

putpixel(random(639), random(479), random(15)+1) ; while ( !kbhit() ) { /* Бесконечный цикл до нажатия клавиши */

putimage(x, у, Tarelka, X0R_PUT);

/* вывод тарелки */

delay(6000);

/* задержка */

putimage(x, у, Tarelka, X0R_PUT);

/* стирание тарелки */

/* Перемещение тарелки */

dx = random(60);

if (dx % 2 == 0 ) dx = - dx;

x = x + dx;

if (x > 590) x = 590;

else if (x < 0) x = 0; dy = random(40);

if (dy % 2 == 0 ) dy = - dy; у = у + dy;

if (y > 450) у = 450;

else if (y < 0) у = 0; }

getch(); }

Программа 8_17.pas

{ Программа "Летающая тарелка" } program nlo; uses Crt,Graph; var

x, y, i, dx, dy, gd, gm: integer;

Tarelka:array [1..600] of byte; begin

x:=320;

y:=240;

gd:=0;

initgraph(gd,gm,'');

randomize; { Построение летающей тарелки }




Содержание  Назад  Вперед