Giới thiệu về Linq và Linq to Sql

Một phần của tài liệu 37234_phanthanhhai_baocaotn (Trang 48)

1. Giới thiệu về Linq

- Linq là từ viết tắt của từ Language Intergrated Query.

- Linq là một ngôn ngữ truy vấn được cung cấp sẵn trong ngôn ngữ .NET với các câu truy vấn tương tự như trong Sql.

- Linq cho biết nguồn dữ liệu mà bạn đang truy vấn và thực hiện các truy vấn để trả về kết quả.

- Nguồn dữ liệu ở đây có thể là tập các đối tượng , có thể là dữ liệu trong sql, có thể là các file XML và một vài nguồn dữ liệu khác.

- Linq cho phép bạn viết các câu truy vấn trong các chương trình được viết bằng ngôn ngữ C# , VB và một số ngơn ngữ hỗ trợ khác.

- Mơ hình tổng quan về Linq.

Hình 3.1 Mơ hình tổng quan về Linq

Từ mơ hình tổng quan về linq ta biết được các ngôn ngữ hỗ trợ viết các truy vân linq là C#, VB, và một số ngôn ngữ khác và các nguồn dữ liệu của

linq là Linq to Object(Nguồn dữ liệu là kiểu các đối tượng), ADO.NET,Linq To XML.

Trong nguồn ADO.NET gồm có Linq to datasets, linq to sql, linq to entities.Trong bài này tôi xin giới thiệu về Linq to sql.

2. Giới thiệu về Linq To Sql

- Linq to sql là 1 nguồn dữ liệu cụ thể của linq thực hiên thao tác vơi dữ liệu

trong SQL server

- Linq to sql là thành phần của .NET Framework phiên bản 3.5 cung cấp môi trường để thực hiên quản lý dữ liệu cũng như các đối tượng.

- Để sử dụng được linq to sql thi các bạn cần phải tham chiếu đến thư viện là Using System.Data.Linq trong chương tring bạn viết thì chương trình đó mới hỗ trợ các bạn sử dụng Linq.

- Linq to sql cho phép bạn mơ hình hóa dữ liệu trong cơ sở dữ liệu bằng 1 lớp có sẵn trong .Net là lớp datacontext. Sau khi bạn sử dụng lớp

datacontext để kéo các thực thể vào lớp đó thì bạn có thể thực hiên truy vấn đến cơ sở dữ liệu sử dụng các phương thức có sẵn cung cập trong linq đề thực hiên thêm sửa , xóa , chèn dữ liệu vào trong cơ sở dữ liệu Sql

- Linq to sql hỗ trợ đầy đủ các thủ tục lưu trũ ,các function, view, transaction như trong sql

- Linq to sql cung cấp cho người phát triển khả năng kiểm tra giá trị của các trường trong cơ sở dữ liệu.

II. Mơ hình dữ liệu Linq To Sql 1. Các tạo file Linq to sql

Hình 3.2 Thêm Linq To Sql vào dự án2. Lớp dataContext 2. Lớp dataContext

- Lớp dataContext cung cấp một biểu đồ các thực thể trong cơ sở dữ liệu

- Thơng qua lớp dataContext bạn có thể truy vấn đến cơ sở dữ liệu và thực hiện thay đổi cơ sở dữ liệu thơng quan các lệnh thêm, sửa ,xóa , cập nhật trongg linq to sql

- Chức năng của lớp dataContext

Hình 3.3 Chức năng của DataContext

- Nhiệm vụ của lớp dataContext là Quản lý việc thực hiện các kết nối, Phiên dịch và thực hiện các câu truy vấn, Đinh nghĩa các đối tượng thực thể, quản lý sự thay đổi.

3. Cách tạo mơ hình dữ liệu

Hình 3.4 Ví dụvề mơ hình dữ về mơ hình dữ liệu - Để thực hiên tạo mơ hình dữ liệu các bạn thực

hiên add iterm

vào dự án của các

bạn sau đó các

bạn chọn Class Data Linq To Sql

- Các bạn đặt tên cho file này. File này có đi là .dbml đây chính là lớp datacontext được tạo ra . Tên là tên mà các bạn đặt cơng với dataContext. Như ví dụ trên của tơi là tạo ra file datacontext có tên làm MSPDataContext - Nếu trong cơ sở dữ liệu có các funtion, store produce thì các bạn kéo sang cột bên phải.

III. Truy vấn dữ liệu với Linq To Sql1. Cấu trúc của câu truy vấn linq to sql 1. Cấu trúc của câu truy vấn linq to sql

- Một câu lênh truy vấn trong linq to sql ln gồm có 3 đối tượng: nguồn dự liệu, tao câu truy vấn, thực hiên câu truy vấn:

Hình 3.5 Sơ đồ thực hiện câu lệnh Linq To Sql

- Nguồn dự liệu ở đây là một danh sách các iterm

- Câu lênh truy vân bao gồm có from là xác định dữ liệu lấy từ bảng nào, where là thỏa mãn điều kiên gì thì lấy ra, select là lựa chọn các trường nào của đối tượng , hay là chọn cả đối tượng.

- Thực hiên câu truy vấn ở đây có thể là lên thêm , sửa , xóa.Thêm , sửa , xóa ở đây có thể là một hoặc nhiều đối tượng.

Hình 3.6 cơ chế hoạt động với cơ sở dữ liệu

- Từ hình trên thì các bạn cũng biết được cơ chế hoạt động của linq. Đối với các câu lệnh truy vấn câu lệnh linq thông qua ứng dụng hỗ trợ biên dịch linq để dịch thành các câu lênh tương ứng trong Sql để thực hiện thao tác với cơ sở dữ liệu.Còn đối với các câu lệnh thao tác với cơ sở dữ liệ thì khi các bạn gọi đến các câu lệnh thí nó chưa thực hiện. Nó chỉ thực hiên khi các bạn gọi đến phương thức Submitchage(). Các câu lệnh thao tác này cúng phải thông qua ứng dụng hỗ trợ biên dịch các câu lệnh linq thành các câu leeng sql tương ứng để thao tác với cơ sở dữ liệu.

Hình 3.7 ví dụ về truy vấn cơ sở dữ liệu

- from là chọn đối tượng từ nguồn nào

- join là thực hiên tham gia liên kết với bảng nào để lấy ra các trường dữ liệu mong muốn

- Where để ghi điều kiện các đối tượng trong nguồn phải thỏa mãn điều kiên này thì mới được lấy ra

- group là thực hiện gom nhóm các đối tường lấy ra theo một trường nào đó. Ví dụ có một danh sách các sinh viên thì các bạn sẽ mn các sinh viên thuộc cùng 1 lớp sẽ đứng gần nhau. Để làm được điều này trong Linq dùng group

- Orderby là thực hiên sắp xếp các đối tượng dược lấy ra theo 1 trường nào đó và theo thứ tự giảm dần hay tăng dần.

Hình 3.8 các đối tượng hay sử dụng- Ở đây có 1 vài đối tượng mà các bạn chưa biết: - Ở đây có 1 vài đối tượng mà các bạn chưa biết:

- Các hàm sum/min/max/average là các hàm tính tổng , lấy giá trị nhỏ nhất, lấy giá trị lớn nhất, lấy giả trị trung bình.

- Hàm take , skip là hàm lấy ra bao nhiêu bản ghi được hiển thị trong danh sách các bản ghi và lấy ra từ bản ghi thử mấy. Ví dụ danh sách sinh viên của các bạn có 100 sinh viên nhưng các bạn chỉ muốn nó hiện ra 10 sinh viên thơi và bắt đầu từ sinh viên thứ 5 thì các bạn viết là take(10).skip(5). Ngồi ra take và skip cịn dùng để phân trang dữ liệ với các điều kiển dữ liệu trong asp.net. Tơi sẽ trình bầy vấn đề này ở bài tiếp theo.

- Hàm first , firstOrDefault là hàm dùng để lấy ra phần tử đầu tiên trong danh sách các phần tử. Nhưng có sự khác biệt giữa first và FirstOrDefault. First khi các bạn dùng mà phần tử lấy ra mà rỗng thì nó sẽ xảy ra lỗi cón với firstOrDefault thì có thể cho phép đối tượng lấy ra là null nhưng các bạn nhớ khi thực hiện thì kiểm tra nó khác null thì mới thực hiên câu lênh bên trong if là được

- Tương tư như first , firstOrDefault thi Last, LastOrDefault là lấy ra phần tử cuối cùng.

Chương 4 : Xây dựng trị chơi bắn máy bay 1. Bài tốn

Đề bài : Lập trình trị chơi bắn máy bay u cầu :

- Có nhiều phi thuyền di chuyển trên đỉnh màn hình điện thoại.

- Dùng tay chạm vào máy bay để di chuyển sang trái hoặc sang phải màn ở đáy màn hình

- Chạm liên tục vào màn hình để bắn

- Vẽ đường chuyển động của đạn

- Mỗi lần bắn trúng tàu sẽ được tính là 100 điểm

- Tăng số lượng tàu sau mỗi level

- Chạm vào  ( Back ) để tạm dừng trị chơi, thốt trị chơi, chơi tiếp.

2. Mơ tả trị chơi

Trong trò chơi này các phi thuyền sẽ xuất hiện và di chuyển trên màn hình. Người chơi sẽ dùng tay chạm vào máy bay trên màn hình để di chuyển máy bay. Mỗi lần tiêu diệt 1phi thuyền, máy bay sẽ được tính là 100 điểm, bắn trượt sẽ khơng được tính điểm nhưng cũng khơng bị trừ điểm(vì trị chơi căn cứ vào số lượng tàu trên màn hình, khi máy bay bắn hết phi thuyền trên màn hình thì chiến thắng qua ải ). Khi bắn đạn và khi trúng máy bay làm nổ máy bay đều phát ra âm thanh, phi thuyền nổ đồng thời rơi ra nguyên liệu để nâng cấp đạn.

Người chơi có thể cài đặt lại các thơng số cho trị chơi như :

- Cài đặt âm thanh.

- Cài đặt ngôn ngữ.

- Chọn mức chơi dễ , trung bình, khó.

- Có thể bắt đầu chơi một bài mới hay có thể ngừng chơi bằng cách chạm vào ( back ).

Nếu người chơi qua được ải thì ải sai sẽ khó hơn ải trước ( vì số lượng tàu sẽ nhiều lên sau mỗi ải). Trên góc màn hình sẽ lưu lại điểm số cho phép người chơi biết mình đã bắn bao nhiêu lần , đã được bao nhiêu điểm, lượng máu mà máy bay còn,..

Khi người chơi chiến thắng hay thất bại tức là khi kết thúc trị chơi thì sẽ có một bảng tổng kết thành tích người đó đã đạt được qua tất cả các ải đã chơi.

3. Phân tích trị chơi

Game bắn máy được mơ tả : Có một chiếc máy bay và nhiều phi thuyền địch, nhiệm vụ của ta là di chuyển máy bay sao cho không bị trúng đạn của phi thuyền thả ra , và bắn nổ các phi thuyền, khi bắn nổ hêt phi thuyền thì ta qua ải mới, ải mới có độ khó hơn so với ải vừa đánh xong. Như vậy ta xác định Game có các đối tượng sau :

a) Máy bay :

Hình 4.1 Hình ảnh máy bay

- Khởi tạo vị trì ở dưới màn hình, di chuyển qua lại trái phải.

- Tự cập nhật vị trí khi nhận tín hiệu chạm tay.

- Xác định va chạm với biên bản đồ để khơng chạy vượt ra ngồi.

- Có một số đại lượng như máu, điểm số, đan,…và có một số chức năng như là tăng tốc, bắn đạn, ăn các nguyên liệu để tăng đạn, điểm số

b) Phi thuyền

Hình 4.2 Hình ảnh phi thuyền

- Một số thơng tin như tốc độ di chuyển, tốc độ bắn,… và có chức nang bắn, tăng tốc đạn, và di chuyển.

- Tạo âm thanh và hình ảnh khi phi thuyền nổ.

c) Đạn

Hình 4.3 Các cấp độ của đạn

- Xác định đường đi của đạn tại vị trí bắn.

- Xử lý va chạm giữa đạn và phi thuyền.

- Nâng cấp đạn khi nhận thêm nguyên liệu.

Ngồi ra ta cịn có thêm một số chức năng như chơi lại, cài đặt trò chơi, giới thiệu,…

3.1 Sơ đồ ngữ cảnh mức hệ thống

Đối với tất cả các bài tốn đều phải phân tích để giải quyết từng chức năng mà một bài toán đảm nhận . Đây là sơ đồ ngữ cảnh của chương trình , nó giúp ta nhìn một cách tổng thể nhất về xây dựng trò chơi bắn máy bay trên điện thoại hệ điều hành windows phone. Người chơi gửi yêu cầu bằng cách chạm vào màn hình các chức năng đã có, chương trình thực hiện mở chức năng, thực hiện chức năng đó.

Hình 4.4 Sơ đồ ngữ cảnh3.2 Sơ đồ phân rã chức năng 3.2 Sơ đồ phân rã chức năng

Qua thời gian tìm hiểu và phân tích của em thì sơ đồ chức năng của trị chơi như sau :

Chương trình u cầu Người chơi Đáp ứng yêu cầu Trò chơi bắn máy bay Cài đặt Thơng tin trị chơi

Bắt đầu Hướng dẫn Thoát

Âm thanh Chơi mới

Mức độ Tiếp tục

