Tag Beginner
Tìm kiếm bài viết trong Tag Beginner
[Imperative Programming + C] Bài 19 - Simplicity DSA List (tiếp theo)
Câu hỏi thắc mắc mới về việc các ngôn ngữ Functional sử dụng List làm cấu trúc chủ đạo để lưu trữ tập giá trị có phần hơi lạc đề so với dự định ban đầu mà mình bắt đầu cái mini project này. Tuy nhiên
0 0 19
[Functional Programming + Elm] Bài 5 - Monad & Monoid
Tổng kết từ bài viết trước đó thì chúng ta mới có thêm các công cụ là: class Functor để triển khai hàm điều khiển map cho một kiểu dữ liệu bất kỳ bao gồm cả các kiểu primitive và các kiểu có cấu trúc,
0 0 22
[Functional Programming + Elm] Bài 4 - Functor & Applicative
Đối với bất kỳ ngôn ngữ lập trình nào khi chúng ta đã nắm bắt được các kiểu dữ liệu cơ bản và cú pháp hỗ trợ khai báo trừu tượng Abstraction để tạo ràng buộc khi thiết kế tổng quan phần mềm, thì bước
0 0 19
[Functional Programming + Elm] Bài 3 - Type Variable & Type Class
Trong bài viết này, chúng ta sẽ nói về các khái niệm liên quan tới định kiểu dữ liệu Type. Những khái niệm mới mà chúng ta sẽ đề cập ở đây không hẳn thuộc về Functional Programming mà là những khái ni
0 0 19
[Functional Programming + Elm] Bài 2 - Higher-Order Function & Currying Function
Hãy khoan chưa vội nói tới những khái niệm mới mà chúng ta đã dự định trong bài viết này. Phần mở đầu ở đây chúng ta sẽ nói tới một vài yếu tố liên quan tới các khái niệm ở bài trước.
0 0 29
[Functional Programming + Elm] Bài 1 - Functional Aspects
Song song với Procedural Programming, và ở cùng cấp độ quan sát về việc kiến trúc phần mềm từ các sub-program đó là mô hình Lập Trình Hàm Functional Programming, cũng đã được đề cập trước đó trong một
0 0 28
[Functional Programming + Haskell] Bài 1 - Giới Thiệu Ngôn Ngữ Haskell
Mô hình lập trình hàm Functional Programming và các ngôn ngữ hỗ trợ xuất hiện từ rất sớm ngay khi khái niệm Declarative xuất hiện trong lĩnh vực lập trình phần mềm nói chung. Tuy nhiên do mang nặng cá
0 0 24
[Procedural Programming + Ada] Bài 25 - Console Tic-Tac-Toe App (tiếp theo)
Bây giờ chúng ta sẽ bổ sung thêm logic xử lý bước đi cuối cùng cho Computer;Và với thời lượng trung bình của các bài viết mà mình đang áp dụng thì rất có thể chúng ta sẽ cần thêm vài bài viết nữa để h
0 0 18
[Procedural Programming + Ada] Bài 26 - Console Tic-Tac-Toe App (tiếp theo)
Chúng ta đang muốn điều hướng User_Move ở bước đi tiếp theo tránh khỏi các bước tiên đoán được là sẽ tạo ra Double_Threat. Vì vậy nên sau khi kiểm tra thấy có nhiều Double_Threat từ User thì lúc này c
0 0 16
[Procedural Programming + Ada] Bài 27 - Console Tic-Tac-Toe App (kết thúc)
Và đây là code hoàn thiện của Redirect_User_Concern; giúp bổ sung logic điều hướng bước đi tiếp theo mà User phải tạm dừng ý định tạo Double_Threat để ngăn chặn Computer thắng sớm hơn. Bây giờ chúng t
0 0 14
[Procedural Programming + Ada] Bài 22 - Console Tic-Tac-Toe App (tiếp theo)
Trong số các thủ tục được gọi ở lượt di chuyển của Computer thì chúng ta chỉ còn Get_Computer_Move; và Update_Computer_Set; là các thủ tục mới. Tuy nhiên Update_Computer_Set; có logic tương đồng với U
0 0 21
[Procedural Programming + Ada] Bài 23 - Console Tic-Tac-Toe App (tiếp theo)
Để bổ sung logic ưu tiên chặn bước di chuyển thắng cuộc cho Computer thì chúng ta có thể tư duy ở cấp độ Imperative đó là sử dụng cấu trúc lệnh rẽ nhánh để lựa chọn giữa bước đi chặn USER_WIN và bước
0 0 20
[Procedural Programming + Ada] Bài 24 - Console Tic-Tac-Toe App (tiếp theo)
Như vậy là để Computer có thể cân bằng kết quả ván cờ thì chúng ta cần bổ sung thêm logic chặn bước đi tạo cơ hội kép của User. Trong trường hợp này thì procedure mới sẽ có mức độ ưu tiên thấp hơn so
0 0 26
[Procedural Programming + Ada] Bài 21 - Console Tic-Tac-Toe App (tiếp theo)
Thủ tục cuối cùng trong lượt di chuyển của User là cập nhật trạng thái của ván cờ Update_Match_Status;. Thủ tục này cũng sẽ được sử dụng lại ở lượt di chuyển của Computer giống như Put_Chess_Board;.
0 0 18
[Procedural Programming + Ada] Bài 20 - Console Tic-Tac-Toe App (tiếp theo)
Thao tác cập nhật User_Set sau khi người dùng nhập vào bước đi muốn thực hiện trên bàn cờ chỉ đơn giản là chúng ta sẽ di chuyển giá trị User_Move từ mảng Common_Set tới vị trí tương ứng trong mảng Use
0 0 16
[Procedural Programming + Ada] Bài 19 - Console Tic-Tac-Toe App (tiếp theo)
Bộ đôi thủ tục tiếp theo là Put_Chess_Board; và Get_User_move; lại rất tương đồng với đoạn xử lý Put_Symbol_Menu; và Get (User_Symbol); trước đó. Khởi đầu mỗi ván cờ, chúng ta sẽ có một bảng Tic-Tac-T
0 0 19
[Procedural Programming + Ada] Bài 17 - Console Tic-Tac-Toe App (tiếp theo)
Chúng ta sẽ khởi đầu code thật tự nhiên với procedure Main và các comment về những bước cần thực hiện trong code. Scan lựa chọn nhập liệu của User và lưu lại trạng thái User_Symbol.
0 0 19
[Procedural Programming + Ada] Bài 18 - Console Tic-Tac-Toe App (tiếp theo)
Những dữ liệu trạng thái mà chúng ta cần quản lý trong phần model bao gồm các tập giá trị thể hiện các bước đi của User và Computer, và các ô trống còn lại trên bảng. Thêm vào đó, một loại dữ liệu trạ
0 0 27
[Procedural Programming + Ada] Bài 16 - Console TicTacToe App (mở đầu)
Như vậy là chúng ta đã điểm qua các công cụ chính mà Ada cung cấp ở cấp độ cú pháp của một ngôn ngữ đặt nền móng trọng tâm trên Procedural Programming. Và so với C thì thư viện tiêu chuẩn của Ada cũng
0 0 13
[Procedural Programming + Ada] Bài 15 - Pre-defined Libraries & Package Manager
Có một sự thật khá thú vị về Ada - đó là không có bất kỳ ai hay bất kỳ tổ chức nào thực sự sở hữu ngôn ngữ này. Và tổ chức DoD của Mỹ thì lại chỉ nhìn nhận Ada như một bản cấu hình tiêu chuẩn để xây d
0 0 17