0 / 0 / 0
Регистрация: 19.04.2015
Сообщений: 20
1

Перетасовка колоды

14.08.2016, 18:47. Показов 1724. Ответов 6
Метки нет (Все метки)

Хочу попробовать написать какой-нибудь пасьянс или карточную игру на PascalABC.NET. Подскажите, пожалуйста, как сделать перетасовку колоды.
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
14.08.2016, 18:47
Ответы с готовыми решениями:

Перетасовка карт в 52 листа
Имитировать перетасовку ново колоды игральных карт в 52 листа многократным приминением операций...

Перетасовка объектов на форме
Здравствуйте! Нужно чтобы при каждом запуске программы, три чекбокса меняли своё положение. Как...

Перетасовка объектов на форме
Здравствуйте! Нужно чтобы при каждом запуске программы, три чекбокса меняли своё положение. Как...

Тест, перетасовка вопросов и самих ответов в вопросах
Здравствуйте, объясните как сделать так, чтобы при запуске теста вопросы меняли свой порядок...

6
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7097 / 4220 / 2734
Регистрация: 22.11.2013
Сообщений: 12,100
Записей в блоге: 1
14.08.2016, 22:19 2
Pascal
1
2
3
4
for j:=0 to 51 do begin
  k:=Random(52);
  t:=card[k]; card[k]:=card[j]; card[j]:=x;
end;
0
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
32245 / 20885 / 8086
Регистрация: 22.10.2011
Сообщений: 36,127
Записей в блоге: 7
15.08.2016, 00:00 3
Pascal
1
2
3
var cards : List<TCard>; // это список карт
var rnd := new System.Random();
cards := cards.OrderBy(item -> rnd.Next).ToList();
0
2509 / 1130 / 582
Регистрация: 07.06.2014
Сообщений: 3,281
15.08.2016, 00:27 4
Лучший ответ Сообщение было отмечено Новичок как решение

Решение

Раздача карт при игре в дурака, количество игроков задается с клавиатуры

Pascal
1
2
3
4
5
6
7
8
9
10
11
 { перемешать виртуальную колоду }
 for i:=1 to N-1 do
  begin
   CardPos := Random(N-i+1)+i;
   if CardPos <> i then  {обменяем местами карты с номером i и CardPos }
   begin 
     temp := cards[i];
     cards[i] := cards[CardPos];
     cards[CardPos] := temp;
   end;
  end;
0
Модератор
Эксперт Pascal/DelphiЭксперт NIX
7097 / 4220 / 2734
Регистрация: 22.11.2013
Сообщений: 12,100
Записей в блоге: 1
15.08.2016, 08:36 5
https://ru.m.wikipedia.org/wik... шера–Йетса
угу, случайное из оставшихся лучше.
1
6 / 6 / 9
Регистрация: 16.04.2015
Сообщений: 121
15.08.2016, 22:23 6
Лучший ответ Сообщение было отмечено Новичок как решение

Решение

DEEPSKY,
Pascal
1
2
3
4
5
6
7
8
begin
 
var a := range(1, 10).ToArray();
print(a);
var b := a.Shuffle();
print(b);
 
end.
0
0 / 0 / 0
Регистрация: 19.04.2015
Сообщений: 20
15.08.2016, 23:15  [ТС] 7
Благодарствую.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.08.2016, 23:15
Помогаю со студенческими работами здесь

Хочу сделать чтоб массив выводил значения в обратном порядке(Перетасовка)
Я хочу чтоб массив выводил последнее значение первым так например: masive=masive но оно...

Перестановка колоды
Вывести на экран все карты колоды, сложенные по возрастанию масть за масть. Требуется разработать...

Из колоды в 52 карты
Из колоды в 52 карты вынимают 3 карты. Найти вероятность, что эти карты будут 7,8,9 ? P(A) =...

Из колоды в 36 карт
Из колоды в 36 карт вынимают 5 карт. найти вероятность: 1) извлечь туз пик 2) извлечь туз 3)...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru