Сейчас на форуме: tyns777 (+5 невидимых)

 eXeL@B —› Программирование —› нужна помощь в пацкале
Посл.ответ Сообщение


Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 14 декабря 2007 16:23 · Поправил: Rascal
· Личное сообщение · #1

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

все бы ничего, но я хз как в пацкале работа с консолью обстоит. т.е. как заменить букву, если введена правильная. наверное самое простое почистить весь экран и вывести все с самого начала. тока яхз опять же как это делается.

если кто может напесать полностью, отпишитесь. потому как у мну ща напряги со свободным временем =( так бы покопался сам, но ща уже поздно.
или хотя бы кусками кодеса. рисовать вроде получается. нада остальное :/

зы: буду очень благодарен за любую помощь.

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 115.1 (ветеран), 3thx
Активность: 0.070
Статус: Участник

Создано: 14 декабря 2007 16:33
· Личное сообщение · #2

Rascal пишет:
но я хз как в пацкале работа с консолью обстоит


а что разве паскаль не исключительно под дос? откуда консоль?




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 14 декабря 2007 16:46 · Поправил: Rascal
· Личное сообщение · #3

ну турбопацкаль. я о нем.

-----
Недостаточно только получить знания:надо найти им приложение





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 14 декабря 2007 16:48
· Личное сообщение · #4

Rascal вроть была в турбопацкале функа AT которая ставит курсор в нужное место

-----
StarForce и Themida ацтой!





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 14 декабря 2007 16:59
· Личное сообщение · #5

var
entered_symbol: char;
s, s2: string;
i: integer
begin
for i:=1 to length(s2) do
begin
if s2[i] = entered_symbol then s[i] := entered_symbol
endl;

типа шаблончег проверки буквы.
мож кто еще что подкинет?

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 72.3 (постоянный)
Активность: 0.040
Статус: Участник

Создано: 14 декабря 2007 17:04
· Личное сообщение · #6

там есть ссыль на игру
**********************
Язык: Turbo Pascal
Категория: Курсовая работа
Игра "Поле чудес" - угадывается слово по буквам.
**********************
www.foxweb.net.ru/files/?arc=1




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 14 декабря 2007 17:10
· Личное сообщение · #7

sER
там денег просят :/

-----
Недостаточно только получить знания:надо найти им приложение





Ранг: 307.9 (мудрец), 196thx
Активность: 0.180
Статус: Участник

Создано: 14 декабря 2007 18:01
· Личное сообщение · #8

Посылаем курсор черт знает куда и пишем там что хотим:
uses crt;
....
begin
GotoXY(10,10); // а в виндовом паскале было бы Uses WinCrt; CursorTo(10, 10);
WriteLn('Hello');
end;

-----
Don_t hate the cracker - hate the code.




Ранг: 226.0 (наставник), 67thx
Активность: 0.160
Статус: Участник

Создано: 14 декабря 2007 20:46
· Личное сообщение · #9

Maximus пишет:
Rascal вроть была в турбопацкале функа AT которая ставит курсор в нужное место

AT вроде из Бейсика.

Когда-то в детстве хотел написать что-то типа Norton Commander. Накидал каркас, потом надоело. В приложении сырец. Думаю, тебе поможет.




f8c2_14.12.2007_CRACKLAB.rU.tgz - commander.ZIP




Ранг: 156.2 (ветеран), 2thx
Активность: 0.090
Статус: Участник

Создано: 14 декабря 2007 21:17 · Поправил: Mavlyudov
· Личное сообщение · #10

Rascal

uses crt;
var
m:string;
c:char;
p:char;
s:string;
k, j, l1 :word;

begin
clrscr;
m:='cracklab';
l1:=length(m);
for i:=1 to l1 do
begin
gotoxy(i,1);
write('-');
end;
writeln;

for k:=1 to l1 do begin
gotoxy(1,4);
writeln('Enter any letter');
clreol;
readln(p);

for j:=1 to l1 do
if m[j]=p then
begin
gotoxy(j,1);
write(p);
end ;
{else
begin
...
end; }

END;

readln;
end.

Примерно так. Тольео внешний цикл сделай по-другому. Учти кол-во повторяющийся букв в слове.
А также нужно сравнивать полученную после ввода строку с исходным словом. Вот тогда, цикл будет работать правильное число раз.



Ранг: 36.1 (посетитель)
Активность: 0.010
Статус: Участник

Создано: 14 декабря 2007 22:12
· Личное сообщение · #11

uses crt;
const max=10;
ch:array[0..21] of string[6] =(
' . .','',' o .','',' o o','',' o O','',
' O O','', ' O O',' o', ' 0 0',' O',
' O O',' q', ' O O ',' \ O /', ' * * ',' \ O /',
' _ _ ',' Q ');

var s,ss:string;
z,i:integer;
c:char;
b:boolean;
begin
s:='cracklab';
clrscr;
ss:='';
for i:=1 to length (s) do sS:=ss+'-';
z:=0;
repeat
gotoxy (1,1); writeln (ss);
writeln ('Errors=',z);
writeln (ch[z*2],#13#10,ch[z*2+1]);
c:=readkey; b:=true;
for i:=1 to length (s) do if s[i]=c then
begin ss[i]:=s[i]; b:=false; end;
if b then inc (z);
until (z>max) or (s=ss);
readln;
end.






Ранг: 65.3 (постоянный), 10thx
Активность: 0.020
Статус: Участник

Создано: 14 декабря 2007 23:19 · Поправил: tomac
· Личное сообщение · #12

В свое время писал модуль для паскаля. Он довольно большой, но там есть 3 функции - ReadAt, WriteAt и Quick_Write. Эти функции позволяют вывести что угодно где угодно или прочитать существующие символы с экрана. По прототипам разберетесь). Так же там есть функции работы с мышью, пара переводов строка - число и еще немного шушеры.
Пользуйтесь, opensource так сказать)
29df_14.12.2007_CRACKLAB.rU.tgz - CRT2.PAS




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 15 декабря 2007 10:45
· Личное сообщение · #13

