Chuyển động ném xiên là chuyển động của một vật được ném lên trên cao có vận tốc ban đầu. Như hình ảnh minh hoạ, bóng lúc bắt đầu ném có vận tốc ném Bóng cao và vận tốc ném Bóng xa.
Ném xiên trong thực tế
Trong thực tế, chuyển động của một vật ném xiên được chia thành 2 thành phần: chuyển động theo chiều dọc và chuyển động theo chiều ngang. Tương ứng với 2 phần này, ta có vận tốc của vật theo chiều dọc (kí hiệu là Vy) và vận tốc của vật theo chiều ngang (kí hiệu là Vx). Hình vẽ dưới đây mô tả chuyển động ném xiên của một vật bất kỳ.
Như đã học ở Vật Lý 6, trong thực tế, một vật bất kỳ sẽ chịu tác dụng của trọng lực (lực hút của Trái Đất, hay còn gọi là lực hút trọng trường). Chính nhờ lực này mọi thứ trên Trái đất không bị ở trạng thái lơ lửng. Trong chuyển động ném xiên, lực này đã khiến một vật khi ném xiên: ban đầu sẽ đi lên cao hơn vị trí ném, nhưng dần dần sẽ rơi xuống và chạm đất.
Ngoài ra trong thực tế còn có lực ma sát của không khí hay còn gọi là lực cản của không khí. Khi vật di chuyển trong không khí, lực này chống lại sự chuyển động của vật, làm cho vật đó chuyển động chậm lại.
Mô phỏng vật ném xiên trong bài học “Siêu Robot ném bóng rổ”
Trong bài học “Siêu Robot ném bóng rổ”, ta cũng có các đại lượng gần giống để mô phỏng chuyển động của quả bóng giống như thực tế. Hình ảnh dưới đây là một ví dụ minh họa:
Giải thích ý nghĩa các biến số:
Vx Bóng bây giờ: biểu thị giá trị vận tốc theo phương nằm ngang của bóng ở thời điểm hiện tại
Vy Bóng bây giờ: biểu thị giá trị vận tốc theo phương thẳng đứng của bóng ở thời điểm hiện tại
HỆ SỐ MA SÁT KHÔNG KHÍ (% VẬN TỐC): là hằng số có giá trị bằng -0.01. Đây được gọi là hệ số ma sát của không khí. Khi kết hợp với phép nhân cùng Vx/Vy Bóng bây giờ trong khối lệnh, giá trị này là lượng thay đổi của vận tốc do lực ma sát không khí gây ra
GIA TỐC TRỌNG LỰC: là hằng số có giá trị bằng -1. Biến số này trong khối lệnh có ý nghĩa biểu thị rằng, do lực hút của Trái Đất mà vận tốc theo chiều dọc (Vy Bóng bây giờ) bị giảm đi một lượng là 1.
Lưu ý: Công thức sử dụng trong bài viết và trong dự án Siêu Robot ném bóng rổ đã được đơn giản hóa so với công thức tính toán trong thực tế. Các công thức Vật Lý chính xác về ném xiên, trọng lực, lực ma sát sẽ được giới thiệu trong chương trình học THCS-THPT.
— — —
STEAM for Vietnam Foundation là tổ chức phi lợi nhuận 501(c)(3) được thành lập tại Hoa Kỳ với sứ mệnh thúc đẩy các hoạt động liên quan tới giáo dục STEAM (Science — Khoa học, Technology — Công nghệ, Engineering — Kỹ thuật, Arts — Nghệ thuật, Mathematics — Toán học) tại Việt nam. STEAM for Vietnam được thành lập và vận hành bởi đội ngũ tình nguyện viên là du học sinh và chuyên gia người Việt trên khắp thế giới.
Đây là thư viện mã nguồn mở trên ngôn ngữ Python dùng để lập trình video games. PyGame chứa đầy đủ các công cụ hỗ trợ lập trình game như đồ hoạt, hoạt hình, âm thanh, và sự kiện điều khiển.
Đồ hoạ và hoạt hình là hai phần không thể thiếu trong video games. PyGame giúp lập trình có thể tạo các nhân vật với hình ảnh. PyGame cũng đồng thời cung cấp các công cụ tích hợp hiệu ứng âm thanh cũng như nhạc nền cho game. Cuối cùng, các sự kiện điều khiển từ bàn phím, chuột cũng được được PyGame hỗ trợ một cách hiệu quả nhất
2. Một số game được xây dựng bằng Python
Rất nhiều games với thao tác phức tạp được lập trình bằng Python:
Bước 2: Hiểu cách game vận hành – Vòng lặp game (game loop)
Vòng lặp giống như “quả tim” của tất cả các video games. Khi một game bắt đầu, một vòng lặp sẽ được khởi động và sẽ chạy xuyên suốt quá trình chơi game cho đến khi người chơi thoát game.
Trong mỗi vòng lặp, sẽ có 3 sự kiện chính xảy ra, đó là dữ liệu từ người chơi, cập nhật các thông số, và vẽ các nhân vật ra màn hình.
a. Dữ liệu từ người chơi (process input)
Đây là việc mà mỗi video game cần phải làm trong mỗi vòng lặp. Đó là lấy các sự kiện mà người chơi tác động vào trò chơi như nhấn phím space hay click chuột trái.
VD: Đối với game T-Rex Jump này, thao tác của người dùng sẽ là nhấn phím space.
b. Cập nhật các thông số trong game (Update Game)
Đây là bước tiếp theo trong một vòng lặp là cập nhật các thông số của game như toạ độ của nhân vật, tốc độ của nhân vật, điểm số người chơi đang đạt được, …
VD: Trong game T-Rex Jump, toạ độ của T-Rex sẽ được thay đổi theo mỗi vòng lặp, hay toạ độ của các cây xương rồng sẽ di chuyển về hướng T-Rex
c. Vẽ (Draw or render)
Sau khi đã cập nhật xong các thông số của game, chúng ta cần “vẽ” tất cả các nhân vật ra ngoài cửa sổ game
VD: Sau khi kết thúc vòng lặp, chúng ta cần vẽ lại tất cả nhân vật với toạ độ mới.
Ngoài ra, một phần rất đặc biệt không thể thiếu trong PyGame là bộ đếm thời gian (clock). Bộ đếm thời gian giúp chúng ta điều khiển được tốc độ lặp của một vòng lặp đủ để tất cả các quá trình trên được hoàn thành trước khi chuyển sang một vòng lặp mới.
Bước 3: Thực hiện lập trình: Các thành phần cơ bản của một dự án PyGame
3.1 Import các thư viện cần thiết
Với bài học đầu tiên này chúng ta chỉ cần import hai thư viện Python cần thiết là random và PyGame thôi nhé:
import pygame
import random
3.2 Định nghĩa các hằng số trong game
Việc định nghĩa các hằng số trong các chương trình, đặc biệt là các chương trình video games, là điều rất quan trọng. Vì các hằng số này sẽ được dùng lại rất nhiều lần, khi có thay đổi gì về giá trị của các hằng số này, chúng ta chỉ cần thay đổi một vị trí duy nhất mà thôi. Lưu ý: các hằng số được viết in hoa để phân biệt với các biến số khác trong game
WIDTH = 360 # width of our game window
HEIGHT = 480 # height of our game window
FPS = 30 # frames per second
3.3 Khởi tạo cửa sổ game
Tên chương trình
pygame.init()
pygame.display.set_caption("T-REX")
Kích thước cửa sổ
screen = pygame.display.set_mode((WIDTH, HEIGHT))
Khởi tạo bộ đếm thời gian
clock = pygame.time.Clock()
3.4 Tạo vòng lặp game
Để định nghĩa vòng lặp game, chúng ta dùng while loop mà các thầy cô trong CS101 đã dạy cho chúng ta nhé.
running = True
while running:
# Du lieu tu nguoi choi
# Cap nhat thong so cua game
# Ve cac doi tuong ra man hinh game
3.5 Thiết lập tốc độ của bộ đếm thời gian (FPS)
Làm thế nào để điều được tốc độ của bộ đếm thời gian nhỉ?
running = True
while running:
clock.tick(FPS)
# Du lieu tu nguoi choi
# Cap nhat thong so cua game
# Ve cac doi tuong ra man hinh game
pygame.display.flip()
3.6 Thoát game
Chúng ta có thể thêm đoạn code xử lý sự kiện thoát game khi nhấn vào nút thoát cửa sổ game bằng đoạn code sau trong vòng lặp game của chúng ta nhé
for event in pygame.event.get():
# check for closing window
if event.type == pygame.QUIT:
running = False
3.7 Thành quả
Sau khi hoàn thành các bước trên, chúng ta sẽ được đoạn code như sau:
import pygame
import random
WIDTH = 600
HEIGHT = 600
FPS = 30 # khung hinh tren giay
pygame.init()
pygame.mixer.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("My Game")
clock = pygame.time.Clock()
# Game loop
running = True
while running:
clock.tick(FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Du lieu tu nguoi choi
# Cap nhat thong so cua game
# Ve cac doi tuong ra man hinh game
pygame.display.flip()
pygame.quit()
Chúng ta có thể chạy đoạn code trên nhưng chỉ nhìn thấy cửa sổ game màu đen thôi nhé.
Bước 4: Vẽ và tô màu cho đối tượng
4.1. Thiết lập màu sắc và mã màu
Trong lập trình game mã màu cũng là phần rất quan trọng vì nó giúp người chơi có thể phân biệt được các nhân vật khác nhau khi chúng cùng xuất hiện trong màn hình game. Một số mã màu quan trọng:
Để có thể dùng các màu trong Pygame, chúng ta nên khai báo chúng giống như các hằng số và chỉ gọi tên khi chúng ta cần dùng đến
BLACK = (0, 0, 0)
WHITE = (255, 255, 255)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
4.2 Thiết lập tọa độ của một đối tượng
Gốc toạ độ trong PyGame sẽ nằm ở góc trên bên trái của cửa sổ game nhé
VD: như hình vẽ bên dưới đối tượng hình chữ nhật sẽ có toạ độ là 50px theo trục X và 50px theo trục Y và có kích thước là 40×30.
4.3. Vẽ hình vuông, hình tròn trên cửa sổ game
Vẽ hình vuông màu đỏ ở toạ độ (50,50) và có kích thước 60×60 pixels
pygame.draw.rect(screen, RED,(50, 50, 60, 60))
Vẽ hình tròn màu xanh dương ở toạ độ (200,200) và có bán kính 75 pixels
pygame.draw.circle(screen, BLUE, (150,150), 75)
Bước 5: Thành quả:
Hãy cùng kiểm tra code của các bạn có giống như bộ code của bài dưới đây không nhé [link]
import pygame
import random
WIDTH = 600
HEIGHT = 600
FPS = 30 # khung hinh tren giay
WHITE = (255, 255, 255)
BLACK = (0, 0, 0)
RED = (255, 0, 0)
GREEN = (0, 255, 0)
BLUE = (0, 0, 255)
pygame.init()
pygame.mixer.init()
screen = pygame.display.set_mode((WIDTH, HEIGHT))
pygame.display.set_caption("My Game")
clock = pygame.time.Clock()
# Game loop
running = True
while running:
clock.tick(FPS)
for event in pygame.event.get():
if event.type == pygame.QUIT:
running = False
# Du lieu tu nguoi choi
# Cap nhat thong so cua game
# Ve cac doi tuong ra man hinh game
screen.fill(BLACK)
pygame.draw.rect(screen, RED, (50, 50, 60, 60))
pygame.draw.circle(screen, BLUE, (200,200), 75)
pygame.display.flip()
pygame.quit()
Trại hè Lập trình 2021 với khoá học CS 101 về Python
Chúc mừng các bạn đã hoàn thành bài lập trình game đầu tiên với ngôn ngữ PyGame!
Hãy đừng quên chia sẻ thành quả của mình với thầy cô và các bạn trên hệ thống STEAMese Profile nhé!
— — —
Người viết: Huy Nguyễn
STEAM for Vietnam Foundation là tổ chức phi lợi nhuận 501(c)(3) được thành lập tại Hoa Kỳ với sứ mệnh thúc đẩy các hoạt động liên quan tới giáo dục STEAM (Science — Khoa học, Technology — Công nghệ, Engineering — Kỹ thuật, Arts — Nghệ thuật, Mathematics — Toán học) tại Việt nam. STEAM for Vietnam được thành lập và vận hành bởi đội ngũ tình nguyện viên là du học sinh và chuyên gia người Việt trên khắp thế giới.
Trong thực tế, một sự vật có những thuộc tính và hành vi nhất định tạo ra sự đặc trưng của nó. Ví dụ thỏ thì chạy nhanh, còn rùa thì chạy chậm. Hổ thì có vằn đen trong khi sư tử thì có bờm trên đầu. Xe đạp thì có hai bánh còn ô tô thì có 4 bánh, vv…
Khi đưa những khái niệm này vào trong lập trình bằng cách sử dụng lý thuyết hướng đối tượng, chúng ta sẽ thấy mỗi sự vật chính là một đối tượng. Khi đó, trong thế giới lập trình, mọi thứ đều là đối tượng. Đối tượng xe đạp thì có thuộc tính hai bánh, có thể di chuyển trên làn đường dành cho xe đạp, trong khi đối tượng ô tô thì có thuộc tính bốn bánh và thuộc tính động cơ, có thể di chuyển trên đường cao tốc.
Chúng ta còn có thể liên tưởng các mối quan hệ trong thế giới thực vào trong lập trình. Ví dụ như rắn và cá sấu đều thuộc loài bò sát, là những động vật biến nhiệt. Thì trong lập trình hướng đối tượng, chúng ta có thể tạo ra lớp Bò Sát, có thuộc tính là “biến nhiệt” và “đẻ trứng”. Từ đó, chúng ta có lớp Rắn và lớp Cá Sấu đều kế thừa lớp Bò Sát này. Cách kế thừa này trong lập trình giúp chúng ta giảm được việc lặp đi lặp lại định nghĩa “biến nhiệt” và “đẻ trứng” cho tất cả các loài bò sát. Khi đó với lớp Rắn, chúng ta chỉ cần định nghĩa thuộc tính “không có chân” và hành vi “trườn”, trong khi với Cá Sấu thì có “bốn chân” và hành vi “bò”.
Để hiểu rõ hơn về lập trình hướng đối tượng, hãy cùng điểm qua những kiến thức quan trọng và những lỗi đáng lưu ý đã được học trong buổi trước.
Sau khi học xong lý thuyết lập trình hướng đối tượng này, chúng mình có thể biến bất cứ đối tượng (sự vật) nào trong thực tế thành một đối tượng trong lập trình. Và cũng đừng quên là thêm thuộc tính “biết lập trình” vào đối tượng “bản thân” các em nhé!
Người viết: Thầy Ken Nguyễn
— — —
STEAM for Vietnam Foundation là tổ chức phi lợi nhuận 501(c)(3) được thành lập tại Hoa Kỳ với sứ mệnh thúc đẩy các hoạt động liên quan tới giáo dục STEAM (Science — Khoa học, Technology — Công nghệ, Engineering — Kỹ thuật, Arts — Nghệ thuật, Mathematics — Toán học) tại Việt nam. STEAM for Vietnam được thành lập và vận hành bởi đội ngũ tình nguyện viên là du học sinh và chuyên gia người Việt trên khắp thế giới.
Trong Scratch, ta đã biết vị trí của một nhân vật trên màn hình sẽ được biểu diễn bằng cặp tọa độ x (hoành độ – theo chiều ngang) và tọa độ y (tung độ – theo chiều dọc). Chiều rộng và chiều cao của màn hình Scratch tương ứng là 480 và 360.
2. Tìm hiểu về các màn chơi trong trò chơi “Miu Phiêu Lưu Ký”
Khi Miu di chuyển qua lại, màn hình di chuyển theo chuyển động của Miu.
Nói tóm lại, các màn chơi có vị trí tương đối, tọa độ phụ thuộc vào biến di chuyển ngang (của nhân vật Miu) chứ không có tọa độ cố định.
3. Ý tưởng lập trình màn chơi
Để lập trình các màn chơi ban đầu, ta sẽ đặt các màn chơi ở một tọa độ (hoành độ x và tung độ y) cố định, sau đó khi Miu di chuyển thì các hoành độ (tọa độ x) của các màn chơi sẽ đồng loạt thay đổi thành tọa độ x ban đầu của nó trừ đi số bước Miu đã di chuyển.
Trong bài này, tọa độ ban đầu của Đất 1, Đất 2, Đất 3 lần lượt là 0, 480, 960. Chúng ta kí hiệu số bước Miu đã di chuyển chính là giá trị của biến di chuyển ngang. Thay vì thay đổi tọa độ của Miu khi Miu di chuyển, chúng ta sẽ cho Miu đứng yên, và cho các cảnh di chuyển ngược lại dựa vào số bước của Miu.
— — —
STEAM for Vietnam Foundation là tổ chức phi lợi nhuận 501(c)(3) được thành lập tại Hoa Kỳ với sứ mệnh thúc đẩy các hoạt động liên quan tới giáo dục STEAM (Science — Khoa học, Technology — Công nghệ, Engineering — Kỹ thuật, Arts — Nghệ thuật, Mathematics — Toán học) tại Việt nam. STEAM for Vietnam được thành lập và vận hành bởi đội ngũ tình nguyện viên là du học sinh và chuyên gia người Việt trên khắp thế giới.
Trong 2 hình, hình nào bạn Miu giống như đang đi bộ hơn?
Hình 1
Hình 2
Hình 1: Bạn Miu giữ nguyên tư thế khi di chuyển (toàn bộ cơ thể và chân tay không hề thay đổi), tạo cảm giác không chân thực
Hình 2: Bạn Miu di chuyển tay chân giống như đang đi bộ
Tại sao cần làm cho nhân vật di chuyển linh hoạt?
Khi nhân vật di chuyển càng chân thật, trò chơi sẽ trở nên thú vị và sinh động hơn. Đây là một kĩ thuật được sử dụng rất nhiều trong lập trình trò chơi.
Làm sao để cho nhân vật di chuyển linh hoạt?
1. Sử dụng nhiều hình ảnh để thể hiện các trạng thái khác nhau của nhân vật khi thực hiện hành động
Để tạo cảm giác nhân vật chuyển động linh hoạt, chúng ta sẽ cố gắng tạo càng nhiều hình ảnh để miêu tả các trạng thái khác nhau của nhân vật càng tốt. Giữa các trạng thái có càng ít thay đổi, thì chuyển động sẽ càng có cảm giác mượt mà hơn.
Ví dụ: Sử dụng 1 trang phục để thể hiện trạng thái Miu đứng yên và 8 trang phục để thể hiện các trạng thái Miu đi (được sắp xếp theo thứ tự từ 1 đến 9), qua đó miêu tả trạng thái của Miu khi di chuyển qua lại (*). Giữa các trạng thái chỉ có thay đổi rất nhỏ.
1. Tư thế đứng
2. Tư thế đi 1
3.Tư thế đi 2
4. Tư thế đi 3
5. Tư thế đi 4
6. Tư thế đi 5
7. Tư thế đi 6
8. Tư thế đi 7
9. Tư thế đi 8
2. Dùng khối lệnh để nhân vật thay đổi trang phục
Do các trang phục đã được sắp xếp đúng trình tự, nên chúng ta có thể sử dụng lệnh “trang phục kế tiếp” nếu muốn thay đổi lần lượt trong các trang phục này. Tuy nhiên, nếu chúng ta chỉ thay đổi trong một số trang phục nhất định, chúng ta cần sử dụng biến.
Ví dụ: nếu Miu có 1 trang phục số 1 có tư thế đứng, 8 trang phục từ số 2 đến số 9 là các tư thế đi lần lượt, 1 trang phục số 10 là tư thế rơi, và 1 trang phục số 11 là tư thế nhảy. Nếu chúng ta sử dụng khối lệnh dưới đây, các trang phục sẽ thay đổi từ 1 đến 11 rồi quay lại 1 và tiếp tục, như vậy cả trang phục nhảy và rơi cũng xuất hiện.
Sử dụng trang phục kế tiếp trong khối lệnh bước đi
Sử dụng khối lệnh bước đi để lập trình khối lệnh di chuyển trái phải
Sử dụng khối lệnh di chuyển trái phải để chạy trong chương trình chính
Trong trường hợp này, chúng ta cần kết hợp biến để đảm bảo là chỉ thay đổi các trang phục từ 1 đến 9 khi Miu đi trên mặt đất.
Ví dụ ở đây chúng ta sử dụng biến số Số thứ tự của trang phục như sau:
Thay đổi biến Số thứ tự của Trang Phục mỗi khi di chuyển
Liên tục cập nhật trang phục dựa vào biến Số thứ tự của Trang Phục
Như vậy là con đã biết cách sử dụng trang phục để nhân vật của con di chuyển linh hoạt và sinh động hơn rồi đấy!
STEAM for Vietnam Foundation là tổ chức phi lợi nhuận 501(c)(3) được thành lập tại Hoa Kỳ với sứ mệnh thúc đẩy các hoạt động liên quan tới giáo dục STEAM (Science — Khoa học, Technology — Công nghệ, Engineering — Kỹ thuật, Arts — Nghệ thuật, Mathematics — Toán học) tại Việt nam. STEAM for Vietnam được thành lập và vận hành bởi đội ngũ tình nguyện viên là du học sinh và chuyên gia người Việt trên khắp thế giới.
Bài viết đầu tiên trong series Women in Tech sẽ giới thiệu những câu chuyện “chưa bao giờ kể” đến từ một gương mặt vô cùng quen thuộc với các học sinh của STEAM for Vietnam. Đó là cô Zi Vũ, giảng viên lớp CS 101 – Nhập môn Khoa học Máy tính với Python, hiện đang là Kỹ sư Phần mềm (Senior Software Engineer) tại Twitter.
Cô Zi Vũ, tên thật là Vũ Viết Quỳnh Hương, sinh ra và lớn lên ở Hà Nội. Là một cô gái có cá tính, từ bé bạn nhỏ Zi đã cảm thấy vô cùng đam mê với máy tính và công nghệ – khác hẳn với những bạn gái cùng tuổi. Khi sở hữu chiếc máy tính đầu tiên năm 9 tuổi, cô bé ấy đã bị mê mẩn bởi những phần mềm có thể giúp con người làm việc hiệu quả hơn như Microsoft Word, Excel, hay những trò chơi kinh điển như Civilization, Đế chế, vv…
Từ đó, cô Zi mơ ước sẽ có ngày bản thân mình viết ra được những phần mềm tuyệt như vậy. Nhưng mọi con đường theo đuổi đam mê đều không dễ dàng, nhất là với một cô gái đi theo ngành khoa học và máy tính.
Dù có lợi thế tiếp cận lập trình từ hồi cấp Hai nhưng con đường cô Zi trở thành một lập trình viên cũng không hoàn toàn bằng phẳng.
Thi vào cấp Ba, cô Zi không đỗ nguyện vọng 1 là khối chuyên Tin của trường chuyên Khoa học Tự nhiên, Hà Nội. Vào học khối chuyên Lý nhưng vẫn ao ước được học thêm lập trình, cô Zi đã không đầu hàng trước thất bại ấy. Mày mò tìm hiểu cơ hội khác, cô quyết định đăng ký khóa học Lập trình viên Quốc tế 2 năm tại Hanoi Aptech để lấy bằng lập trình viên, khi mới chỉ 16 tuổi. Đó là quãng thời gian bận rộn khi vừa học cấp Ba, cô Zi vừa theo lớp lập trình buổi tối, vừa đi làm thêm và tham gia các hoạt động ngoại khóa khác. Nhưng đó cũng là khi cô Zi cảm nhận được nhiều niềm vui nhất, nhìn thấy mục tiêu trở thành lập trình viên chuyên nghiệp đang gần lại.
Năm cuối cấp Ba, một lần nữa cô lại gặp thử thách khi không vượt qua được kì thi tuyển của các trường Đại học nước ngoài. Thất bại này khiến cô thay đổi cách mình quản lý thời gian để tập trung học tập trong một năm tiếp theo, xuất sắc giành học bổng toàn phần vào một trong các đại học hàng đầu về công nghệ trên thế giới – Đại học Quốc gia Singapore NUS (National University of Singapore). Những trải nghiệm thất bại và thành công đó đã giúp cô Zi có một tâm lý vững vàng hơn khi đối mặt với thử thách.
Ngày bé, cô Zi luôn có ước mơ được khám phá và đặt chân đến mọi nơi trên thế giới. Tuy nhiên hơn 20 năm trước, mạng Internet, truyền hình cáp và ngành hàng không giá rẻ đều chưa phát triển. Ước mơ đó của một cô gái nhỏ trong một gia đình bình thường nghe quả thật xa vời. Khi đó cô Zi cũng không ngờ rằng, đam mê lập trình của mình lại chính là chìa khóa mở ra rất nhiều cơ hội cho cô thực hiện ước mơ thuở nhỏ.
Năm 19 tuổi, với tấm vé vào đại học NUS, cô Zi lần đầu tiên đi máy bay đến một đất nước mới, khám phá một nền văn hoá mới và bắt đầu cuộc sống tự lập. Trải nghiệm học tập và sống ở một đất nước hiện đại như Singapore cùng một môi trường giáo dục hàng đầu đã tiếp thêm tự tin cho cô để khám phá những vùng đất mới.
Năm thứ ba Đại học, cô Zi ứng tuyển và nhận được cơ hội tham gia chương trình thực tập khởi nghiệp một năm tại Thung lũng Silicon (Hoa Kỳ), cùng lúc theo học tại Đại học Stanford theo chương trình trao đổi của trường. Ra trường, cô đầu quân cho một công ty consulting ở Singapore chuyên tư vấn cho các công ty startups trong khu vực. Công việc đó đã giúp cô được trải nghiệm làm việc với các đội ngũ ở khắp Đông Nam Á.
Những năm sau đó, cô Zi đã đi thăm thú và sống ở nhiều nơi trên thế giới, đúng như ước mơ khi còn nhỏ. Cô đã làm dự án ở Indonesia, New Zealand, đầu quân cho các công ty ở Đức, Canada, Mỹ và hiện giờ, cô đang tạm dừng chân ở một thành phố nhỏ bên bờ Tây của Canada trong khi làm việc với các đồng sự ở khắp nơi trên thế giới.
Cô Zi mà các bạn học sinh của STEAM for Vietnam thường thấy qua màn hình máy tính không chỉ là một kỹ sư phần mềm, cô còn là một người phụ nữ với những câu chuyện đầy tính phiêu lưu và một trái tim thực sự nhiệt huyết với tất cả những điều mình theo đuổi.
Đã hơn 20 năm kể từ khi gắn bó với lập trình, và cô Zi vẫn luôn thấy hài lòng về lựa chọn của mình.
Cô Zi cũng muốn dành lời nhắn gửi tới những ai còn đang băn khoăn về rào cản cho các bạn gái trong ngành công nghệ nói chung và lập trình nói riêng:
“Trong 5 năm trở lại đây thì sự hỗ trợ dành cho phụ nữ trong công nghệ nói riêng và những nhóm thiểu số trong công nghệ nói chung đã tốt hơn rất nhiều. Chính vì vậy, cơ hội cho các bạn nữ trong công nghệ cũng nhanh chóng tăng lên, ví dụ: học bổng của các công ty lớn như Google, các chương trình của chính phủ, các Hội chợ nghề nghiệp như Grace Hopper Career Fair, những chương trình hỗ trợ nữ giới làm công nghệ của các công ty lớn nhỏ, vv…
Hãy liên hệ với những người đi trước để hiểu hơn về thực tế những khó khăn có thể gặp phải và cách khắc phục khi là một cô gái làm công nghệ. Nên nói chuyện với những “người thật việc thật”, chứ đừng chỉ nghe những ý kiến không có cơ sở của người ngoài ngành như “con gái ai lại làm nghề này”. Bên cạnh đó, hãy tập trung vào rèn luyện và nâng cấp bản thân. Khi mình có khả năng và kinh nghiệm thì những định kiến cũng không còn có cơ sở để tồn tại nữa.
Dù có khó khăn, được làm điều mình thích và theo đuổi đam mê của mình là một hạnh phúc lớn. Chúc các bạn có được sự quyết tâm và bền bỉ trên con đường mình lựa chọn nhé!”
Kết thúc bài viết, STEAM for Vietnam muốn gửi tặng một câu nói đến những cô gái còn đang chần chừ với đam mê hay chưa có đủ niềm tin vào bản thân. Đó là câu nói của Zig Ziglar – một trong những người bán hàng giỏi nhất nước Mỹ và tác giả của cuốn sách bán chạy mọi thời đại “Hẹn bạn trên đỉnh thành công”:
Bạn là người duy nhất biết rõ và sử dụng tốt nhất khả năng của mình. Đó là một trách nhiệm lớn của mỗi chúng ta.
Zig Ziglar
Vì vậy, STEAM for Vietnam chúc bạn luôn sống có trách nhiệm với những khả năng tiềm tàng bên trong mình, dũng cảm theo đuổi ước mơ của bản thân và tạo ra được những giá trị tốt đẹp cho cuộc sống.
— — —
Designer: Nghi Bùi
STEAM for Vietnam Foundation là tổ chức phi lợi nhuận 501(c)(3) được thành lập tại Hoa Kỳ với sứ mệnh thúc đẩy các hoạt động liên quan tới giáo dục STEAM (Science — Khoa học, Technology — Công nghệ, Engineering — Kỹ thuật, Arts — Nghệ thuật, Mathematics — Toán học) tại Việt nam. STEAM for Vietnam được thành lập và vận hành bởi đội ngũ tình nguyện viên là du học sinh và chuyên gia người Việt trên khắp thế giới.
Như hình vẽ minh họa ở trên, hộp va chạm thực chất là một trang phục của nhân vật, thường có kích thước nhỏ hơn nhân vật một chút.
Tại sao chúng ta cần sử dụng hộp va chạm?
Hộp va chạm dùng để xác định chiều rộng và chiều cao thực của nhân vật. Hộp va chạm giúp kiểm tra hành động chạm vào các nhân vật khác hoặc với nền đất một cách chính xác hơn.
Hộp va chạm thường có kích thước nhỏ hơn nhân vật một chút. Tại sao lại phải nhỏ hơn nhỉ ?
Câu trả lời là: để tránh những trường hợp như râu hay đuôi của nhân vật chạm tường mà đã dừng ngay trò chơi. Nếu râu hay đuôi của nhân vật chạm tường mà được tính như cả nhân vật chạm tường thì trò chơi có lẽ chưa được chân thật và thuyết phục cho lắm.
Trong hình trên, Miu phía bên trái không có hộp va chạm thì Miu sẽ dừng lại khi râu của Miu chạm vào tường. Khi đó, tuy chỉ có râu của Miu chạm vào tường nhưng trò chơi sẽ tính là cả nhân vật chạm vào tường. Như vậy người chơi sẽ có thể cảm thấy trò chơi chưa đủ chân thật và sống động.
Ngược lại, Miu ở phía bên phải sử dụng hộp va chạm, Miu sẽ không dừng lại khi râu của mình chạm vào tường nữa. Miu sẽ chỉ dừng lại và bị tính là chạm tường khi hộp va chạm chạm vào tường.
Một ví dụ khác trong bài học số 6: Miu Phiêu Lưu Ký
Hình 1: Có sử dụng kỹ thuật hộp va chạm Hình 2: Không sử dụng kỹ thuật hộp va chạm
Như chúng ta đã thấy, ở hình 1 – Có sử dụng hộp va chạm, chân của nhân vật Miu có chạm sát đất và một phần râu vẫn có thể chạm nền đất bên phải.
Trong khi đó ở hình 2 – Không sử dụng hộp va chạm, chân Miu luôn bị cách đất một khoảng và Miu không thể đến quá gần phía nền đất bên phải. Tuy khoảng cách không quá xa nhưng vẫn sẽ làm cho người chơi cảm giác không được thuyết phục, trò chơi không chân thật và sống động bằng hình 1.Link trò chơi Miu Phiêu Lưu Ký để các bạn có thể thử: https://bit.ly/s4v_cs001_sp21_bai6_coban
— — —
STEAM for Vietnam Foundation là tổ chức phi lợi nhuận 501(c)(3) được thành lập tại Hoa Kỳ với sứ mệnh thúc đẩy các hoạt động liên quan tới giáo dục STEAM (Science — Khoa học, Technology — Công nghệ, Engineering — Kỹ thuật, Arts — Nghệ thuật, Mathematics — Toán học) tại Việt nam. STEAM for Vietnam được thành lập và vận hành bởi đội ngũ tình nguyện viên là du học sinh và chuyên gia người Việt trên khắp thế giới.
1. Nhóm khối lệnh giúp trả về số thứ tự của giá trị của phần tử trong danh sách
a. Khối lệnh “phần tử thứ 1 của đồ dùng học tập” giúp trả về giá trị của phần tử có số thứ tự 1 trong danh sách đồ dùng học tập
Gõ số thứ tự của phần tử (phải là số).
Để thay đổi danh sách, hãy click mũi tên chỉ xuống ở phía cuối khối lệnh. Sau đó, chọn tên danh sách thích hợp.
Ví dụ:
Khối lệnh “phần tử thứ 3 của đồ dùng học tập” sẽ trả về giá trị của phần tử có số thứ tự 3 trong danh sách đồ dùng học tập. Đó là phần tử “bút”.
Lưu ý: Khối lệnh trả về số hoặc chữ nên cần ghép vào khối lệnh khác để tạo hành động cho nhân vật.
b. Khối lệnh “số thứ tự của sách trong đồ dùng học tập” giúp trả về số thứ tự của phần tử có có giá trị là sách trong danh sách đồ dùng học tập
Gõ giá trị của phần tử (có thể là chữ hoặc số).
Để thay đổi danh sách, hãy click mũi tên chỉ xuống ở phía cuối khối lệnh. Sau đó, chọn tên danh sách thích hợp.
Ví dụ:
khối lệnh “số thứ tự của vở trong đồ dùng học tập” sẽ trả về số thứ tự của phần tử mang giá trị là vở trong danh sách đồ dùng học tập. Đó là thứ tự 4.
Lưu ý: Trong trường hợp phần tử đó không có trong danh sách, khối lệnh sẽ trả về số 0. Do khối lệnh trả về số nên cần phải ghép vào khối lệnh khác để tạo hành động cho nhân vật.
2. Khối lệnh trả về kích thước của danh sách
Khối lệnh “kích thước của đồ dùng học tập” trả về độ dài của danh sách đồ dùng học tập. Đó cũng chính là số phần tử có trong danh sách đồ dùng học tập.
Lưu ý: Khối lệnh trả về số nên cần ghép vào khối lệnh khác để tạo hành động cho nhân vật.
3. Khối lệnh kiểm tra xem một phần tử có thuộc danh sách hay không
Khối lệnh “đồ dùng học tập chứa phần tử sách?” giúp kiểm tra xem có phần tử nào mang giá trị là sách trong danh sách đồ dùng học tập hay không. Nếu có, khối lệnh sẽ trả về True. Trái lại, nếu không có phần tử đó trong danh sách, khối lệnh sẽ trả về False.
Lưu ý: Do khối lệnh trả về True (Đúng) hoặc False (Sai) nên cần đặt vào các khối lệnh nhận giá trị True hay False để tạo thành một hành động cụ thể cho nhân vật
4. Khối lệnh ẩn/hiện danh sách
Khối lệnh hiện danh sách đồ dùng học tập giúp hiện danh sách đồ dùng học tập trên màn hình
Khối lệnh ẩn danh sách đồ dùng học tập giúp hiện danh sách đồ dùng học tập trên màn hình
Ví dụ:
— — — STEAM for Vietnam Foundation là tổ chức phi lợi nhuận 501(c)(3) được thành lập tại Hoa Kỳ với sứ mệnh thúc đẩy các hoạt động liên quan tới giáo dục STEAM (Science — Khoa học, Technology — Công nghệ, Engineering — Kỹ thuật, Arts — Nghệ thuật, Mathematics — Toán học) tại Việt nam. STEAM for Vietnam được thành lập và vận hành bởi đội ngũ tình nguyện viên là du học sinh và chuyên gia người Việt trên khắp thế giới. — — —
Khối lệnh “Thêm phần tử đèn học vào trong đồ dùng học tập” giúp thêm phần tử đèn học vào vị trí cuối cùng trong danh sách.
Gõ phần tử bạn muốn thêm vào ô trống thay cho chữ đèn học (có thể là chữ hoặc số).
Để thay đổi danh sách, hãy click mũi tên chỉ xuống ở phía cuối khối lệnh. Sau đó, chọn tên danh sách thích hợp.
Kết quả sau khi thực hiện khối lệnh:
Khối lệnh “Xóa phần tử thứ 2 của đồ dùng học tập” giúp xóa phần tử có số thứ tự là 2 trong danh sách
Gõ số thứ tự của phần tử bạn muốn xóa trong danh sách đồ dùng học tập.
Để thay đổi danh sách, hãy click mũi tên chỉ xuống ở phía cuối khối lệnh. Sau đó, chọn tên danh sách thích hợp.
Kết quả sau khi thực hiện khối lệnh:
Khối lệnh “xóa hết tất cả trong liệt kê đồ dùng học tập” giúp xóa hết tất cả các phần tử có trong danh sách đồ dùng học tập.
Để thay đổi danh sách, hãy click mũi tên chỉ xuống ở phía cuối khối lệnh. Sau đó, chọn tên danh sách thích hợp.
Kết quả sau khi thực hiện khối lệnh:
Khối lệnh “Thêm phần tử bàn học tại vị trí số 2 của đồ dùng học tập” giúp thêm phần tử “bàn học” vào vị trí số 2 của danh sách đồ dùng học tập.
Gõ phần tử (có thể là chữ hoặc số) và số thứ tự (phải là số) của phần tử đó bạn muốn xóa trong danh sách đồ dùng học tập.
Để thay đổi danh sách, hãy click mũi tên chỉ xuống ở phía cuối khối lệnh. Sau đó, chọn tên danh sách thích hợp.
Kết quả sau khi thực hiện khối lệnh:
Khối lệnh “thay thế phần tử tứ 4 của danh sách đồ dùng học tập bằng vở” giúp ta thay giá trị của phần tử có số thứ tự 4 trong danh sách đồ dùng học tập
Gõ số thứ tự của phần tử (phải là số) và giá trị mới của phần tử đó mà bạn muốn thay thế (có thể là chữ hoặc số).
Để thay đổi danh sách, hãy click mũi tên chỉ xuống ở phía cuối khối lệnh. Sau đó, chọn tên danh sách thích hợp.
Kết quả sau khi thực hiện khối lệnh:
— — —
STEAM for Vietnam Foundation là tổ chức phi lợi nhuận 501(c)(3) được thành lập tại Hoa Kỳ với sứ mệnh thúc đẩy các hoạt động liên quan tới giáo dục STEAM (Science — Khoa học, Technology — Công nghệ, Engineering — Kỹ thuật, Arts — Nghệ thuật, Mathematics — Toán học) tại Việt nam. STEAM for Vietnam được thành lập và vận hành bởi đội ngũ tình nguyện viên là du học sinh và chuyên gia người Việt trên khắp thế giới.
Danh sách cho tất cả các nhân vật trong trò chơi: Danh sách này có thể sử dụng cho tất cả các nhân vật trong trò chơi
Danh sách chỉ cho nhân vật này: Danh sách này chỉ có thể sử dụng bởi chính nhân vật mà chúng ta chọn lúc đầu để tạo danh sách.
HƯỚNG DẪN TẠO DANH SÁCH
Bước 1: Chọn nhân vật bạn muốn để tạo danh sách
Bước 2: Chọn nhóm lệnh Các biến số
Bước 3: Chọn Tạo một Danh sách. Sau đó màn hình sẽ hiển thị hộp thoại:
Bước 4: Điền tên danh sách, chọn loại danh sách thích hợp rồi sau đó nhấn nút OK
Kết quả:
Sau khi nhấn OK, danh sách mới được tạo ra và xếp ở dưới như hình vẽ.
Ngoài ra để thao tác với danh sách, chúng ta có các khối lệnh sau đây. STEAM for Vietnam sẽ có các bài viết chi tiết hơn về từng khối lệnh.
— — —
STEAM for Vietnam Foundation là tổ chức phi lợi nhuận 501(c)(3) được thành lập tại Hoa Kỳ với sứ mệnh thúc đẩy các hoạt động liên quan tới giáo dục STEAM (Science — Khoa học, Technology — Công nghệ, Engineering — Kỹ thuật, Arts — Nghệ thuật, Mathematics — Toán học) tại Việt nam. STEAM for Vietnam được thành lập và vận hành bởi đội ngũ tình nguyện viên là du học sinh và chuyên gia người Việt trên khắp thế giới.