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

 
 Ответить  Открыть новую тему 
> Японские кроссворды (помогите пожалуйста!), Помогите с курсовой!
сообщение
Сообщение #1





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

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


Здравствуйте! Я никогда не был ни на каких форумах(поэтому не судите пожалуйста строго).

Меня сюда привела моя курсовая по программированию: mega_chok.gif

Тема работы: «Программирование графики в Турбо Паскале. Программа для решения японских головоломок(читай "кроссвордов")».

Содержание задания: Составить программу для решения японских кроссвордов. Программа должна уметь предложить пользователю кроссворд на выбор (не менее 15), проверить правильность его решения; позволять создавать собственные рисунки для кроссвордов и запоминать их в файле.

Мне еще не давали лекций по графике, а программу нужно предоставить довольно скоро.

Помогите чем сможете.

Заранее всем благодарен! rolleyes.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Помощник капитана
****

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

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


Расскажи, что собой представляют япон. кроссворды? smile.gif


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3





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

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


Цитата(Артемий2 @ 18.03.2007 17:21) *

Расскажи, что собой представляют япон. кроссворды? smile.gif


В японских головоломках, в отличие от других кроссвордов, зашифрованы не слова, а изображения. Задача - восстановить картинку по числам, которые проставлены слева от строк и над колонками. Числа показывают, сколько групп черных клеток находится в соответствующей строке или колонке и сколько слитных черных клеток содержит каждая группа. Например, набор чисел 4 и 4 означает, что в этом ряду есть две группы: первая - из четырех и вторая - из четырех черных клеток. Группы разделены как минимум одной пустой клеткой. Пустые клетки могут быть и по краям рядов. Необходимо определить размещение групп клеток.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гуру
*****

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

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


Цитата
Программа должна уметь предложить пользователю кроссворд на выбор (не менее 15), проверить правильность его решения;

В программе уже должно быть "встроено" 15 разных вариантов кроссвордов? Или что значит "не менее 15"?
Как пользователь заполняет кроссворд?

Цитата
позволять создавать собственные рисунки для кроссвордов и запоминать их в файле.

т.е. она сама должна уметь генерировать кроссворды?


--------------------
Лао-Цзы :
Знать много и не выставлять себя знающим есть нравственная высота. Знать мало и выставлять себя знающим есть болезнь. Только понимая эту болезнь, мы можем избавиться от нее.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5





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

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


Ну вот ещё:

Входными данными для головоломки являются описания строк и столбиков этого прямоугольника, заданные в виде последовательностей длин зарисованных блоков. Например, если строка или столбик описан единственным числом 3, это означает, что в этой строке (или столбике) зарисованы в точности три клеточки, которые идут подряд (единым блоком ); если строка или столбик заданы последовательностью 2 5 3, это означает, что в этой строке или столбике есть последовательно две подряд, пять подряд и три подряд зарисованных клеточки, причем блоки длиной 2, 5 и 3 идут именно в таком порядке (считая слева направо для строк или сверху вниз для столбиков), а между разными блоками есть по меньшей мере одна незарисованная клеточка.

Вы не подскажете как в сообщение вставить картинку?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Помощник капитана
****

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

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


Значит так - ты хоть что-то начни писать,а когда трудности:спрашивай!

З.Ы. Прикрепить файл в "Ответить".


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #7





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

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


Цитата(Bokul @ 18.03.2007 17:59) *

В программе уже должно быть "встроено" 15 разных вариантов кроссвордов? Или что значит "не менее 15"?
Как пользователь заполняет кроссворд?


т.е. она сама должна уметь генерировать кроссворды?



Программа НЕ должна уметь решать кроссворды. Она только предлагает (например, через меню) не менее 15 разных кроссвордов. Пользователь выбирает кроссворд и перед ним по идее должно быть пустое поле с клетками и цифрами сверху и слева.

А решать он должен, я думаю, так:
передвигать по клеткам поля курсор и если он считает, что ту или иную клетку нужно закрасить, то он нажимает клавишу (например, Enter) и клетка заливается. А если пользователь уверен, что эту клетку заливать не нужно то он нажимает какую-нибудь другую клавишу и там появляется крестик.
(Кроссворд черно-белый)

Добавлено через 11 мин.
[quote name='Артемий2' date='18.03.2007 18:12' post='95016']
Значит так - ты хоть что-то начни писать,а когда трудности:спрашивай!

Тысяча извинений! Просто графику мне еще не преподавали
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Помощник капитана
****

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

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


Тогда дай хоть картинку!


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Влюблённый псих
***

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

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


Цитата
Мне еще не давали лекций по графике


вообще графику в паскале не знаешь??
изучай. http://rsc-team.ru/cgi-bin/index.pl?rzd=2&...=lection&ind=21 книжки читай.
затем прочитай про программирование мыши в Паскале.
ну, а кроссворд я думаю можно представить как массив.

интересная у тебя курсовая, успехов.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10





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

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


Извините, я пришел сюда совсем не подготовленный. Выне подскажете как тему закрыть?

А вот картинка

Прикрепленное изображение

Добавлено через 3 мин.
Цитата(Тёмный Эльф @ 18.03.2007 19:53) *

вообще графику в паскале не знаешь??
изучай. http://rsc-team.ru/cgi-bin/index.pl?rzd=2&...=lection&ind=21 книжки читай.
затем прочитай про программирование мыши в Паскале.
ну, а кроссворд я думаю можно представить как массив.

интересная у тебя курсовая, успехов.


Спасибо за участие и за поддержку!

give_rose.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11





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

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


Здравствуйте еще раз! smile.gif Не могли бы вы просмотреть следующий фрагмент:



program japanese_crossword;
uses crt, graph;
const r=11;
var p: 0..1; a,b: array[0..r,0..r] of 0..1;
i,j,n,k1,k2,ss,x,y,gm,gd:integer; c:char;
begin
detectgraph(i,j); initgraph(i,j,'c:/bp/bgi');
begin
gm:=vgahi; setgraphmode(gm); setlinestyle(0,0,1); setcolor(4);
for i:=0 to r-1 do
begin
line(20+i*20,20,20+i*20,r*20);
line(20,20+i*20,r*20,20+i*20);
end;
x:=10; y:=10;
repeat
c:=readkey; if c=#0 then c:=readkey;
case c of
#72 : begin
setcolor(0); circle(x,y,2); y:=y-20; setcolor(15); circle(x,y,2);
end;

#80 : begin
setcolor(0); circle(x,y,2); y:=y+20; setcolor(15); circle(x,y,2);
end;

#75 : begin
setcolor(0); circle(x,y,2); x:=x-20; setcolor(15); circle(x,y,2);
end;

#77 : begin
setcolor(0); circle(x,y,2); x:=x+20; setcolor(15); circle(x,y,2);
end;

#13 : begin
floodfill(x,y,4); a[(x-5) div 10,(y-5) div 10]:=1;
b[(x-5) div 10,(y-5) div 10]:=1;
end;

#32 : begin
setfillstyle(1,5); bar(x-9,y-9,x+9,y+9);
a[(x-5) div 10,(y-5) div 10]:=0;
b[(x-5) div 10,(y-5) div 10]:=0;
setfillstyle(1,15);
end;
end; {case}
until c=#27;
setcolor(0); circle(x,y,2);
end;
end.




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

Да, и еще. Подскажите пожалуйста как вывести сеточку, в которой число строк и столбцов не обязательно совпадают (в отличие от этого фрагмента).

P.S. Лекций по графике так и не было, так что учусь по книжкам. unsure.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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