فهرست منبع

add Rust lang :heart:

Ethosa 3 سال پیش
والد
کامیت
40f13eb131

+ 8 - 0
Languages/Rust/guessing_game/Cargo.toml

@@ -0,0 +1,8 @@
+[package]
+name = "guessing_game"
+version = "0.1.0"
+edition = "2018"
+authors = ["Ethosa"]
+
+[dependencies]
+rand = "0.8.3"

+ 42 - 0
Languages/Rust/guessing_game/src/guess.rs

@@ -0,0 +1,42 @@
+use rand::Rng;
+use rand::thread_rng;
+
+
+pub struct Guess {
+    answer: i32
+}
+
+
+pub fn build_guess() -> Guess{
+    Guess{answer: thread_rng().gen_range(1..11)}
+}
+
+impl Guess {
+    pub fn check(&self, num: i32) -> bool {
+        match cmp(self.answer, num) {
+            Ordering::Equal => true,
+            _ => false
+        }
+    }
+
+    pub fn regen(&mut self) {
+        self.answer = thread_rng().gen_range(1..11);
+    }
+}
+
+
+enum Ordering {
+    Less,
+    Equal,
+    Greater
+}
+
+fn cmp(n1: i32, n2: i32) -> Ordering {
+    if n1 > n2 {
+        Ordering::Less
+    } else if n1 < n2 {
+        Ordering::Greater
+    } else {
+        Ordering::Equal
+    }
+}

+ 21 - 0
Languages/Rust/guessing_game/src/main.rs

@@ -0,0 +1,21 @@
+// Author: Ethosa
+mod guess;
+
+
+fn main() {
+    let mut myguess = guess::build_guess();
+
+    loop {
+        println!("Try to guess my number >.<");
+
+        let mut readed: String = String::new();
+
+        std::io::stdin().read_line(&mut readed).expect("Failed read line");
+
+        let answer: i32 = readed.trim().parse().expect("Enter a number!");
+
+        println!("{}", if myguess.check(answer) {"Great! You won ^^"} else {"You lose ..."});
+
+        myguess.regen();
+    }
+}

BIN
Languages/Rust/hellow_world/main.pdb


+ 19 - 0
Languages/Rust/hellow_world/main.rs

@@ -0,0 +1,19 @@
+fn main() {
+    let hw = String::from("Hello, world!");
+
+    println!("{}", hw);
+
+    {
+        let mut counter = 0;
+
+        loop {
+            if counter == hw.len() {
+                print!("\n");
+                break;
+            }
+
+            print!("{}", hw.chars().nth(counter).unwrap());
+            counter += 1;
+         } 
+    }
+}