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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
CORS@R
сообщение 6.02.2006 18:02
Сообщение #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 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:08
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"