Simple node.js library for generate or select random values
Fastest random ID and random string generation for Node.js
This library contains all algorithm implementations like signature verification and protocol entries like address used in Waves.
Generate random numbers from various distributions.
TypeScript definitions for d3-random
Generate simple random keys
URL and cookie safe UIDs
Use the random function in CSS
An alias package for `crypto.randomBytes` in Node.js and/or browsers
Generate a cryptographically strong random string
Unique machine (desktop) id (no admin privileges required).
Random utility functions for ethers.
Core istanbul API for JS code coverage
A Pulumi package to safely use randomness in Pulumi programs.
Source maps support for istanbul
A small implementation of `crypto.getRandomValues` for React Native. This is useful to polyfill for libraries like [uuid](https://www.npmjs.com/package/uuid) that depend on it.
Normalize the creation of cryptographically strong random values.
Provides functions for detecting if the host environment supports the WebCrypto API
Generate a random integer
Statistical routines and probability distributions.
A library used for generating random strings, written in TypeScript and based on Node.
math-random is an isomorphic, drop-in replacement for `Math.random` that uses cryptographically secure random number generation, where available
TypeScript definitions for istanbul-lib-report
Generate random numbers with a seed, useful for reproducible tests
The library uses nokogiri to generate a random subreddit from reddit.com using the random subreddit link. Also includes a bonus file that gives you the top link from that subreddit. Use that by modifying the first line in the lib/subreddit.rb file.
Solves a quirk of rspec --profile in some code bases: result vary with every random spec ordering. This seems to be due to differences in dependency load order, class initialization, and test server startup. This lib runs rspec --profile many times, averaging the results to always give the same (stable) and meaningful result.
This library generates and parses Universally Unique Identifier (UUID), based on OSSP uuid C library. So, libossp-uuid library is pre-required. OSSP uuid (http://www.ossp.org/pkg/lib/uuid/) is a ISO-C:1999 application programming interface (API) for the generation of DCE 1.1, ISO/IEC 11578:1996 and RFC 4122 compliant UUID. It supports DCE 1.1 variant UUIDs of version 1 (time and node based), version 3 (name based, MD5), version 4 (random number based) and version 5 (name based, SHA-1).
This library generates and parses Universally Unique Identifier (UUID), based on OSSP uuid C library. So, libossp-uuid library is pre-required. OSSP uuid (http://www.ossp.org/pkg/lib/uuid/) is a ISO-C:1999 application programming interface (API) for the generation of DCE 1.1, ISO/IEC 11578:1996 and RFC 4122 compliant UUID. It supports DCE 1.1 variant UUIDs of version 1 (time and node based), version 3 (name based, MD5), version 4 (random number based) and version 5 (name based, SHA-1).
Contains make configuration changes since this thing is a bitch to compile correclty. This library generates and parses Universally Unique Identifier (UUID), based on OSSP uuid C library. So, libossp-uuid library is pre-required. OSSP uuid (http://www.ossp.org/pkg/lib/uuid/) is a ISO-C:1999 application programming interface (API) for the generation of DCE 1.1, ISO/IEC 11578:1996 and RFC 4122 compliant UUID. It supports DCE 1.1 variant UUIDs of version 1 (time and node based), version 3 (name based, MD5), version 4 (random number based) and version 5 (name based, SHA-1).
For us humans, it's always easier to remember a pronounceable string, even if it is meaningless, than to remember a long number. Koremutake is a system you can use to translate any number (of course, particularly suited at long numbers) to a sequence of syllables. Typical uses of Koremutake strings are auto-generated user passwords or URLs. This module is based in Leon Brocard's String::Koremutake Perl module, available at http://search.cpan.org/dist/String-Koremutake/lib/String/Koremutake.pm which is, in turn, based upon Shorl (http://shorl.com/koremutake.php). Koremutake is a «way to express any large number as a sequence of syllables», and the general idea is based in Sean B. Palmer's «Memorable Random String» term, http://infomesh.net/2001/07/MeRS/
# StudioGame (Alec) Jogo de terminal em Ruby com **jogadores, dados, tesouros e variações de jogadores** (Clumsy e Berserk), empacotado como gem. > Nome do gem (exemplo): `studio_game_alec` --- ## 🚀 Instalação e execução ### Rodando direto do código-fonte No diretório do projeto: ```bash ruby bin/studio_game ``` Se você não passar um arquivo de jogadores via CLI, o script usa o `players.csv` que fica em `bin/` por padrão. Também funciona passando um CSV na linha de comando: ```bash ruby bin/studio_game my_favorite_players.csv ``` ### Como gem (local) Empacote e instale localmente: ```bash gem build studio_game.gemspec gem install studio_game_alec-<versao>.gem ``` Depois rode: ```bash studio_game ``` > No Windows, o executável será resolvido pelo RubyGems. Se preferir, rode: `ruby bin/studio_game`. --- ## 📁 Estrutura do projeto ``` games/ ├─ bin/ │ ├─ studio_game # script principal (tem shebang) │ └─ players.csv # CSV padrão (nome,vida) ├─ lib/ │ └─ studio_game/ │ ├─ auditable.rb │ ├─ berserk_player.rb │ ├─ clumsy_player.rb │ ├─ die.rb │ ├─ game.rb │ ├─ game_turn.rb │ ├─ loaded_die.rb │ ├─ playable.rb │ ├─ player.rb │ └─ treasure_trove.rb ├─ spec/ │ └─ studio_game/ # specs RSpec ├─ LICENSE ├─ README.md └─ studio_game.gemspec ``` - **Namespace:** todo o código vive dentro do módulo `StudioGame` para evitar colisões. - **bin/studio_game:** script CLI com shebang (`#!/usr/bin/env ruby`). Faz _fallback_ do `$LOAD_PATH` para `lib` quando usado fora da gem. - **lib/studio_game/**: código da biblioteca (classes/módulos). - **spec/**: testes RSpec. --- ## 🧩 Conceitos principais - **Player** (`player.rb`): representa um jogador com `name`, `health`, coleta tesouros e calcula `score` (= `health` + `points`). Inclui o mixin **Playable**. - **Playable** (`playable.rb`): mixin com `w00t`, `blam` e `strong?` (altera/consulta `health` via getters/setters). - **TreasureTrove** (`treasure_trove.rb`): define `Treasure = Struct.new(:name,:points)` e a constante `TREASURES`; possui `.random`. - **Die/LoadedDie** (`die.rb`, `loaded_die.rb`): rolam valores (o carregado favorece 1,1,2,5,6,6). Ambos incluem **Auditable**. - **Auditable** (`auditable.rb`): imprime “Rolled a X (DieClass)” após cada rolagem. - **Game** (`game.rb`): agrega jogadores, carrega CSV, executa rodadas, soma pontos e salva _high scores_. - **GameTurn** (`game_turn.rb`): executa a lógica de um turno para um jogador (rola dado, aplica `blam/w00t/skip` e concede tesouro). - **ClumsyPlayer / BerserkPlayer**: variações de `Player` que modificam comportamento de `w00t` e de coleta de tesouros. --- ## 🧪 Testes Rode todos os testes: ```bash rspec ``` Principais coisas testadas: - Ordenação de jogadores por `score` (usa `<=>` em `Player`). - Cálculo de `points` e `score` (soma de tesouros + vida). - Efeitos de `w00t`/`blam` e força (`strong?`). - Lógica de turno com _stubs_ de dado (`allow_any_instance_of(LoadedDie).to receive(:roll).and_return(n)`). - Comportamentos de `ClumsyPlayer` e `BerserkPlayer`. --- ## 📦 CSVs e caminhos - `bin/studio_game` resolve o CSV padrão assim: ```ruby default_player_file = File.join(File.dirname(__FILE__), 'players.csv') game.load_players(ARGV.shift || default_player_file) ``` - Você pode passar um arquivo `.csv` via CLI como primeiro argumento. Formato do CSV: ``` Moe,100 Larry,60 Curly,125 ``` --- ## 🧾 High Scores Após sair do loop, o jogo grava `high_score.txt` com as entradas ordenadas. Cada linha é formatada por `Game#high_score_entry`: ``` <nome com padding de pontos> <score> ``` --- ## 🛠️ Dicas de desenvolvimento - Use `require 'studio_game/arquivo'` quando a gem estiver instalada. - No script binário, o `begin/rescue LoadError` faz _fallback_ para `$LOAD_PATH` local, útil fora da gem. - Para debugar I/O em testes, o spec redireciona `STDOUT` (`$stdout = StringIO.new`). --- ## 📚 Licença MIT – veja o arquivo `LICENSE`.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.
No description provided.