спасибо всем за помощь. будем курить кодес =)

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 51.7 (постоянный)
Активность: 0.020
Статус: Участник

Создано: 15 декабря 2007 16:06
· Личное сообщение · #14

Rascal пишет:
будем курить кодес =)


Кодес, а кто это?




Ранг: 111.1 (ветеран)
Активность: 0.040
Статус: Участник

Создано: 15 декабря 2007 19:01
· Личное сообщение · #15

Балет Аллы Духовой =)

-----
The truth is out of there...





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 16 декабря 2007 04:05
· Личное сообщение · #16

--> Задание <-- http://kikg.ifmo.ru/~igor/g102-141/lr202.htm
короч вот задание к этой лабе. самому все таки песать некогда. задание плевое, так что можете срубить на мне немного жидоденег =) кто хочет взяться - пишите за скока сделаете денег и времени в пм.

-----
Недостаточно только получить знания:надо найти им приложение





Ранг: 307.9 (мудрец), 196thx
Активность: 0.180
Статус: Участник

Создано: 16 декабря 2007 10:42
· Личное сообщение · #17

Rascal

Именно на паскале (досовом) ? ...

-----
Don_t hate the cracker - hate the code.





Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 16 декабря 2007 12:56 · Поправил: Rascal
· Личное сообщение · #18

турбопаскаль 7 версия

-----
Недостаточно только получить знания:надо найти им приложение




Ранг: 1.0 (гость)
Активность: 0=0
Статус: Участник

Создано: 16 декабря 2007 14:37
· Личное сообщение · #19

Rascal

Нужна программа в текстовом режиме? crt 80x25? Или всё-таки в графическом, как сказано в задании?

Если в текстовом - то модуль CRT использовать нельзя либо нужен патч, ибо на теперешних компах программа использующая модуль crt будет давать Division by zero. Либо отказаться от crt вообще - но тогда нужно писать свои функции работы с видеопамятью для вывода текста и для чтения скан-кодов клавиш с клавиатуры.

Если в графике, то в каком режиме? В VGA mode (640x480x16 цветов)? 13h (320x200x256) ? Уточни.




Ранг: 260.9 (наставник)
Активность: 0.120
Статус: Участник
John Smith

Создано: 16 декабря 2007 14:54
· Личное сообщение · #20

uses graph;
var y:real;
gd,gm,width,height,x:integer;
begin
write('vvedite dlinnu: ');
readln(width);
write('vvedite visotu: ');
readln(height);
gd:=detect;
x:=0;
initgraph(gd,gm,'');
floodfill(320,230,WHITE);
setcolor(Black);
setfillstyle(1,black);
line(320-width-x,240-height-height,320+width+x,240-height-height);
line(320-width-x,240-height-height,320,240);
line(320,240,320+width+x,240-height-height);
floodfill(320,240-height,black);
setcolor(4);
ellipse(320,240,0,360,width+5,height+5);
setfillstyle(1,RED);
floodfill(320,240,4);
readln;
closegraph;
end.


вот лаба из предыдущих. думаю такого же плана. хз какой здесь режим.

-----
Недостаточно только получить знания:надо найти им приложение





Ранг: 392.8 (мудрец), 108thx
Активность: 0.260.01
Статус: Участник
REVENGE сила, БеХоЦе могила

Создано: 17 декабря 2007 08:48
· Личное сообщение · #21

Rascal пишет:uses graph;
Rascal пишет:initgraph(gd,gm,'');
Это графический режим, CRT не юзается.

-----
StarForce и Themida ацтой!



 eXeL@B —› Программирование —› нужна помощь в пацкале
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати