IPB
ЛогинПароль:

> Игра "кости"
сообщение
Сообщение #1





Группа: Пользователи
Сообщений: 7
Пол: Женский
Реальное имя: Надежда

Репутация: -  0  +


Здравствуй, помогите, пожалуйста. пишу игру кости подскажите где ошибка, начала с программы полегче, в итоге (в законченной программе) на экране должно появиться три кубика и их сумма внизу, нажатие клавиши "пробел" - означает повтор игры, "delete"- завершение игры.



Uses CRT, GraphABC;
var i:integer;
c: char;
t: byte;
label m1,loop;
procedure kyb1;
begin
floodfill(1,1,clgreen);
setwindowsize(800,800);
//квадрат
setpencolor(clblack);
setbrushcolor(clblack);
RoundRect(100,100,700,700,50,50);
//круг
setpencolor(clred);
setbrushcolor(clred);
circle(400,400,80);
end;

procedure kyb2;
begin
floodfill(1,1,clgreen);
setwindowsize(800,800);
//квадрат
setpencolor(clblack);
setbrushcolor(clblack);
RoundRect(100,100,700,700,50,50);
//круг
setpencolor(clred);
setbrushcolor(clred);
circle(250,250,60);
circle(550,550,60);
end;

procedure kyb3;
begin
floodfill(1,1,clgreen);
setwindowsize(800,800);
//квадрат
setpencolor(clblack);
setbrushcolor(clblack);
RoundRect(100,100,700,700,50,50);
//круг
setpencolor(clred);
setbrushcolor(clred);
circle(250,250,60);
circle(550,550,60);
circle(400,400,60);
end;

procedure kyb4;
begin
floodfill(1,1,clgreen);
setwindowsize(800,800);
//квадрат
setpencolor(clblack);
setbrushcolor(clblack);
RoundRect(100,100,700,700,50,50);
//круг
setpencolor(clred);
setbrushcolor(clred);
circle(250,250,60);
circle(550,550,60);
circle(250,550,60);
circle(550,250,60);
end;

procedure kyb5;
begin
floodfill(1,1,clgreen);
setwindowsize(800,800);
//квадрат
setpencolor(clblack);
setbrushcolor(clblack);
RoundRect(100,100,700,700,50,50);
//круг
setpencolor(clred);
setbrushcolor(clred);
circle(250,250,60);
circle(550,550,60);
circle(250,550,60);
circle(550,250,60);
circle(400,400,60);
end;

procedure kyb6;
begin
floodfill(1,1,clgreen);
setwindowsize(800,800);
//квадрат
setpencolor(clblack);
setbrushcolor(clblack);
RoundRect(100,100,700,700,50,50);
//круг
setpencolor(clred);
setbrushcolor(clred);
circle(250,250,50);
circle(550,550,50);
circle(250,550,50);
circle(550,250,50);
circle(250,400,50);
circle(550,400,50);
end;


begin
m1:
rectangle(0,0,800,800);
setbrushcolor(clgreen);
setpencolor(clgreen);
textout(200,10,'Программа эмитирует бросиние игральной кости');

randomize;
i:=random (7) ;
if i=0 then goto m1;
if i=1 then kyb1;
if i=2 then kyb2;
if i=3 then kyb3;
if i=4 then kyb4;
if i=5 then kyb5;
if i=6 then kyb6;
begin
clrscr;
t := 0;
repeat
textout(250,750,'Нажмите `пробел` для повторного броска');
textout(300,780,'Нажмите `delete` для выхода');
loop:
c := readkey;
if not (c in [#32, #46]) then goto loop;
if c = #32 then goto m1
else
until (c = #46) or (t=2);

hidecursor;
end;
end.

Добавлено через 9 мин.
Помогите, пожалуйста, очень нужно!!! sad.gif

Сообщение отредактировано: Vikki -


Прикрепленные файлы
Прикрепленный файл  _______________2.pas ( 3.36 килобайт ) Кол-во скачиваний: 404
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Знаток
****

Группа: Пользователи
Сообщений: 481
Пол: Мужской
Реальное имя: Федосеев Павел

Репутация: -  9  +


У меня нет PascalABC. Могу просмотреть только глазами. Что за ошибка?

------------------
Цикл в основной программе я бы сделал так:
begin

randomize;

rectangle(0, 0, 800, 800);
setbrushcolor(clgreen);
setpencolor(clgreen);

clrscr;

textout(200, 10, 'Программа эмитирует бросиние игральной кости');
textout(250, 750, 'Нажмите `пробел` для повторного броска');
textout(300, 780, 'Нажмите `delete` для выхода');

hidecursor;

repeat
{ввод команды}
repeat
c := readkey;
until c in [#32, #46];
{обработка команд}
case c of
#32: {новый бросок}
begin
i := random(6) + 1;
case i of
1: kyb1;
2: kyb2;
3: kyb3;
4: kyb4;
5: kyb5;
6: kyb6;
end;
end;
end;
until (c = #46) or (t = 2);

end.
Могу ошибаться в графических командах, но смысл именно такой. Лишь в процедурах рисования граней сделал бы не окантовку квадрата, а заливку квадрата.

Сообщение отредактировано: Федосеев Павел -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 29.04.2024 15:10
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name