1_basic/
1_basic.rs

1extern crate dcss_api;
2
3use dcss_api::Webtile;
4
5fn main() {
6    // Connect to DCSS Webtile
7    let mut webtile =
8        Webtile::connect("ws://localhost:8080/socket", 100, "0.32").expect("Failed to connect");
9
10    // Empty message queue;
11    while webtile.get_message().is_some() {}
12
13    // Log in (to a user called "Username", with a password "Password")
14    let gameid = webtile
15        .login_with_credentials("Username", "Password")
16        .expect("Failed to login");
17
18    // Print the game id's that can be started
19    println!("{:?}", gameid);
20
21    // Empty message queue;
22    while webtile.get_message().is_some() {}
23
24    // Start a random game (seed `0`) on 'dcss-0.32', for Minotaur berserker with a mace.
25    webtile
26        .start_game_seeded(&gameid[0], "0", false, "b", "f", "b")
27        .expect("Failed to start game");
28
29    // Print the messages you get upon starting the game (should be processed)
30    while let Some(message) = webtile.get_message() {
31        println!("{:?}", message)
32    }
33
34    // Move up and back
35    webtile.write_key("key_dir_n").expect("Failed to write key");
36    webtile.write_key("key_dir_s").expect("Failed to write key");
37
38    // Print the messages you while moving (should be processed)
39    while let Some(message) = webtile.get_message() {
40        println!("{:?}", message)
41    }
42
43    // Quit game (same as dying)
44    webtile.quit_game().expect("Failed to quit");
45
46    // Print the messages after you quit game
47    while let Some(message) = webtile.get_message() {
48        println!("{:?}", message)
49    }
50
51    // Disconnect from webtile
52    webtile.disconnect().expect("Failed to disconnect");
53}