Compare commits

..

No commits in common. "master" and "v0.1.1" have entirely different histories.

2 changed files with 18 additions and 21 deletions

View file

@ -33,21 +33,20 @@ fn main() {
Guessing game Guessing game
```rust ```rust
use std::cmp::Ordering;
use simple_std::{prompt, random_int_range}; use simple_std::{prompt, random_int_range};
fn main() { fn main() {
let number = random_int_range(0..100); let number = random_int_range(0..100);
loop { loop {
let input = prompt("Guess: ").parse::<i32>().expect("not a number"); let input = prompt("Guess: ").parse::<i32>().expect("not a number");
match input.cmp(&number) { if input < number {
Ordering::Less => println!("Too Small"), println!("Higher");
Ordering::Greater => println!("Too Big"), } else if input > number {
Ordering::Equal => { println!("Lower");
println!("You win!"); } else {
println!("Correct!");
break; break;
} }
} }
} }
}
``` ```

View file

@ -1,7 +1,6 @@
//! //!
//! # Example: guessing game //! # Example: guessing game
//! ``` //! ```
//! use std::cmp::Ordering;
//! use simple_std::{prompt, random_int_range}; //! use simple_std::{prompt, random_int_range};
//! //!
//! let number = random_int_range(0..100); //! let number = random_int_range(0..100);
@ -11,18 +10,17 @@
//!# random_int_range(0..100).to_string() //!# random_int_range(0..100).to_string()
//!# } //!# }
//! let input = prompt("guess: ").parse::<i32>().expect("not a number"); //! let input = prompt("guess: ").parse::<i32>().expect("not a number");
//! match input.cmp(&number) { //! if input < number {
//! Ordering::Less => println!("Too Small"), //! println!("Higher");
//! Ordering::Greater => println!("Too Big"), //! } else if input > number {
//! Ordering::Equal => { //! println!("Lower");
//! println!("You win!"); //! } else {
//! println!("Correct!");
//! break; //! break;
//! } //! }
//! } //! }
//! }
//! ``` //! ```
pub use io::{input, prompt}; pub use io::{input, prompt};
pub use random::{random_float, random_int_range}; pub use random::{random_float, random_int_range};
@ -92,9 +90,9 @@ mod random {
/// ///
/// # Why is this not in std? /// # Why is this not in std?
/// ///
/// Rust aims to be correct, that's why its major random number library is cryptographically secure, /// Rust aims to be correct, that's why it's major random number library is cryptographically secure,
/// meaning its randomness can't easily be guessed. And cryptographically secure random number generation /// meaning it's randomness can't easily be guessed. And cryptographically secure random number generation
/// is a big task, that's why it has its own crate. /// is a big task, that's why it has it's own crate.
pub fn random_float() -> f64 { pub fn random_float() -> f64 {
((random_u64() >> 11) as f64) / ((1u64 << 53) as f64) ((random_u64() >> 11) as f64) / ((1u64 << 53) as f64)
} }
@ -123,7 +121,7 @@ mod random {
range.start + ((random_u64() as i32).abs() % difference) range.start + ((random_u64() as i32).abs() % difference)
} }
/// generates a pseudo-random u64 /// generates a pseudo-random u32
fn random_u64() -> u64 { fn random_u64() -> u64 {
use std::sync::atomic::{AtomicU64, Ordering}; use std::sync::atomic::{AtomicU64, Ordering};