[Rust Book] 2. Lập trình game đoán số

Lập trình game đoán số

Chúng ta hãy cùng làm quen với Rust kỹ hơn thông qua một project! Chương này sẽ giới thiệu một vài khái niệm phổ biến trong Rust bằng cách chỉ cho bạn cách sử dụng chúng trong những chương trình thực tế. Bạn sẽ học về let, match, các phương thức (method), các hàm liên kết (associated function), viêc sử dụng các crate bên ngoài và nhiều thứ khác nữa! Những chương tiếp theo sẽ đi sâu chi tiết hơn. Trong chương này, bạn sẽ chỉ thực hành những điều cơ bản.

Chúng ta sẽ làm một chương trình cơ bản cho người mới: một trò chơi đoán số. Cách nó hoạt động sẽ là: chương trình sẽ sinh ra một số nguyên ngẫu nhiên trong khoảng từ 1 đến 100. Người chơi đoán một con số và nhập vào. Sau khi được nhập, chương trình sẽ chỉ ra số đã đoán là quá thấp hay quá cao. Nếu đoán chính xác, trò chơi sẽ in ra một tin nhắn chúc mừng và thoát.

[Đọc tiếp]

[Rust Book] 1.3. Bắt đầu với Rust - Hello, Cargo

Hello, Cargo!

Cargo là hệ thống build và quản lý gói của Rust. Hầu hết các Rustacean sử dụng công cụ này để quản lý project Rust của họ vì Cargo xử lý rất nhiều tác vụ cho bạn, như build code, tải thư viện mà code của bạn phụ thuộc vào và build những thư viện đó. (Chúng ta gọi những thư viện mà code của bạn cần là những dependency.)

Những chương trình Rust đơn giản nhất, như ví dụ bạn vừa viết chẳng hạn, không có dependency nào. Nên nếu chúng ta build project “Hello, world!” với Cargo, nó sẽ chỉ dùng một phần của Cargo để xử lý việc build code của bạn. Khi bạn viết những chương trình phức tạp hơn, bạn sẽ cần thêm các dependency, và nếu bạn bắt đầu một project Cargo, việc thêm dependency sẽ dễ hơn rất nhiều.

[Đọc tiếp]

[Rust Book] 1.2. Bắt đầu với Rust - Hello, World

Hello, World!

Vậy là các bạn đã cài xong Rust, giờ thì thử viết chương trình Rust đầu tiên nào. Cách truyền thống để học một ngôn ngữ mới là viết một chương trình nhỏ để in ra chữ Hello, world! trên màn hình, ở đây chúng ta cũng sẽ làm tương tự!

Chú ý: Cuốn sách này sử dụng dòng lệnh cơ bản. Nhưng Rust không có yêu cầu cụ thể gì về việc chỉnh sửa hay công cụ bạn dùng hay code chạy trên đâu, nên nếu bạn thích bạn có thể dùng IDE thay thế cho dòng lệnh. Có nhiều IDE hỗ trợ Rust; bạn có thể xem chi tiết trong tài liệu của IDE. Hiện nay, Rust team đang tập trung vào việc hỗ trợ IDE, và đang có tiến độ đáng kể!

[Đọc tiếp]

[Rust Book] 1.1. Bắt đầu với Rust - Cài đặt

Cài đặt

Bước đầu tiên là cài đặt Rust. Chúng ta sẽ tải Rust thông qua rustup, một công cụ dòng lệnh dành cho việc quản lý các phiên bản Rust và các công cụ liên quan. Bạn sẽ cần kết nối internet trong quá trình cài.

Chú ý: Nếu không thích sử dụng rustup vì một vài lý do nào đó, bạn có thể tham khảo những cách cài đặt khác.

[Đọc tiếp]

Cấu hình Raspberry Pi 4 thành Wireless Access Point



                                         +- RPi -------+
                                     +---+ 192.168.1.2 |          +- Laptop ----+
                                     |   |     WLAN AP +-)))  (((-+ WLAN Client |
                                     |   | 192.168.3.1 |          | 192.168.3.2 |
                                     |   +-------------+          +-------------+
                 +- Router ----+     |
                 | Firewall    |     |   +- PC#1 ------+
(Internet)---WAN-+ DHCP server +-LAN-+---+ 192.168.1.3 |
                 | 192.168.1.1 |     |   +-------------+
                 +-------------+     |
                                     |   +- PC#2 ------+
                                     +---+ 192.168.1.4 |
                                         +-------------+
[Đọc tiếp]

Tính thời gian thực thi thực sự trong C++

#include <chrono>

int main() {
	std::chrono::time_point <std::chrono::system_clock, std::chrono::duration<double, std::milli>> then = std::chrono::high_resolution_clock::now();;

	// ... do something ...

	std::chrono::time_point <std::chrono::system_clock, std::chrono::duration<double, std::milli>> now = std::chrono::high_resolution_clock::now();;
	double elapseTimeInMS = (now - then).count();

	return 0;
}

Cách viết khác ngắn hơn:

#include <chrono>

using namespace std;

int main() {
	auto then = chrono::high_resolution_clock::now();

	// ... do something ...

	auto now = chrono::high_resolution_clock::now();
	double elapseTimeInMS = chrono::duration<double, milli>(now - then).count();

	return 0;
}
cpp