{$reference kubik.dll} {$reference events.dll} {$reference Addons.dll} var a, K11, K21, K12, K22, K13, K23, K14, K24, proig1, proig2, proig3, proig4, otv11, otv12, otv13, otv14: byte; PM1, PM2, PM3, PM4, poz1, dvig1, dvig2, poz2, xod1, poz3, poz4, dvig3, dvig4, vseg, vklad11, vklad12, vklad13, vklad14, prom11, prom12, prom13, prom14, endk, PM, vklad21, vklad22, vklad23, vklad24, prom21, prom22, prom23, prom24: int64; PN1, PN2, PN3, PN4, go1, go2, go3, go4, he1, he2, he3, he4, her1, her2, her3, her4, otv1, otv2, otv3, otv4, otv21, otv22, otv23, otv24, option, otv31, otv32, otv33, otv34: string; Pol1, Pol2, Pol3, Pol4, oka1, oka2, oka3, oka4: char; begin randomize; WriteLn('Добро пожаловать в Монополию'); WriteLn('Если вы нашли баг обращайтесь'); writeln('bugs@redguy.ru'); Writeln('Готовы?'); Writeln('Начинаем'); writeln('Выберите тип наcтроек'); writeln('Ответ напишите цифрой'); writeln('1-Нормальный'); writeln('2-Выборочный'); Readln(option); if (option='1') or (option='Нормальный') or (option='нормальный') or (option='норм') or (option='Норм') or (option='!') then begin Writeln('Выбирете кол-во человек от 2 до 4'); readln(a); Endk := 250; if a = 2 then begin Writeln('Выбранно 2 человека!'); Writeln('Подождите идёт настройка'); writeln('Пол вводиться так М или Ж'); PM1 := 200000; PM2 := 200000; writeln('Ник 1 игрока: '); readln(PN1); writeln('Пол 1 игрока: '); readln(Pol1); writeln('Ник 2 игрока: '); readln(PN2); writeln('Пол 2 игрока: '); readln(Pol2); end; if a = 3 then begin Writeln('Выбранно 3 человека!'); Writeln('Подождите идёт настройка'); writeln('Пол вводиться так М или Ж'); PM1 := 200000; PM2 := 200000; PM3 := 200000; writeln('Ник 1 игрока: '); readln(PN1); writeln('Пол 1 игрока: '); readln(Pol1); writeln('Ник 2 игрока: '); readln(PN2); writeln('Пол 2 игрока: '); readln(Pol2); writeln('Ник 3 игрока: '); readln(PN3); writeln('Пол 3 игрока: '); readln(Pol3); end; if a = 4 then begin Writeln('Выбранно 4 человека!'); Writeln('Подождите идёт настройка'); writeln('Пол вводиться так М или Ж'); PM1 := 200000; PM2 := 200000; PM3 := 200000; PM4 := 200000; writeln('Ник 1 игрока: '); readln(PN1); writeln('Пол 1 игрока: '); readln(Pol1); writeln('Ник 2 игрока: '); readln(PN2); writeln('Пол 2 игрока: '); readln(Pol2); writeln('Ник 3 игрока: '); readln(PN3); writeln('Пол 3 игрока: '); readln(Pol3); writeln('Ник 4 игрока: '); readln(PN4); writeln('Пол 4 игрока: '); readln(Pol4); end; case Pol1 of 'М': oka1 := ' '; 'м': oka1 := ' '; 'Ж': oka1 := 'а'; 'ж': oka1 := 'а'; end; case Pol2 of 'М': oka2 := ' '; 'Ж': oka2 := 'а'; 'м': oka2 := ' '; 'ж': oka2 := 'а'; end; case Pol3 of 'М': oka3 := ' '; 'Ж': oka3 := 'а'; 'м': oka3 := ' '; 'ж': oka3 := 'а'; end; case Pol4 of 'М': oka4 := ' '; 'Ж': oka4 := 'а'; 'м': oka4 := ' '; 'ж': oka4 := 'а'; end; case Pol1 of 'М': go1 := ' дошёл '; 'Ж': go1 := ' дошла '; 'м': go1 := ' дошёл '; 'ж': go1 := ' дошла '; end; case Pol2 of 'М': go2 := ' дошёл '; 'Ж': go2 := ' дошла '; end; case Pol3 of 'М': go3 := ' дошёл '; 'Ж': go3 := ' дошла '; 'м': go3 := ' дошёл '; 'ж': go3 := ' дошла '; end; case Pol4 of 'М': go4 := ' дошёл '; 'Ж': go4 := ' дошла '; 'м': go4 := ' дошёл '; 'ж': go4 := ' дошла '; end; case Pol1 of 'М': he1 := ' он '; 'Ж': he1 := ' она '; 'м': he1 := ' он '; 'ж': he1 := ' она '; end; case Pol2 of 'М': he2 := ' он '; 'Ж': he2 := ' она '; 'м': he2 := ' он '; 'ж': he2 := ' она '; end; case Pol3 of 'М': he3 := ' он '; 'Ж': he3 := ' она '; 'м': he3 := ' он '; 'ж': he3 := ' она '; end; case Pol4 of 'М': he4 := ' он '; 'Ж': he4 := ' она '; 'м': he4 := ' он '; 'ж': he4 := ' она '; end; case Pol1 of 'М': her1 := ' ему '; 'Ж': her1 := ' ей '; 'м': her1 := ' ему '; 'ж': her1 := ' ей '; end; case Pol2 of 'М': her2 := ' ему '; 'Ж': her2 := ' ей '; 'м': her2 := ' ему '; 'ж': her2 := ' ей '; end; case Pol3 of 'М': her3 := ' ему '; 'Ж': her3 := ' ей '; 'м': her3 := ' ему '; 'ж': her3 := ' ей '; end; case Pol4 of 'М': her4 := ' ему '; 'Ж': her4 := ' ей '; 'м': her4 := ' ему '; 'ж': her4 := ' ей '; end; end; if (option='2') or (option='Выборочный') or (option='выборочный') or (option='выбор') or (option='Выбор') or (option='"') or (option='@') then begin Writeln('Выбирете кол-во человек от 2 до 4'); readln(a); if a = 2 then begin Writeln('Выбранно 2 человека!'); Writeln('Подождите идёт настройка'); writeln('Ник 1 игрока: '); readln(PN1); writeln('Пол 1 игрока: '); readln(Pol1); writeln('Ник 2 игрока: '); readln(PN2); writeln('Пол 2 игрока: '); readln(Pol2); end; if a = 3 then begin Writeln('Выбранно 3 человека!'); Writeln('Подождите идёт настройка'); writeln('Пол вводиться так М или Ж'); writeln('Ник 1 игрока: '); readln(PN1); writeln('Пол 1 игрока: '); readln(Pol1); writeln('Ник 2 игрока: '); readln(PN2); writeln('Пол 2 игрока: '); readln(Pol2); writeln('Ник 3 игрока: '); readln(PN3); writeln('Пол 3 игрока: '); readln(Pol3); end; if a = 4 then begin Writeln('Выбранно 4 человека!'); Writeln('Подождите идёт настройка'); writeln('Пол вводиться так М или Ж'); writeln('Ник 1 игрока: '); readln(PN1); writeln('Пол 1 игрока: '); readln(Pol1); writeln('Ник 2 игрока: '); readln(PN2); writeln('Пол 2 игрока: '); readln(Pol2); writeln('Ник 3 игрока: '); readln(PN3); writeln('Пол 3 игрока: '); readln(Pol3); writeln('Ник 4 игрока: '); readln(PN4); writeln('Пол 4 игрока: '); readln(Pol4); end; case Pol1 of 'М': oka1 := ' '; 'Ж': oka1 := 'а'; end; case Pol2 of 'М': oka2 := ' '; 'Ж': oka2 := 'а'; end; case Pol3 of 'М': oka3 := ' '; 'Ж': oka3 := 'а'; end; case Pol4 of 'М': oka4 := ' '; 'Ж': oka4 := 'а'; end; case Pol1 of 'М': go1 := ' дошёл '; 'Ж': go1 := ' дошла '; end; case Pol2 of 'М': go2 := ' дошёл '; 'Ж': go2 := ' дошла '; end; case Pol3 of 'М': go3 := ' дошёл '; 'Ж': go3 := ' дошла '; end; case Pol4 of 'М': go4 := ' дошёл '; 'Ж': go4 := ' дошла '; end; case Pol1 of 'М': he1 := ' он '; 'Ж': he1 := ' она '; end; case Pol2 of 'М': he2 := ' он '; 'Ж': he2 := ' она '; end; case Pol3 of 'М': he3 := ' он '; 'Ж': he3 := ' она '; end; case Pol4 of 'М': he4 := ' он '; 'Ж': he4 := ' она '; end; case Pol1 of 'М': her1 := ' ему '; 'Ж': her1 := ' ей '; end; case Pol2 of 'М': her2 := ' ему '; 'Ж': her2 := ' ей '; end; case Pol3 of 'М': her3 := ' ему '; 'Ж': her3 := ' ей '; end; case Pol4 of 'М': her4 := ' ему '; 'Ж': her4 := ' ей '; end; writeln('Выберите изначальное кол-во денег'); Readln(PM); PM1 := PM; PM2 := PM; PM3 := PM; PM4 := PM; writeln('Выберите клетку до которой надо дойти для победы'); Readln(endk); end; Writeln('=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-='); loop 987654321 do begin poz1:= getkubik(PN1,poz1); writeln(PN1, go1, 'до клетки ', poz1); xod1 := xod1 + 1; poz2:= getkubik(PN2,poz2); writeln(PN2, go2, 'до клетки ', poz2); if a = 3 then begin poz3:=getkubik(PN3,poz3); writeln(PN3, go3, 'до клетки ', poz3); end; if a = 4 then begin poz3:=getkubik(PN3,poz3); writeln(PN3, go3, 'до клетки ', poz3); poz4:=getkubik(PN4,poz4); writeln(PN4, go4, 'до клетки ', poz4); end; if poz1 = 5 then begin PM1:=event1(PN1,oka1,he1,PM1); end; if poz2 = 5 then begin PM2:=event1(PN2,oka2,he2,PM2); end; if poz3 = 5 then begin PM3:=event1(PN3,oka3,he3,PM3); end; if poz4 = 5 then begin PM4:=event1(PN4,oka4,he4,PM4); end; if poz1 = 23 then begin PM1:=event2(PN1,her1,PM1,a); PM2:=MoneyMinus12(a,PM2,2500); PM3:=MoneyMinus3(a,PM3,2500); PM4:=MoneyMinus4(a,PM4,2500); end; if poz2 = 23 then begin PM1:=MoneyMinus12(a,PM1,2500); PM2:=event2(PN2,her2,PM2,a); PM3:=MoneyMinus3(a,PM3,2500); PM4:=MoneyMinus4(a,PM4,2500); end; if poz3 = 23 then begin PM1:=MoneyMinus12(a,PM1,2500); PM2:=MoneyMinus12(a,PM2,2500); PM3:=event2(PN3,her3,PM3,a); PM4:=MoneyMinus4(a,PM4,2500); end; if poz4 = 23 then begin PM1:=MoneyMinus12(a,PM1,2500); PM2:=MoneyMinus12(a,PM2,2500); PM3:=MoneyMinus3(a,PM3,2500); PM4:=event2(PN4,her4,PM4,a); end; if poz1 = 29 then begin writeln(PN1, ' попал', oka1, ' в волшебный магазин.'); writeln('там', her1, ' предложили купить волшебный камень за 50000'); writeln(PN1, ' покупаем? Да или Нет? '); read(otv1); case otv1 of 'Да': otv11 := 1; 'Нет': otv11 := 0; end; if otv11 = 1 then begin PM1 := PM1 - 50000; writeln('У ', PN1, ' стало ', PM1, '$'); end; end; if poz2 = 29 then begin writeln(PN2, ' попал', oka2, ' в волшебный магазин.'); writeln('там', her2, ' предложили купить волшебный камень за 50000'); writeln(PN2, ' покупаем? Да или Нет? '); read(otv2); case otv2 of 'Да': otv12 := 1; 'Нет': otv12 := 0; end; if otv12 = 1 then begin PM2 := PM2 - 50000; writeln('У ', PN2, ' стало ', PM2, '$'); end; end; if poz3 = 29 then begin writeln(PN3, ' попал', oka3, ' в волшебный магазин.'); writeln('там', her3, ' предложили купить волшебный камень за 50000'); writeln(PN3, ' покупаем? Да или Нет? '); read(otv3); case otv3 of 'Да': otv13 := 1; 'Нет': otv13 := 0; end; if otv13 = 1 then begin PM3 := PM3 - 50000; writeln('У ', PN3, ' стало ', PM3, '$'); end; end; if poz4 = 29 then begin writeln(PN4, ' попал', oka4, 'в волшебный магазин.'); writeln('там', her4, ' предложили купить волшебный камень за 50000'); writeln(PN4, ' покупаем? Да или Нет? '); read(otv4); case otv4 of 'Да': otv14 := 1; 'Нет': otv14 := 0; end; if otv14 = 1 then begin PM4 := PM4 - 50000; writeln('У ', PN4, ' стало ', PM4, '$'); end; end; if otv11 = 1 then PM1 := PM1 + 2000; if otv12 = 1 then PM2 := PM2 + 2000; if otv13 = 1 then PM3 := PM3 + 2000; if otv14 = 1 then PM4 := PM4 + 2000; if PM1 <= 0 then begin PM1 := 0; poz1 := 0; proig1 := 1; end; if PM2 <= 0 then begin PM2 := 0; poz2 := 0; proig2 := 1; end; if a = 3 then begin if PM3 <= 0 then begin PM3 := 0; poz3 := 0; proig3 := 1; end; end; if a = 4 then begin if PM3 <= 0 then begin PM3 := 0; poz3 := 0; proig3 := 1; end; if PM4 <= 0 then begin PM4 := 0; poz4 := 0; proig4 := 1; end; end; if poz1 = 46 then begin writeln(PN1, ' превысил', oka1, ' скорость и получил', oka1, ' штраф в размере 3500$'); PM1 := PM1 - 3500; writeln('у', her1, 'осталось ', PM1, '$'); end; if poz2 = 46 then begin writeln(PN2, ' превысил', oka2, ' скорость и получил', oka2, ' штраф в размере 3500$'); PM2 := PM2 - 3500; writeln('у', her2, 'осталось ', PM2, '$'); end; if poz3 = 46 then begin writeln(PN3, ' превысил', oka3, ' скорость и получил', oka3, ' штраф в размере 3500$'); PM3 := PM3 - 3500; writeln('у', her3, 'осталось ', PM3, '$'); end; if poz4 = 46 then begin writeln(PN4, ' превысил', oka4, ' скорость и получил', oka4, ' штраф в размере 3500$'); PM4 := PM4 - 3500; writeln('у', her4, 'осталось ', PM4, '$'); end; if poz1 = 19 then begin writeln(PN1, ' хочешь сделать вклад в банк?'); readln(otv21); if (otv21 = 'Да') or (otv21='да') or (otv21='lf') or (otv21='Lf') then begin writeln('у тебя ', PM1, '$, сколько вкладываем?'); readln(vklad11); writeln('Вкладываем ', vklad11, '$'); writeln('Вклад сделан, ждите результата'); PM1 := PM1 - vklad11; writeln('у ', PN1, ' осталось ', PM1, '$'); end; end; if poz2 = 19 then begin writeln(PN2, ' хочешь сделать вклад в банк?'); readln(otv22); if (otv22 = 'Да') or (otv22='да') or (otv22='lf') or (otv22='Lf') then begin writeln('у тебя ', PM2, '$, сколько вкладываем?'); readln(vklad12); writeln('Вкладываем ', vklad12, '$'); writeln('Вклад сделан, ждите результата'); PM2 := PM2 - vklad12; writeln('у ', PN2, ' осталось ', PM2, '$'); end; end; if poz3 = 19 then begin writeln(PN3, ' хочешь сделать вклад в банк?'); readln(otv23); if (otv23 = 'Да') or (otv23='да') or (otv23='lf') or (otv23='Lf') then begin writeln('у тебя ', PM3, '$, сколько вкладываем?'); readln(vklad13); writeln('Вкладываем ', vklad13, '$'); writeln('Вклад сделан, ждите результата'); PM3 := PM3 - vklad13; writeln('у ', PN3, ' осталось ', PM3, '$'); end; end; if poz4 = 19 then begin writeln(PN4, ' хочешь сделать вклад в банк?'); readln(otv24); if (otv24 = 'Да') or (otv24='да') or (otv24='lf') or (otv24='Lf') then begin writeln('у тебя ', PM4, '$, сколько вкладываем?'); readln(vklad14); writeln('Вкладываем ', vklad14, '$'); writeln('Вклад сделан, ждите результата'); PM4 := PM4 - vklad14; writeln('у ', PN4, ' осталось ', PM4, '$'); end; end; if poz1 = 36 then begin if (otv21 = 'Да') or (otv21='да') or (otv21='lf') or (otv21='Lf') then begin writeln('Вклад окупился в 5 раз'); prom11 := vklad11 * 5; PM1 := PM1 + prom11; writeln('у ', PN1, ' осталось ', PM1, '$'); end; end; if poz2 = 36 then begin if (otv22 = 'Да') or (otv22='да') or (otv22='lf') or (otv22='Lf') then begin writeln('Вклад окупился в 5 раз'); prom12 := vklad12 * 5; PM2 := PM2 + prom12; writeln('у ', PN2, ' осталось ', PM2, '$'); end; end; if poz3 = 36 then begin if (otv23 = 'Да') or (otv23='да') or (otv23='lf') or (otv23='Lf') then begin writeln('Вклад окупился в 5 раз'); prom13 := vklad13 * 5; PM3 := PM3 + prom13; writeln('у ', PN3, ' осталось ', PM3, '$'); end; end; if poz4 = 36 then begin if (otv24 = 'Да') or (otv24='да') or (otv24='lf') or (otv24='Lf') then begin writeln('Вклад окупился в 5 раз'); prom14 := vklad14 * 5; PM4 := PM4 + prom14; writeln('у ', PN4, ' осталось ', PM4, '$'); end; end; if poz1 = 23 then begin writeln(PN1, ' хочешь сделать вклад в банк?'); readln(otv31); if (otv31 = 'Да') or (otv31='да') or (otv31='lf') or (otv31='Lf') then begin writeln('у тебя ', PM1, '$, сколько вкладываем?'); readln(vklad21); writeln('Вкладываем ', vklad21, '$'); writeln('Вклад сделан, ждите результата'); PM1 := PM1 - vklad21; writeln('у ', PN1, ' осталось ', PM1, '$'); end; end; if poz2 = 23 then begin writeln(PN2, ' хочешь сделать вклад в банк?'); readln(otv32); if (otv32 = 'Да') or (otv32='да') or (otv32='lf') or (otv32='Lf') then begin writeln('у тебя ', PM2, '$, сколько вкладываем?'); readln(vklad22); writeln('Вкладываем ', vklad22, '$'); writeln('Вклад сделан, ждите результата'); PM2 := PM2 - vklad22; writeln('у ', PN2, ' осталось ', PM2, '$'); end; end; if poz3 = 23 then begin writeln(PN3, ' хочешь сделать вклад в банк?'); readln(otv33); if (otv33 = 'Да') or (otv33='да') or (otv33='lf') or (otv33='Lf') then begin writeln('у тебя ', PM3, '$, сколько вкладываем?'); readln(vklad23); writeln('Вкладываем ', vklad23, '$'); writeln('Вклад сделан, ждите результата'); PM3 := PM3 - vklad23; writeln('у ', PN3, ' осталось ', PM3, '$'); end; end; if poz4 = 23 then begin writeln(PN4, ' хочешь сделать вклад в банк?'); readln(otv34); if (otv34 = 'Да') or (otv34='да') or (otv34='lf') or (otv34='Lf') then begin writeln('у тебя ', PM4, '$, сколько вкладываем?'); readln(vklad24); writeln('Вкладываем ', vklad24, '$'); writeln('Вклад сделан, ждите результата'); PM4 := PM4 - vklad24; writeln('у ', PN4, ' осталось ', PM4, '$'); end; end; if poz1 = 43 then begin if (otv31 = 'Да') or (otv31='да') or (otv31='lf') or (otv31='Lf') then begin writeln('Банк в который вы вкладывали оказался так себе'); writeln('Он говорил что вы своровали у них, платите штраф'); prom21 := vklad21 * 5; PM1 := PM1 - prom21; writeln('у ', PN1, ' осталось ', PM1, '$'); end; end; if poz2 = 43 then begin if (otv32 = 'Да') or (otv32='да') or (otv32='lf') or (otv32='Lf') then begin writeln('Банк в который вы вкладывали оказался так себе'); writeln('Он говорил что вы своровали у них, платите штраф'); prom22 := vklad22 * 5; PM2 := PM2 - prom22; writeln('у ', PN2, ' осталось ', PM2, '$'); end; end; if poz3 = 43 then begin if (otv33 = 'Да') or (otv33='да') or (otv33='lf') or (otv33='Lf') then begin writeln('Банк в который вы вкладывали оказался так себе'); writeln('Он говорил что вы своровали у них, платите штраф'); prom23 := vklad23 * 5; PM3 := PM3 - prom23; writeln('у ', PN3, ' осталось ', PM3, '$'); end; end; if poz4 = 43 then begin if (otv34 = 'Да') or (otv34='да') or (otv34='lf') or (otv34='Lf') then begin writeln('Банк в который вы вкладывали оказался так себе'); writeln('Он говорил что вы своровали у них, платите штраф'); prom24 := vklad24 * 5; PM4 := PM4 - prom24; writeln('у ', PN4, ' осталось ', PM4, '$'); end; end; if poz1=158 then begin writeln('Игроку ',PN1,' пришло смс'); writeln('В нем говорилось что счёт пополнен на 5000$'); PM1:=PM1+5000; Writeln('У игрока ',PN1,' Стало ',PM1,'$'); end; if poz2=158 then begin writeln('Игроку ',PN2,' пришло смс'); writeln('В нем говорилось что счёт пополнен на 5000$'); PM2:=PM2+5000; Writeln('У игрока ',PN2,' Стало ',PM2,'$'); end; if poz3=158 then begin writeln('Игроку ',PN3,' пришло смс'); writeln('В нем говорилось что счёт пополнен на 5000$'); PM3:=PM3+5000; Writeln('У игрока ',PN3,' Стало ',PM3,'$'); end; if poz4=158 then begin writeln('Игроку ',PN4,' пришло смс'); writeln('В нем говорилось что счёт пополнен на 5000$'); PM4:=PM4+5000; Writeln('У игрока ',PN4,' Стало ',PM4,'$'); end; if poz1 >= endk then begin Writeln(PN1, ' победил', oka1, '!'); break end; if poz2 >= endk then begin Writeln(PN2, ' победил', oka2, '!'); break end; if poz3 >= endk then begin Writeln(PN3, ' победил', oka3, '!'); break end; if poz4 >= endk then begin Writeln(PN4, ' победил', oka4, '!'); break end; if proig1 = 1 then begin writeln(PN1, ' проиграл, так как у него кончились деньги'); end; if proig2 = 1 then begin writeln(PN2, ' проиграл, так как у него кончились деньги'); end; if a = 3 then begin if proig3 = 1 then begin writeln(PN3, ' проиграл, так как у него кончились деньги'); end; end; if a = 4 then begin if proig3 = 1 then begin writeln(PN3, ' проиграл, так как у него кончились деньги'); end; if proig4 = 1 then begin writeln(PN4, ' проиграл, так как у него кончились деньги'); end; end; end; Writeln('Статистика:'); writeln('В игре сделано ', xod1, ' ходов'); writeln('Денег у 1 игрока ', PM1); writeln('Денег у 2 игрока ', PM2); writeln('Денег у 3 игрока ', PM3); writeln('Денег у 4 игрока ', PM3); writeln('Игрок 1 дошёл до клетки ', poz1); writeln('Игрок 2 дошёл до клетки ', poz2); writeln('Игрок 3 дошёл до клетки ', poz3); writeln('Игрок 4 дошёл до клетки ', poz4); vseg := poz1 + poz2 + poz3 + poz4; writeln('Все игроки прошли ', vseg, ' клеток'); sleep(50000); read(PN1); end.