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

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Орел или решка
CORS@R
сообщение 4.02.2006 1:48
Сообщение #1


Новичок
*

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

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


Задача такая: написать игру типа орел или решка, но с деньгами. Данные должны считываться из файла(а именно имя и деньги) и сохранятся в файл.
uses crt;
const N=1000;
label save, view, start, money, exit;
type
Dengi=record
name:string[12];
babki:integer;
end;
var
imya:char;
x,y:byte;
mas: array[1..N] of dengi;
i,sum,rez,otv,stavka,count:integer;
f:text;

begin
textbackground(1);
textcolor(10);
clrscr;
count:=0;
assign(f,'c:\123.txt');
reset(f);
begin
while (not eof(f)) do
begin
readln(f,mas[count].name);
readln(f,mas[count].babki);
inc(count);
end;
end;
close(f);
randomize;
sum:=100;
writeln;
writeln( ' Ћђ…‹ €‹€ ђ…˜ЉЂ ');
while sum>0 do
begin
if sum>=1000 then
begin
writeln;
writeln(' Њ®Ґ Є §Ё­® ®Ў ­Єа®вЁ«®бм, в Є зв® Ё¤Ё Є вл ®вбо¤ Ї®Є п вҐЎп ­Ґ гЎЁ«');
writeln;
readln;
goto exit;
end;
start:
writeln;
writeln(' 0-Ћђ…‹ 4-‘®еа ­Ёвм 1-ђ…˜ЉЂ 2-‚›•Ћ„ €‡ €ѓђ› 3-Џа®б¬®ва');
writeln;
readln(otv);
if otv>4 then
begin
writeln;
writeln(' ’л зҐ б«ҐЇ®©? Ќ ЇЁб ­® ¦Ґ 0-Ћђ…‹ 4-‘®еа ­Ёвм 1-ђ…˜ЉЂ 2-‚›•Ћ„ €‡ €ѓђ› 3-Џа®б¬®ва ');
writeln;
writeln( ' Ђ ' ,otv,' п зв®-в® ­Ґ ўЁ¦г');
writeln;
goto start;
end;
if otv=3 then goto view;
if otv=4 then goto save;
if otv=2 then goto exit;
if otv=0 then
begin
x:=WhereX;
y:=WhereY-1;
gotoXY(x,y);
writeln(' Ћђ…‹');
end;
if otv=1 then
begin
x:=WhereX;
y:=WhereY-1;
gotoXY(x,y);
writeln(' ђ…˜ЉЂ');
end;
money: begin
writeln;
Writeln(' ” ⥡п ',sum,' агЎ«Ґ©. ‘Є®«мЄ® бв ўЁим?');
writeln;
readln(stavka);
if stavka>sum then
begin
writeln;
writeln(' ’л зҐ бзЁв вм зв® «Ё ­Ґ 㬥Ґим, г вҐЎп ­Ґв в ЄЁе ¤Ґ­ҐЈ!!!');
readln;
goto money;
end;
rez:=random(2);
if rez=1 then
begin
writeln;
writeln(' ‚лЇ « ђ…˜ЉЂ');
end;
if rez=0 then
begin
writeln;
writeln(' ‚лЇ « Ћђ…‹');
end;
if rez=otv then
begin
writeln;
writeln(' ”г и а ');
sum:=sum+stavka;
writeln;
writeln(' ‘зҐв: ',sum);
writeln('-----------------------------------------------------------------');
end
else begin
writeln;
writeln( ' ”г б в ЄЁ¬ ЁЈа вм ¤ ¦Ґ ­Ґ Ё­вҐаҐб­®');
sum:=sum-stavka;
writeln;
writeln(' ‘зҐв: ',sum);
writeln('------------------------------------------------------------------');
end;
end;
end;
if sum<=0 then
begin
writeln;
writeln(' ” вҐЎп § Є®­зЁ«Ёбм Ў ЎЄЁ. Љ Є в®«мЄ® Ї®пўпвбп, § 室Ё');
readln;
end;

view:if count>0 then
writeln(' €Ја®Є „Ґ­мЈЁ ');
if count>0 then
begin
i:=0;
while i<count do
writeln(mas[i].name,mas[i].babki) ;
end
else writeln(' ‘ЇЁб®Є Їгбв');
goto start;