Hình 4.5 Sơ đồ phân rã chức năng

Cũng giống bao trị chơi khác, trị chơi bắn máy bay gồm có các chức năng : - Bắt đầu : chạm vào chức năng này người chơi sẽ tiến hành chơi game, trong q trình chơi có thể chơi lại, tiếp tục hay trở lại.

- Cài đặt : cài đặt chung cho trị chơi như âm thanh, ngơn ngữ, vị trí bẳng điểm hay mức độ chơi dễ, trung bình, khó.

- Thơng tin trị chơi : cho biết tác giả, thơng tin về version của trò chơi. - Hướng dẫn : giới thiệu cách chơi.

3.3 Sơ đồ mức đỉnh

Vị trí bảng điểm Trở lại

Hình 4.6 Sơ đồ mức đỉnh(1) Yêu cầu của người chơi đối với trò chơi (1) Yêu cầu của người chơi đối với trò chơi

(2) Đáp ứng của trò chơi với yêu cầu của người chơi (3) Truy cập dữ liệu và trả lại thông tin của người chơi.

Người chơi sẽ đưa ra các yêu cầu đối với hệ thống ở một chức năng nào đó và ngay lập tức chức năng đó sẽ đáp ứng yêu cầu đó và người dùng có thể thực hiện các chức năng con khác bên trong chức năng đã chọn.

3.4 Sơ đồ mức dưới đỉnh: 3.4.1 Sơ đồ chức năng bắt đầu:

Đây là chức năng cho phép người chơi bắt đầu đầu chơi. Trong khi chơi, người chơi có thể tạm dừng , tiếp tục hay chơi lại trị chơi. Trên điện thoại Lumia có phím chức năng quay lại () sẽ sử dụng phím này để tạm dừng trò chơi và cài đặt một số chức năng khác.

Hình 4.7 Sơ đồ chức năng bắt đầu(1) Yêu cầu người chơi đối với trò chơi. (1) Yêu cầu người chơi đối với trò chơi.

(2) Đáp ứng của trò chơi với yêu cầu của người chơi.

(3) Khởi tạo trò chơi ban đầu.

(4) Cập nhật lại dữ liệu về vị trí của các đối tượng trong bộ nhớ.

3.4.2 Sơ đồ chức năng cài đặt

Chức năng này cho phép ta thiết lập các lựa chọn chung cho trò chơi, lựa chọn đó là người chơi có thể tắt/ bật âm thanh, chọn ngơn ngữ hiển thị, mức độ (dễ, trung bình, khó), vị trí bảng điểm (trái,phải).

Hình 4.8 Sơ đồ chức năng cài đặt(1) Yêu cầu của người chơi đối với trò chơi. (1) Yêu cầu của người chơi đối với trò chơi.

(2) Đáp ứng của trò chơi với yêu cầu của người chơi.

(3) Lấy dữ liệu và ghi lại dữ liệu mới từ dữ liệu đã có.

Hình 4.9 Sơ đồ chức năng thơng tin trị chơi

(1) Yêu cầu của người chơi đối với trò chơi.

(2) Đáp ứng của trò chơi với yêu cầu của người chơi.

(3) Lấy thơng tin về trị chơi trong dữ liệu.

Từ hình trên ta thấy đây là chức năng giúp cho người chơi biết thông tin về người đã viết trò chơi này

3.4.4 Sơ đồ chức năng hướng dẫn

Hình 4.10 Sơ đồ chức năng hướng dẫn(1) Yêu cầu của người chơi đối với trò chơi. (1) Yêu cầu của người chơi đối với trò chơi.

(2) Đáp ứng của trò chơi với yêu cầu của người chơi.

(3) Lấy thông tin hướng dẫn cách chơi trong dữ liệu. Đây là chức năng hướng dẫn cách chơi, hướng dẫn dùng tay chạm trên điện thoại cảm ứng để di chuyển máy bay hay các chức năng khác trong quá trình chơi.

4. Một số giải thuật trong trị chơi

- Tại mỗi vị trí mới của viên đạn ta sẻ kiểm tra xem tại đó viên đạn có trúng phi thuyền khơng. Nếu có thì sẽ trả về giá trị 1 cịn khơng thì trả về giá trị 0.

- Một viên đạn bắn trúng phi thuyền nếu tọa độ của viên đạn nằm bên trong phi thuyền.

- Thông số đã biết như : tọa độ hiện thời của viên đạn, vị trí hình

Một phần của tài liệu 37234_phanthanhhai_baocaotn (Trang 48)

Tải bản đầy đủ (DOCX)

(71 trang)
w