Все его знают
| |
politsa_av | Дата: Пятница, 22 Февраля 2013, 12:15:45 | Сообщение #21 |
Группа: Удаленные
| Уважаемые, кому не трудно, помогите написать прогу на паскале... "Камень ножницы бумага" на четверых. В циклах запуталась.
|
|
| |
Rage | Дата: Пятница, 22 Февраля 2013, 12:35:13 | Сообщение #22 |
Группа: Удаленные
| Цитата (koxacb_anna) кому не трудно Камень, ножницы, бумага, правда, на троих...
|
|
| |
freedom | Дата: Пятница, 22 Февраля 2013, 12:42:51 | Сообщение #23 |
freedom
Группа: Проверенные
Сообщений: 1557
Д.рег: 25 Марта 2007
Статус: Offline
Откуда: Лесосибирск
| koxacb_anna, Код var a: array [1..4] of integer; i,j: integer; begin for i:=1 to 4 do begin a[i]:=random(2); case a[i] of 0:writeln(i,' igrok - камень'); 1:writeln(i,' igrok - ножницы'); 2:writeln(i,' igrok - бумага'); end; end; end;
Осталось определить победителя, честно сказать забыл как играть
Получается если показали одно и тоже либо все разное, то переигрывается?
Сообщение отредактировал freedom - Пятница, 22 Февраля 2013, 12:44:20 |
|
| |
politsa_av | Дата: Пятница, 22 Февраля 2013, 12:50:58 | Сообщение #24 |
Группа: Удаленные
| Маленькое уточнение - данные вводить нужно с клавиатуры. Цитата (freedom) забыл как играть Камень побеждает ножницы. Ножницы побеждают бумагу. Бумага побеждает камень Переигрывают только тогда, когда допустим 2-е показали бумагу, а 2-е ножницы - переигрывают первые. На проигравшего.
Сообщение отредактировал koxacb_anna - Пятница, 22 Февраля 2013, 12:54:05 |
|
| |
politsa_av | Дата: Пятница, 22 Февраля 2013, 12:53:17 | Сообщение #25 |
Группа: Удаленные
| Цитата (Rage) правда, на троих... да да, видела уже это решение. Но на 4-х нужно.
|
|
| |
yorino | Дата: Среда, 27 Февраля 2013, 17:21:37 | Сообщение #26 |
Группа: Удаленные
| Я сделал это!!! )))
Код program www; var rnd: integer; a: array [1..4] of integer; c: array [1..4] of integer; i,j: integer; rez: array[0..3, 0..3] of integer; povtor,kol, pobeditel: integer;
procedure Proverka(); var i,k,n,b: integer; begin k:=0; n:=0; b:=0; for i:=1 to 4 do case a[i] of 0: inc(k); 1: inc(n); 2: inc(b); end;
if (k>0) and (n>0) and (b>0) then povtor:=1 else povtor:=0;
end;
procedure vibor(); var i,j,max: integer; begin for i:=1 to 3 do begin for j:=i+1 to 4 do begin if rez[a[i],a[j]]=a[i] then begin inc(c[i]); end; if rez[a[i],a[j]]=a[j] then begin inc(c[j]); end; end; end;
max:=c[1]; for i:=2 to 4 do if c[i]>max then max:=c[i];
kol:=0; for i:=1 to 4 do begin if c[i]=max then begin inc(kol); pobeditel:=i; end else if povtor<>1 then a[i]:=3; end;
end;
begin rez[0,0]:=0; rez[1,0]:=0; rez[2,0]:=2; rez[3,0]:=0; rez[0,1]:=0; rez[1,1]:=1; rez[2,1]:=1; rez[3,1]:=1; rez[0,2]:=2; rez[1,2]:=1; rez[2,2]:=2; rez[3,2]:=2; rez[0,3]:=0; rez[1,3]:=1; rez[2,3]:=2; rez[3,3]:=-1;
c[1]:=0; c[2]:=0; c[3]:=0; c[4]:=0; povtor:=1; rnd:=0; for i:=1 to 4 do a[i]:=0; kol:=4; randomize;
while (povtor=1) do begin inc(rnd); writeln('Раунд №',rnd,':');
for i:=1 to 4 do begin if a[i]<>3 then a[i]:=random(1000) mod 3; case a[i] of 0: writeln(i,'-й игрок: камень'); 1: writeln(i,'-й игрок: ножницы'); 2: writeln(i,'-й игрок: бумага'); end; end; Proverka(); if povtor<>1 then begin vibor(); if kol<>1 then povtor:=1; end; writeln();
end;
writeln('Победил игрок №', pobeditel);
readln;
end.
Можно впринципе на любое количество раскидать )) только долго делаться будет. Если надо будет объяснить, пиши
|
|
| |
|