save: if count<N then
begin
writeln('‚ўҐ¤ЁвҐ бў®Ґ Ё¬п ');
readln(imya);
mas[count].name:=imya;
inc(count);
end
else
writeln('ЌҐв бў®Ў®¤­®Ј® ¬Ґбв ');
assign (f,'c:\123.txt');
append(f);
i:=0;
while i<count do
begin
mas[i].babki:=sum;
writeln(f,mas[i].name);
writeln(f,mas[i].babki);
end;
close(f);
goto start;

exit: end.


Дело в том что инфа никак не может сохраниться(помогает только CTRL+BREAK), а сам файл все толстеет и толстеет. При просмотре все время пишет что список пуст

Кто видел наверно еще не забыл
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
volvo
сообщение 4.02.2006 22:19
Сообщение #2


Гость






YYY.gif Опять метки...
save:

writeln('‚Введи имя'); readln(imya);
b := False; { <--- Эту переменную придется определить в начале }
for i := 1 to count do begin
if imya = mas[i].name then begin

inc(mas[i].babki, sum);
rewrite(f);
for j := 1 to count do begin
writeln(f, mas[j].name); { <--- Здесь была ошибка ! }
writeln(f, mas[j].babki);
end;
close(f);
b := true; break;
end;
end;

if not b then
if count<N then begin
inc(count);
mas[count].name:=imya;
mas[count].babki:=sum;
append(f);
writeln(f,mas[count].name);
writeln(f,mas[count].babki);
close(f);
end;
else writeln('Нет места ');
Идея понятна?

Сообщение отредактировано: volvo - 2.11.2006 17:27
 К началу страницы 
+ Ответить 

Сообщений в этой теме
CORS@R   Орел или решка   4.02.2006 1:48
volvo   под меткой View: view: if count>0 then writ...   4.02.2006 2:22
CORS@R   Точно про счетчик то я забыл. С goto вроде как то ...   4.02.2006 2:49
CORS@R   Есть маленький глюк при просмотре, но эта фигня щ...   4.02.2006 4:47
volvo   Переделай часть с Save и View вот так: view: ...   4.02.2006 13:44
CORS@R   Спасибо, все работает. :good: А я вчера чуть ли ...   4.02.2006 14:54
CORS@R   А как сделать так чтобы экзешник и файл 123.txt на...   4.02.2006 16:52
volvo   Не указывай путь к TXT файлу явно. Напиши просто ...   4.02.2006 17:01
CORS@R   Я так и делал, вылетало с какой-то ошибкой. Щас по...   4.02.2006 18:11
CORS@R   Блин, хочется зашифровать данные в файле. Вроде ка...   4.02.2006 18:37
volvo   Все правильно понял... Append работает только с те...   4.02.2006 18:48
CORS@R   С шифровкой понял, реализую потом. Есть маленькая ...   4.02.2006 22:07
volvo   :YYY: Опять метки... save: writeln('‚Введи им...   4.02.2006 22:19
CORS@R   че то не так... Играю - сохраняю qw 77 играю - сох...   4.02.2006 23:08
volvo   Я подправил, проверь...   4.02.2006 23:17
CORS@R   Работает :good: . А я уж было собирался через удал...   5.02.2006 0:01
CORS@R   Еще одна малюсенькая просьба: при просмотре имя иг...   5.02.2006 1:13
volvo   В Си это делается легко а в Паскале не знаю А в Па...   5.02.2006 1:21
CORS@R   Блин, че то я уже совсем туплю. Я делал так view: ...   5.02.2006 1:39
CORS@R   volvo, смотри: Чтоб сразу нельзя было сохранять де...   6.02.2006 1:19
volvo   Вот как ты думаешь, я сейчас все брошу и буду поси...   6.02.2006 1:39
CORS@R   Извеняюсь, не подумал. Изменения пометил так {...   6.02.2006 1:46
volvo   Не знаю, почему это у тебя не работает, мне просто...   6.02.2006 2:06
CORS@R   Ну не 50 - 60 строк, но от меток избавился. Так по...   6.02.2006 18:02


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

 



- Текстовая версия 20.07.2025 21:19
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"