OK, I was using Lanterna as well, based on Steve Losh's "Caves of Clojure"
series.

On Tue, Nov 4, 2014 at 6:53 PM, Atamert Ölçgen <mu...@muhuk.com> wrote:

> clojure-lanterna is pretty cool.
>
> https://github.com/sjl/clojure-lanterna
>
> I'm interested in hearing about alternatives as well.
>
>
> On Wed, Nov 5, 2014 at 4:09 AM, blake <dsblakewat...@gmail.com> wrote:
>
>> Pardon my interruption: What are you using for screen output for your
>> roguelike?
>>
>> On Tue, Oct 28, 2014 at 12:08 PM, Isaac Karth <isaacka...@gmail.com>
>> wrote:
>>
>>> I've been working on some projects (roguelikes, story-generators) that
>>> often have a reason to have a random outcome for things like procedurally
>>> generating a map. Ideally, they would be deterministically psuduorandom, so
>>> that I can generate the same results from the same seed. The part I'm
>>> having trouble with is figuring out what method to use to implement this in
>>> a functional way.
>>>
>>> The naive approach that first occurred to me was to pass a PRNG and seed
>>> value into each function. That would certainly keep the functions
>>> referentially transparent. But it would also require either rewriting a
>>> bunch of functions that don't directly use the randomness themselves or
>>> adding the RNG as part of the map that's already being passed.
>>>
>>> Plus, the seed should probably vary (deterministically) between calls to
>>> the subfunctions. It's not too useful if all the rooms on a map have the
>>> same type because they all pulled their die roll from the same-nth result
>>> of the exact same seed. Maybe the seed could be created from the contents
>>> of the vector or a UUID of a map object or something?
>>>
>>> The other suggestion I've run across is to rebind something like
>>> clojure.data.generators/*rnd* for each high-level procedural generation
>>> call. I think this requires the generation to be single threaded and
>>> otherwise deterministic. At the moment I don't feel like I know enough
>>> about how things work under the hood to say if this a good idea or not.
>>>
>>> I've poked around at the bigml.sampling and clojure.data.generators
>>> libraries, which look useful for dealing with some of this, but I haven't
>>> come across anything that directly addresses what kind of architecture to
>>> use for deterministic randomness. This may be my inexperience. I feel like
>>> I may be a bit too close to the problem, and I can't quite see what the
>>> idiomatic answer is. Re-read SICP? Implement some kind of monad? Just bite
>>> the bullet and pass the RNG+seed? Find the secret pure functional library
>>> everyone is using for repeatable stochastic simulations?
>>>
>>> Does anyone have any advice on this? Or prior experience with approaches
>>> that work? What are some best practices for approaching deterministic
>>> simulations in an idiomatic, functional way?
>>>
>>> --
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To post to this group, send email to clojure@googlegroups.com
>>> Note that posts from new members are moderated - please be patient with
>>> your first post.
>>> To unsubscribe from this group, send email to
>>> clojure+unsubscr...@googlegroups.com
>>> For more options, visit this group at
>>> http://groups.google.com/group/clojure?hl=en
>>> ---
>>> You received this message because you are subscribed to the Google
>>> Groups "Clojure" group.
>>> To unsubscribe from this group and stop receiving emails from it, send
>>> an email to clojure+unsubscr...@googlegroups.com.
>>> For more options, visit https://groups.google.com/d/optout.
>>>
>>
>>  --
>> You received this message because you are subscribed to the Google
>> Groups "Clojure" group.
>> To post to this group, send email to clojure@googlegroups.com
>> Note that posts from new members are moderated - please be patient with
>> your first post.
>> To unsubscribe from this group, send email to
>> clojure+unsubscr...@googlegroups.com
>> For more options, visit this group at
>> http://groups.google.com/group/clojure?hl=en
>> ---
>> You received this message because you are subscribed to the Google Groups
>> "Clojure" group.
>> To unsubscribe from this group and stop receiving emails from it, send an
>> email to clojure+unsubscr...@googlegroups.com.
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>
>
> --
> Kind Regards,
> Atamert Ölçgen
>
> -+-
> --+
> +++
>
> www.muhuk.com
>
> --
> You received this message because you are subscribed to the Google
> Groups "Clojure" group.
> To post to this group, send email to clojure@googlegroups.com
> Note that posts from new members are moderated - please be patient with
> your first post.
> To unsubscribe from this group, send email to
> clojure+unsubscr...@googlegroups.com
> For more options, visit this group at
> http://groups.google.com/group/clojure?hl=en
> ---
> You received this message because you are subscribed to the Google Groups
> "Clojure" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to clojure+unsubscr...@googlegroups.com.
> For more options, visit https://groups.google.com/d/optout.
>

-- 
You received this message because you are subscribed to the Google
Groups "Clojure" group.
To post to this group, send email to clojure@googlegroups.com
Note that posts from new members are moderated - please be patient with your 
first post.
To unsubscribe from this group, send email to
clojure+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"Clojure" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to clojure+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to