Технический форум

Технический форум (http://www.tehnari.ru/)
-   Помощь студентам (http://www.tehnari.ru/f41/)
-   -   Поле чудес (http://www.tehnari.ru/f41/t47398/)

jax 13.02.2011 10:58

Вложений: 1
:tehnari_ru_281:

Здравствуйте! Помогите пожалуйста написать программу в Pascale.
До 16 февраля 2011
Задача
Создать виртуальный поле чудес , чтобы круг крутился 7 секунд, затем стрелка указывала случайным выбором на одну из девяти ячеек, в каждой ячейки написаны балы первая ячейка 10,
Вторая 20, трития 30,и.т.д.

написать программу в pascaleABC.

примерно так должен ввыглядеть барабан,только цветной,если кто сможет сделать лучьше жду от вас помощи.

jax 13.02.2011 11:06

вот мой вариант

uses crt.graphABC;
var a:integer;
begin
крутится барабан
a:=random(9);
if a = 1 then begin
a:=10; потом рисунок - стрелка указывает на 10 балов.

if a = 2 then begin
a:=20; потом рисунок - стрелка указывает на 20 балов.
и.т.д
end.

MrSTEP 13.02.2011 11:56

Цитата:

Код:

if a = 1 then begin
a:=10; потом рисунок - стрелка указывает на 10 балов.

if a = 2 then begin
a:=20; потом рисунок - стрелка указывает на 20 балов.
и.т.д


Я бы этот момент реализовал иначе, через оператор case. То есть примерно так:

Код:

case a of
1: begin
      a=10;
      ....
    end;
2:  begin
      a=20;
      ....
    end;
.
.
.
10:  begin
      a=100;
      ....
    end;
end;

Вот только как оперировать барабаном - я не в курсе. Да и с ABC Pascal'ем мало знаком.

jax 13.02.2011 12:09

MrSTEP - обращаюсь к вам,я могу ошибаца,но здесь вроде,будет так - крутится барабан,затем мы сами выбираем рисунок,а мне надо чтобы программа сама выдовала рисунок.

проблема у меня с графикой я немогу нарисовать барабан,и заставить его крутится!

MrSTEP 13.02.2011 12:19

Я тоже не художник, тем более не аниматор. Хотя в делфи я бы это сделал, а в паскале - врядли.

AlexZir 14.02.2011 09:15

В любой версии Pascal

Circle(X,Y,R)
- рисует окружность с центром в точке (X,Y) и радиусом R.
Sector(X,Y,an,ak,R1,R2) - вычерчивает эллиптический сектор, (X,Y) - центр, R1 - радиус по OX, R2 - радиус по OY, an,ak - углы прямых, ограничивающих сектор.
PieSlice(X,Y,an,ak,R) - вычерчивает и заполняет сектор круга с центром в точке (X,Y) и радиусом R, заданный прямыми, проведенными под углами an и ak.
SetColor(C) - устанавливает цвет линии.
OutTextXY(X,Y,'text') - выводит текст в графическом режиме.

jax 14.02.2011 09:34

спасибо за помощь,но у меня неполучается.
я открываю PascalABC,встовляю туда то что вы мне написали,и мне пишут неизвестный индификатор.

вы бы немагли нарисовать мне этот барабан,и сделать чтоб он крутился??

AlexZir 14.02.2011 11:19

Я работаю в FreePascal под Linux, там совсем другой принцип организации вывода графики, вам любой мой способ решения явно не подойдёт :)

jax 14.02.2011 14:16

жаль,а в дельфи можете сделать???

jax 14.02.2011 17:08

Код:

uses GraphABC;
var i,j,k,m,i1:integer;
procedure  pr_st;
var i,m:integer;
begin
  m:=0;
  SetPenColor(ClBlack);
  for i:=0 to 3 do
  begin
  LineTo(130+m,200+m);
  LineTo(130+m,250+m);
  inc(m,50);
  end;
  LineTo(WindowWidth,200+m);
  SetPenColor(ClGreen);
end;
begin
  i:=90;
  j:=70;
  k:=i+95;
  MoveTo(0,200);
  m:=j+50;
  SetPenColor(ClGreen);
  ClearWindow(ClGreen);
  pr_st;
  for i1:=1 to 4 do
  begin
  while i<k do
  begin
    Circle(i,j,30);
    Circle(i,j+80,50);
    Circle(i,j-45,15);
    circle(i-5,j-45,3);
    Circle(i+5,j-45,3);
    inc(i);
    sleep(10);
  end;
  inc(k,50);
  while j<m do
  begin
    Circle(i,j,30);
    Circle(i,j+80,50);
    Circle(i,j-45,15);
    circle(i-5,j-45,3);
    Circle(i+5,j-45,3);
    inc(j);
    sleep(10);
  end;
  inc(m,50);
  end;
  While i<WindowWidth-50 do
  begin
    Circle(i,j,30);
    Circle(i,j+80,50);
    Circle(i,j-45,15);
    circle(i-5,j-45,3);
    Circle(i+5,j-45,3);
    inc(i);
    sleep(10);
  end;
end.



Часовой пояс GMT +4, время: 20:32.

Powered by vBulletin® Version 4.5.3
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.