aboutsummaryrefslogtreecommitdiff
path: root/example
diff options
context:
space:
mode:
authorAndrea Orru <andrea@orru.io>2018-04-11 00:33:19 -0700
committerAndrea Orru <andrea@orru.io>2018-04-11 00:33:19 -0700
commit135a335ce12a33666e44cb13e0be4bb893877565 (patch)
tree23b10bed3d36e3fb244c6a2e5d5765d8b7a71fb5 /example
parentb01c5a95c468650f143e0ae96f6c3865852fdcda (diff)
parentf43711e5fbbedafa1c28c933fdca0949427c77cd (diff)
downloadzig-135a335ce12a33666e44cb13e0be4bb893877565.tar.gz
zig-135a335ce12a33666e44cb13e0be4bb893877565.zip
Merge branch 'master' into zen_stdlib
Diffstat (limited to 'example')
-rw-r--r--example/guess_number/main.zig22
1 files changed, 11 insertions, 11 deletions
diff --git a/example/guess_number/main.zig b/example/guess_number/main.zig
index d6a7b94b6c..7178c5274a 100644
--- a/example/guess_number/main.zig
+++ b/example/guess_number/main.zig
@@ -2,7 +2,6 @@ const builtin = @import("builtin");
const std = @import("std");
const io = std.io;
const fmt = std.fmt;
-const Rand = std.rand.Rand;
const os = std.os;
pub fn main() !void {
@@ -10,30 +9,31 @@ pub fn main() !void {
var stdout_file_stream = io.FileOutStream.init(&stdout_file);
const stdout = &stdout_file_stream.stream;
- var stdin_file = try io.getStdIn();
-
try stdout.print("Welcome to the Guess Number Game in Zig.\n");
- var seed_bytes: [@sizeOf(usize)]u8 = undefined;
+ var seed_bytes: [@sizeOf(u64)]u8 = undefined;
os.getRandomBytes(seed_bytes[0..]) catch |err| {
std.debug.warn("unable to seed random number generator: {}", err);
return err;
};
- const seed = std.mem.readInt(seed_bytes, usize, builtin.Endian.Big);
- var rand = Rand.init(seed);
+ const seed = std.mem.readInt(seed_bytes, u64, builtin.Endian.Big);
+ var prng = std.rand.DefaultPrng.init(seed);
- const answer = rand.range(u8, 0, 100) + 1;
+ const answer = prng.random.range(u8, 0, 100) + 1;
while (true) {
try stdout.print("\nGuess a number between 1 and 100: ");
var line_buf : [20]u8 = undefined;
- const line_len = stdin_file.read(line_buf[0..]) catch |err| {
- try stdout.print("Unable to read from stdin: {}\n", @errorName(err));
- return err;
+ const line_len = io.readLine(line_buf[0..]) catch |err| switch (err) {
+ error.InputTooLong => {
+ try stdout.print("Input too long.\n");
+ continue;
+ },
+ error.EndOfFile, error.StdInUnavailable => return err,
};
- const guess = fmt.parseUnsigned(u8, line_buf[0..line_len - 1], 10) catch {
+ const guess = fmt.parseUnsigned(u8, line_buf[0..line_len], 10) catch {
try stdout.print("Invalid number.\n");
continue;
};