• Добро пожаловать на компьютерный форум Tehnari.ru. Здесь разбираемся с проблемами ПК и ноутбуков: Windows, драйверы, «железо», сборка и апгрейд, софт и безопасность. Форум работает много лет, сейчас он переехал на новый движок, но старые темы и аккаунты мы постарались сохранить максимально аккуратно.

    Форум не связан с магазинами и сервисами – мы ничего не продаём и не даём «рекламу под видом совета». Отвечают обычные участники и модераторы, которые следят за порядком и качеством подсказок.

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

    Не знаете, с чего начать? Создайте тему с описанием проблемы – подскажем и при необходимости перенесём её в подходящий раздел.
    Задать вопрос Новые сообщения Как правильно спросить
    Если пришли по ссылке со старого Tehnari.ru – вы на нужном месте, просто продолжайте обсуждение.

Поле чудес

  • Автор темы Автор темы jax
  • Дата начала Дата начала

jax

Технарёнок
Регистрация
30 Дек 2010
Сообщения
77
Реакции
0
Баллы
0
:tehnari_ru_281:

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

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

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

Вложения

  • поле чудес.webp
    поле чудес.webp
    6.3 KB · Просмотры: 571
вот мой вариант

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.
 
Код:
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'ем мало знаком.
 
MrSTEP - обращаюсь к вам,я могу ошибаца,но здесь вроде,будет так - крутится барабан,затем мы сами выбираем рисунок,а мне надо чтобы программа сама выдовала рисунок.

проблема у меня с графикой я немогу нарисовать барабан,и заставить его крутится!
 
Я тоже не художник, тем более не аниматор. Хотя в делфи я бы это сделал, а в паскале - врядли.
 
В любой версии 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') - выводит текст в графическом режиме.
 
спасибо за помощь,но у меня неполучается.
я открываю PascalABC,встовляю туда то что вы мне написали,и мне пишут неизвестный индификатор.

вы бы немагли нарисовать мне этот барабан,и сделать чтоб он крутился??
 
Я работаю в FreePascal под Linux, там совсем другой принцип организации вывода графики, вам любой мой способ решения явно не подойдёт :)
 
жаль,а в дельфи можете сделать???
 
Код:
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.
 
выши есть пример анимации,я его щас разбираю,промогите кто может сделать барабан кручащийся
 
Код:
uses graphABC;
begin
setpenwidth(3);
setpencolor(clblack);
circle(250,250,120);
line(130,250,370,250);
line(250,130,250,370);
line(165,165,335,335);
line(165,335,335,165);
CIRCLE(250,250,15);
line(235,205,250,250);
SetFontSize(15);
textout(210,180,'10');
textout(270,180,'20');
textout(300,220,'30');
textout(300,270,'40');
textout(270,310,'50');
textout(210,310,'60');
textout(170,270,'70');
textout(170,220,'80');
redraw;
end.
вот барабан,помогите сделать чтобы он крутился на месте
[MOD2]Не дублируйте сообщения и не плодите темы-клоны! Тема-дубликат удалена.[/MOD2]
 
Рисуйте радиальные линии поверх окружности, начальная координата совпадает с центром окружности, конечная - с точкой на окружности. Для анимации вам нужно менять конечные координаты линий, используя уравнение окружности в полярных координатах и изменяя угол от 0 до 360 градусов. Также нужно будет вычислять координаты для вывода надписей в зависимости от текущего угла.

При стирании линии на старом месте и рисовании линии на новом создается эффект движения.
 
Пожалуйста помогите кто-нибудь сделать игру поле чудес на делфи. очень надо, плииииииииииииз:tehnari_ru_837:
 
Назад
Сверху