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

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

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

> Орел или решка
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Новичок
*

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

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


Ну не 50 - 60 строк, но от меток избавился. Так пойдет?
Код

uses crt;
const N=100;
type
  Dengi=record
    name:string[9];
    babki:word;
end;
var
b:boolean;
imya:string[15];
x,y,rez,flag:byte;
tmp:word;
mas: array[1..N] of dengi;
otv,otvet:char;
i,j,sum,stavka,count:integer;
f:text;

procedure cursor;
   begin
      x:=WhereX;
      y:=WhereY-1;
      gotoXY(x,y);
   end;

PROCEDURE view;
  begin
     if count>0 then
    begin
         writeln;
         writeln('                 -------------------------------------------');
         writeln('                |        ?ѓђЋЉ':10, '        |        „Ґ­мЈЁ':10,'       |');
         writeln('                |-------------------------------------------|');
    end;
     if count>0 then
       begin
          i:=1;
          while i<=count do
           begin
               writeln('                |                     |                     |');
               writeln('                |    ',mas[i].name:10,'       |  ', mas[i].babki:10,'         |');
               writeln('                |                     |                     |');
               inc(i);
            end;
          writeln('                 -------------------------------------------');
       end
     else
      writeln(' ‘ЇЁб®Є Їгбв');
   end;

procedure save;
   begin
     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);
             WRITELN;
             writeln('Џа®©¤Ё ў Є ббг, в ¬ ⥡Ґ ўл¤ ¤гв вў®Ё зҐбв­®§ а Ў®в ­­лҐ ¤Ґ­мЈЁ');
             WRITELN;
             readln;
             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);
             writeln;
             writeln('Џа®©¤Ё ў Є ббг, в ¬ ⥡Ґ ўл¤ ¤гв вў®Ё зҐбв­®§ а Ў®в ­­лҐ ¤Ґ­мЈЁ ');
             writeln;
             readln;
          end
        else
          writeln('Нет места ');
      end;

procedure start;
   begin
       writeln;
       writeln(' --------   ---------   ----------   ------------------   ----------------- ');
       writeln('| 0-Ћђ…‹ | | 1-ђ…˜ЉЂ | | 2-?ѓђЋЉ? | | 3-‡ЂЃђЂ’њ „…Ќњѓ? | | 4-‚›•Ћ„ ?‡ ?ѓђ› | ');
       writeln(' --------   ---------   ----------   ------------------   ----------------- ');
       writeln;
       otv:=readkey;
   end;

procedure money;
   begin
       writeln;
       Writeln(' “ ⥡п ',sum,' агЎ«Ґ©. ‘Є®«мЄ® бв ўЁим?');
       writeln;
       readln(stavka);
       if stavka>sum then
       begin
          writeln;
          writeln(' ’л зҐ бзЁв вм зв® «Ё ­Ґ 㬥Ґим, г вҐЎп ­Ґв в ЄЁе ¤Ґ­ҐЈ!!!');
          writeln('-----------------------------------------------------------------');
          readln;
          money;
       end;
   end;

procedure start1;
    begin
       count:=0;
       assign(f,'123.txt');
       reset(f);
       while (not eof(f)) do
          begin
         inc(count);
         readln(f,mas[count].name);
         readln(f,mas[count].babki);
      end;
       close(f);
       flag:=0;
       writeln;
       writeln('            -------------   --------   --------------- ');
       writeln('           |1-ЌЋ‚›‰ ?ѓђЋЉ| |2-?ѓђЋЉ?| |3-‚›•Ћ„ ?‡ ?ѓђ›|');
       writeln('            -------------   --------   --------------- ');
       writeln;
       otvet:=readkey;
       if otvet='1' then
          begin
         writeln;
         writeln(' Љ Є вҐЎп §®ўгв ?я');
         writeln;
         readln(imya);
          end;
       if otvet='2' then
          begin
         view;
         start1;
          end;
       if otvet='3' then halt;
       randomize;
       sum:=100;
       writeln;
       writeln( '                               Ћђ…‹ ?‹? ђ…˜ЉЂ            ');
       while sum>0 do
          begin
         if sum>=1000 then
             begin
                 writeln;
                 writeln(' Њ®Ґ Є §Ё­® ®Ў ­Єа®вЁ«®бм, в Є зв® Ё¤Ё Є  вл ®вбо¤  Ї®Є  п вҐЎп ­Ґ гЎЁ«');
                 writeln;
                 readln;
                 save;
             end;
         start;
         if otv>'4' then
             begin
                 writeln;
                 writeln(' “ ⥡п ᮢᥬ Ї«®е® б® §аҐ­ЁҐ¬ ? Ќ ЇЁб ­® ¦Ґ: ');
                 writeln;
                 writeln('  --------   ---------   ----------   ------------------   ----------------- ');
                 writeln(' | 0-Ћђ…‹ | | 1-ђ…˜ЉЂ | | 2-?ѓђЋЉ? | | 3-‡ЂЃђЂ’њ „…Ќњѓ? | | 4-‚›•Ћ„ ?‡ ?ѓђ› | ');
                 writeln('  --------   ---------   ----------   ------------------   -----------------  ');
                 writeln;
                 writeln( ' Ђ ' ,otv,' п зв®-в® ­Ґ ўЁ¦г');
                 writeln('--------------------------------------------------------------------------------');
                 start;
              end;
         if otv='2' then
             begin
                 view;
                 start;
             end;
         if otv='3' then
             begin
                 if  flag=1 then
                     begin
                      save;
                      start1;
                      end
                 else
                 begin
                     writeln;
                     writeln(' •®зҐим ¤Ґ­мЈЁ § Ўа вм? ЌҐ в Є Ўлбва®. —в®Ўл ¤Ґ­мЈЁ § Ўа вм Ёе ­г¦­® § а Ў®в вм!');
                     writeln;
                     readln;
                     start;
                 end;
             end;
         if otv='4' then halt;
         if otv='0' then
             begin
                 cursor;
                 writeln(' Ћђ…‹');
             end;
         if otv='1' then
             begin
                 cursor;
                 writeln(' ђ…˜ЉЂ');
             end;
         money;
             rez:=random(2);
             if rez=1 then
                 begin
                     writeln;
                     writeln(' ‚лЇ «  ђ…˜ЉЂ');
                 end;
             if rez=0 then
                 begin
                     writeln;
                     writeln(' ‚лЇ « Ћђ…‹');
                 end;
             tmp:=ord(otv)-48;
         if  rez=tmp then
                 begin
                     writeln;
                     writeln(' ”г и а ');
                 inc(sum,stavka);
                 writeln;
                 writeln(' ‘зҐв: ',sum);
                 flag:=1;
                 writeln('-----------------------------------------------------------------');
             end
         else
             begin
                 writeln;
                 writeln( ' ”г б в ЄЁ¬ ЁЈа вм ¤ ¦Ґ ­Ґ Ё­вҐаҐб­®');
                 dec(sum,stavka);
                 writeln;
                 writeln(' ‘зҐв: ',sum);
                 flag:=1;
                 writeln('------------------------------------------------------------------');
             end;
          end;
       if sum<=0 then
         begin
         writeln;
         writeln(' “ вҐЎп § Є®­зЁ«Ёбм Ў ЎЄЁ. Љ Є в®«мЄ® Ї®пўпвбп, § е®¤Ё');
         readln;
         halt;
         end;
    end;

begin
   textbackground(1);
   textcolor(10);
   clrscr;
   start1;
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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


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

 





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