Технический форум
Вернуться   Технический форум > Программирование > Форум программистов > Помощь студентам


Ответ
 
Опции темы Опции просмотра
Старый 13.02.2011, 10:58   #1 (permalink)
jax
Технарёнок
 
Регистрация: 30.12.2010
Сообщений: 77
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
Question



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

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

примерно так должен ввыглядеть барабан,только цветной,если кто сможет сделать лучьше жду от вас помощи.
Миниатюры
iiea-oaean.png  
jax вне форума   Ответить с цитированием

Старый 13.02.2011, 10:58
Helpmaster
Member
 
Аватар для Helpmaster
 
Регистрация: 08.03.2016
Сообщений: 0

Скорее всего проблема уже была решена ранее в других обсуждениях

Помогите, белое поле с символами на экране
Алиса в стране чудес

Старый 13.02.2011, 11:06   #2 (permalink)
jax
Технарёнок
 
Регистрация: 30.12.2010
Сообщений: 77
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

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

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.
jax вне форума   Ответить с цитированием
Старый 13.02.2011, 11:56   #3 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,920
Записей в дневнике: 10
Сказал(а) спасибо: 139
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28107
По умолчанию

Цитата:
Код:
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 вне форума   Ответить с цитированием
Старый 13.02.2011, 12:09   #4 (permalink)
jax
Технарёнок
 
Регистрация: 30.12.2010
Сообщений: 77
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

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

проблема у меня с графикой я немогу нарисовать барабан,и заставить его крутится!
jax вне форума   Ответить с цитированием
Старый 13.02.2011, 12:19   #5 (permalink)
MrSTEP
一步一步地会到目的
 
Аватар для MrSTEP
 
Регистрация: 09.05.2009
Адрес: Черноземье
Сообщений: 10,920
Записей в дневнике: 10
Сказал(а) спасибо: 139
Поблагодарили 80 раз(а) в 33 сообщениях
Репутация: 28107
По умолчанию

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

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Старый 14.02.2011, 09:15   #6 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 14,453
Записей в дневнике: 56
Сказал(а) спасибо: 123
Поблагодарили 149 раз(а) в 61 сообщениях
Репутация: 59583
По умолчанию

В любой версии 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') - выводит текст в графическом режиме.
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 14.02.2011, 09:34   #7 (permalink)
jax
Технарёнок
 
Регистрация: 30.12.2010
Сообщений: 77
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

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

вы бы немагли нарисовать мне этот барабан,и сделать чтоб он крутился??
jax вне форума   Ответить с цитированием
Старый 14.02.2011, 11:19   #8 (permalink)
AlexZir
support
 
Аватар для AlexZir
 
Регистрация: 19.08.2007
Адрес: Зея
Сообщений: 14,453
Записей в дневнике: 56
Сказал(а) спасибо: 123
Поблагодарили 149 раз(а) в 61 сообщениях
Репутация: 59583
По умолчанию

Я работаю в FreePascal под Linux, там совсем другой принцип организации вывода графики, вам любой мой способ решения явно не подойдёт
__________________
Убить всех человеков!
AlexZir вне форума   Ответить с цитированием
Старый 14.02.2011, 14:16   #9 (permalink)
jax
Технарёнок
 
Регистрация: 30.12.2010
Сообщений: 77
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

жаль,а в дельфи можете сделать???
jax вне форума   Ответить с цитированием
Старый 14.02.2011, 17:08   #10 (permalink)
jax
Технарёнок
 
Регистрация: 30.12.2010
Сообщений: 77
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 10
По умолчанию

Код:
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.
jax вне форума   Ответить с цитированием
Ads

Яндекс

Member
 
Регистрация: 31.10.2006
Сообщений: 40200
Записей в дневнике: 0
Сказал(а) спасибо: 0
Поблагодарили 0 раз(а) в 0 сообщениях
Репутация: 55070
Ответ

Опции темы
Опции просмотра

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Выкл.
HTML код Выкл.
Trackbacks are Вкл.
Pingbacks are Вкл.
Refbacks are Выкл.




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

Powered by vBulletin® Version 6.2.5.
Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.