![]() |
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!
![]() |
Anastacia Adesso |
![]() ![]()
Сообщение
#1
|
![]() Пионер ![]() ![]() Группа: Пользователи Сообщений: 92 Пол: Мужской Реальное имя: Stanislav Репутация: ![]() ![]() ![]() |
И вот ещё такой вопрос.
Есть программа. Суть-Пасьянс Free Cell. Задача- всего лишь раскинуть карты перед началом игры. Хмм эта всего лишь выдаёт карты (постоянно одинаковые), попросту записано в теле программы, что где стоит. А как можно написать, чтоб всегда всё было разное? То есть чтоб были реально только, наверное в массиве, карты. Рандомизировать.. Но, чтоб не было повторов карт.. Я ![]() ![]() -------------------- Ben sensiz yaşayamam
|
![]() ![]() |
volvo |
![]()
Сообщение
#2
|
Гость ![]() |
Ты знаешь, я бы на твоем месте сделал что-то вот такого типа все-таки:
uses crt;
var
cards: array[1 .. 52] of record
z, m: byte;
end;
i,j: integer;
procedure pech1(i:integer);
begin
case i of
2..10:write(i:5);
11:write(' J');
12:write(' Q');
13:write(' K');
14:write(' A');
end;
end;
procedure pech2(j:integer);
begin
case j of
1:write(chr(3));
2:write(chr(4));
3:write(chr(5));
4:write(chr(6));
end;
end;
procedure pech(i,j:integer);
begin
pech1(i);
pech2(j);
end;
var
X: byte;
S: set of byte;
begin
clrscr;
for i := 1 to 52 do
with cards[i] do begin
z := (pred(i) mod 13) + 2;
m := (pred(i) div 13) + 1;
end;
s := [];
for i := 1 to 52 do begin
repeat
X := random(52) + 1;
until not (X in S);
s := S + [X];
pech(cards[X].z, cards[X].m);
if i mod 4 = 0 then writeln;
end;
end.
|
![]() ![]() |
![]() |
Текстовая версия | 29.07.2025 5:18 |