> 1 <

Автор Сообщение

filimon

Members


Статус

9 сообщений

Где: Russia
Род занятий:
Возраст:

#6551   2012-09-25 01:26 GMT+3 часа(ов)      
Здравствуйте!
Вопрос такой. Как в Лиспе реализован рандом? Допустим, я хочу смоделировать тасовку колоды карт. Я, думаю, стоит представить её как список из 36-ти элементов, каждый из которых будет списком из 2-ух элементов (масть и номинал). Каким образом заставить Лисп рандомно менять местами элементы в списке?

Ну, и, если не затруднит, то посоветуйте какое-нибудь более эффективное решение для представления колоды карт. Просто пока ещё плоховато в таких нюансах ориентируюсь.
Когда учил Си, писал программку, моделирующую расклад карточного пасьянса. Теперь вот взялся всё-таки за Лисп и хочу начать с того, чтобы перенести на этот язык тот код, который писал на Си.

З.Ы: Карты нужно будет сравнивать отдельно по мастям и по номиналам, поэтому каждый элемент списка мне представляется как список их двух элементов. Если есть какое-то более разумное и эффективное решение, я буду ему очень рад. Но всё же в первую очередь меня интересует именно рандом.

Заранее признателен!

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#6621   2012-09-25 16:17 GMT+3 часа(ов)      
Цитата
Как в Лиспе реализован рандом?
Зависит от выбранной реализации Лиспа.
Цитата
Каким образом заставить Лисп рандомно менять местами элементы в списке?
Попробуйте реализовать алгоритм самостоятельно. Когда будет код, тогда и задавайте вопросы.

filimon

Members


Статус

9 сообщений

Где: Russia
Род занятий:
Возраст:

#6623   2012-09-25 20:58 GMT+3 часа(ов)      
1. Реализация Лиспа - SBCL.

2. Так ведь я же и писал в первом посте, что алгоритм уже есть (уже есть готовый код на Си), и его нужно перенести на Лисп. Мне вообщем-то всё понятно, что и за чем следует. Нужно лишь уточнить некоторые синтаксические формальности, плюс я просил подсказать какое-то решение для представления колоды карт, которое более эффективно и разумно в рамках Лиспа. В Си - это просто массив структур, а в Лиспе, может, есть какое-то решение, которое мне и в голову сейчас прийти не может в силу отсутствия опыта. Потому я спросил.

Цитата
Попробуйте реализовать алгоритм самостоятельно. Когда будет код, тогда и задавайте вопросы.

Выложить код на Си? И кто будет в нём копаться? Или Вы хотели, чтобы я выложил код на Лиспе? Но для того, чтобы написать этот код, я и задал тут несколько вопросов. Если бы код уже был переписан мной на Лисп, я бы о таких вещах тут не спрашивал.

З.Ы: Если что, то вот тот самый код на Си ---> http://codepad.org/jPfvnGQ9
Правда, вряд ли это тут нужно. По-моему мои вопросы итак были вполне понятны, и разбирать весь алгоритм нет никакого смысла.

отредактировал(а) filimon: 2012-09-25 23:32 GMT+3 часа(ов)

misha

Moderators


Статус

1275 сообщений
http://racket-lang.org/
Где: Yemen
Род занятий:
Возраст:

#6633   2012-10-03 13:43 GMT+3 часа(ов)      
Цитата
Если что, то вот тот самый код на Си ---> http://codepad.org/jPfvnGQ9
Правда, вряд ли это тут нужно. По-моему мои вопросы итак были вполне понятны, и разбирать весь алгоритм нет никакого смысла.
Ваш алгоритм изначально рассчитан на массив, только вот вместо структуры можно использовать cons. Конечно, вы можете попробовать заменить массив на список, но я бы этого не стал делать.
> 1 <


Онлайн :

0 пользователь(ей), 29 гость(ей) :




Реклама на сайте: