LỜI NÓI ĐẦU Ngày nay khi công nghệ thông tin ngày càng phát triển và nhu cầu giải trí của con người ngày càng cao thì việc vận dụng công nghệ thông tin vào việc xây dựng các ứng dụng gam
Trang 1MỤC LỤC
DANH MỤC HÌNH ẢNH 3
LỜI CẢM ƠN 5
CHƯƠNG 1 CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ THỰC HIỆN 7
1.1 Tổng quan về CodeIgniter 7
1.1.1 Giới thiệu về Codeigniter 7
1.1.2 Tính năng 7
1.1.3 Ưu điểm và nhược điểm của CodeIgniter 9
1.1.4 Cài đặt CodeIgniter 12
1.1.5 Giới thiệu về PHP và MySQL 14
1.1.6 Cài đặt Wamppserver trên localhost 19
Chương 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 21
2.1 Giới thiệu trò chơi cờ caro 21
2.1.1 Luật chơi cờ caro 21
2.1.2 Giới thiệu về Web Service 22
2.2 Phân tích và thiết kế hệ 23
2.2.1 Tác nhân và các user 23
2.2.2 Biểu đồ Use Case (UC) 23
2.2.3 Đặc tả một số UC chính 25
2.3 Thiết kế hệ thống 32
2.4 Biểu đồ lớp các ca sử dụng 33
2.5 Biểu đồ triển khai 33
2.6 Biểu đồ quan hệ thực thể 34
Chương 3 XÂY DỰNG CHƯƠNG TRÌNH 35
3.1 Ý tưởng xây dựng 35
3.2 Kịch bản xây dựng chương trình 35
3.3 Xây dựng chương trình 36
3.3.1 Màn hình chính 36
Trang 23.3.2 Màn hình đăng nhập 37
3.3.3 Màn hình đăng ký 37
3.3.4 Màn hình load phòng game 38
3.3.5 Màn hình thi đấu 39
3.3.6 Màn hình hỗ trợ 40
KẾT LUẬN 42
TÀI LIỆU THAM KHẢO 43
Trang 3DANH MỤC HÌNH ẢNH
Hình1.1: Mô hình MVC 9
Hình 1.2: Mô hình MVC trong dự án website 10
Hình 2.1:Biểu đồ UC mức tổng thể 24
Hình 2.2: Biểu đồ UC chi tiết tác nhân quản trị hệ thống 24
Hình 2.3: Biểu đồ UC chi tiết tác nhân người chơi 25
Hình 2.4: Biểu đồ trình tự UC đăng ký thành viên 26
Hình 2.5: Biểu đồ trình tự UC đăng nhập hệ thống 28
Hình 2.6: Biểu đồ trình tự UC load DS phòng 29
Hình 2.7 : Biểu đồ lớp ca sử dụng đăng ký 33
Hình 2.8: Biểu đồ lớp ca sử dụng đăng nhập 33
Hình 2.9: Biểu đồ triển khai 34
Hình 2.10: Biểu đồ quan hệ thực thể 34
Hình 3.1 : Màn hình trang chủ 36
Hình 3.2 : Màn hình đăng nhập 37
Hình 3.3: Màn hình đăng ký 38
Hình 3.4: Màn hình load danh sách phòng game 39
Hình 3.6: Màn hình thi đấu 40
Hình 3.7: Màn hình trợ giúp 41
Trang 4LỜI NÓI ĐẦU
Ngày nay khi công nghệ thông tin ngày càng phát triển và nhu cầu giải trí của con người ngày càng cao thì việc vận dụng công nghệ thông tin vào việc xây dựng các ứng dụng game trên internet để đáp ứng nhu cầu của con người là một hướng đi không còn mới mẻ với chúng ta Nhưng việc đó vẫn chưa hết hấp dẫn hiện nay Và đó là một trong những nghề hái ra tiền nhất khi vận dụng công nghệ thông tin
Bắt nguồn từ những lợi ích mà các webgame mang lại, cùng với sự hướng
dẫn của cô giáo Nguyễn Hiền Trinh, em đã thực hiện đề tài “Xây dựng webgame cờ caro và chat online”
Là một sinh viên ngành Công nghệ thông tin đang học tập trong Trường Đại Học Công Nghệ Thông Tin Và Truyền Thông Thái Nguyên em luôn cố
gắng học hỏi và trang bị cho mình những kỹ năng cần thiết Với mục đích tổng hợp những kiến thức đã học vào tìm hiểu và vận dụng để giải quyết các công việc thực tiễn, đặc biệt dưới sự hướng dẫn nhiệt tình của cô giáo hướng dẫn và
sự nỗ lực của bản thân, em đã hoàn thành đề tài của mình đúng thời gian
Đề tài đã thực hiện khảo sát, phân tích, thiết kế và xây dựng ứng dụng trong thực tế Để xây dựng được một Website theo đúng yêu cầu cần giải quyết một số công việc sau:
- Tìm hiểu về mã nguồn mở CodeIgniter và sử dụng các kỹ thuật ajax để hiểu một cách sâu sắc ngôn ngữ này và cách hoạt động của nó theo mô hình MVC
- Phân tích, thiết kế và xây dựng Webgame cờ caro có chat online dành cho người chơi
Nội dung chính của đề tài bao gồm:
Chương 1: Cơ sở lý thuyết và công cụ thực hiện Chương 2: Phân tích và thiết kế hệ thống
Chương 3: Xây dựng chương trình
Trang 5LỜI CẢM ƠN
Lời đầu tiên em xin gửi lời cảm ơn tới các thầy cô trường đại học Công nghệ Thông tin và Truyền thông, đặc biệt là các thầy cô trong khoa Công nghệ thông tin đã trang bị cho em nền tảng vững chắc về kiến thức chuyên ngành, kiến thức lập trình và nhiều lĩnh vực liên quan khác
Trong quá trình làm đồ án mặc dù đã có nhiều cố gắng nhưng kinh nghiệm còn chưa nhiều nên thiết kế và xây dựng sản phẩm của em không thể tránh khỏi những thiếu sót Em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của toàn thể các thầy cô giáo để thiết kế của em ngày càng hoàn thiện hơn nữa
Có được kết quả tốt như vậy, phải nói đến công lao chỉ bảo của cô giáo
Nguyễn Hiền Trinh Em xin chân thành cảm ơn thầy,cô cùng các thầy cô giáo trong Trường ĐH công nghệ thông tin và truyền thông- Đại học Thái Nguyên đã nhiệt tình tạo điều kiện và hướng dẫn em hoàn thành đồ án này
Em xin chân thành cảm ơn ! Sinh viên thực hiện
Trang 6LỜI CAM ĐOAN
Để hoàn thành đồ án tốt nghiệp đúng thời gian quy định và đáp ứng được yêu cầu đề ra, em đã cố gắng tìm hiểu, học hỏi, tích lũy kiến thức đã học em có tham khảo một số tài liệu đã nêu trong phần “Tài liệu tham khảo” nhưng không sao chép nội dung từ bất kỳ đồ án nào khác
Em xin cam đoan những lời trên là đúng, mọi thông tin sai lệch em xin hoàn toàn chịu trách nhiệm trước Hội đồng
Thái nguyên, ngày tháng năm 2017
Sinh viên Nguyễn Thị Thúy Lành
Trang 7Chương 1
CƠ SỞ LÝ THUYẾT VÀ CÔNG CỤ THỰC HIỆN
1.1 Tổng quan về CodeIgniter
1.1.1 Giới thiệu về Codeigniter
Codeignter là một nền tảng ứng dụng web (web application framework) nguồn mở được dùng để xây dựng các ứng dụng web động tương tác với PHP
Nó cho phép các nhà phát triển xây dựng một ứng dụng web nhanh hơn - so với việc viết mã hỗn tạp – bằng cách cung cấp 1 bộ thư viện đầy đủ cho các tác vụ thông thường, cũng như cung cấp một mô hình tương tác đơn giản và dễ hiểu cho việc kết nối tới nhwungx bộ thư viện đó Phiên bản chính thức đầu tiên của Codeigniter được công bố vào 28/ 2/ 2006 Phiên bản mới nhất hiện nay là 3.1.4 Codeigniter là một framework viết bằng ngôn ngữ lập trình PHP dựa trên nền tảng MVC (Model – View - Controller) cho phép tạo các trang web để có kịch bản tối thiểu kể từ khi trìn bày và tách biệt với kịch bản PHP, nói đơn giản thì code thuần PHP thì phải tự tổ chức cấu trúc giữa giao diện, xử lý code và cơ sở
Hỗ trợ kết nối và tương tác đa nền tảng cơ sở dữ liệu
Tương tác với cơ sở dữ liệu thông qua active records
Session Management (quản lý Session)
Dịnh dạng và chuẩn hóa form và dữ liệu đầu vào
Hỗ trợ Caching toàn trang để tăng tốc độ thực thi và giảm tải tối thiểu cho máy chủ
Trang 8 Hỗ trợ Template Engine hoặc sử dụng chính PHP tags để điều hướng trong Views
Hỗ trợ Hooks, các lớp ngoại (Class Extensions) và các Plugins
Trong số các mô hình framework MVC khác, CodeIgniter có các ưu điểm sau :
Tương thích hoàn toàn với PHP 4 Nếu sử dụng PHP 5 sẽ dùng được các tính năng hữu ích khác nhưu khả năng gọi phương thức dây chuyền (method chaining ablity)
Mô hình code nhẹ cho hệ thống, cải thiện tốc độ thực thi
Đơn giản trong việc cài đặt, cấu hình và cấu trúc thư mục
Mềm dẻo trong việc định tuyến URI (URI Routing)
Framework này tích hợp thêm vào một số lớp thư viện khác mà các framework khác chưa mặc định tích hợp:
Mã hóa dữ liệu – Data Encryption
Đo lường tốc độ thực thi – Benchmarking
Application Profiling
Lịch – Clendaring Class
User Agent Class
Nén – Zip Encoding Class
Trackback Class
Trang 9 XML – RPC Library
Unit Testing Class
Một lượng lớn các hàm hỗ trợ
1.1.3 Ưu điểm và nhược điểm của CodeIgniter
CodeIgniter được đánh giá là một PHP framework có tốc độ nhanh nhất hiện nay Bằng cơ chế lưu nội dung vào bộ đệm (cache), kiểm tra bộ đệm trước
khi tiến hành thực hiện yêu cầu, CodeIgniter giảm số lần truy cập và xử lý dữ liệu, từ đó tối ưu hóa tốc độ tải trang
Ưu điểm
Được thiết kế theo mô hình Model-View-Controller
Mô hình MVC giúp tách thành phần hiển thị giao diện (presentation)
và xử lý (business logic) của một phần mềm thành những thành phần độc lập, từ đó giúp cho việc thiết kế, xử lý và bảo trì mã nguồn dễ dàng, đồng thời tăng khả năng mở rộng của phần mềm
Hình1.1: Mô hình MVC
Quy trình hoạt động mô hình MVC trong dự án website
Mô hình trên là thể hiện mô hình MVC trong các dự án website và sẽ hoạt động theo quy trình sau:
Trang 10Hình 1.2: Mô hình MVC trong dự án website
- Người dùng sử dụng một BROWSER trình duyệt web bất kỳ (Firefox, Chrome, IE,…) để có thể gửi những yêu cầu (HTTP Request) có thể kèm theo những dữ liệu nhập tới những CONTROLLER xử lý tương ứng Việc xác định Controllerr xử lý sẽ dựa vào một bộ Routing điều hướng
- Khi CONTROLLER nhận được yêu cầu gửi tới, nó sẽ chịu trách nhiệm kiểm tra yêu cầu đó có cần dữ liệu từ MODEL hay không? Nếu có, nó sẽ sử dụng các class/function cần thiết trong MODEL và nó sẽ trả ra kết quả( Resulting Arrays), khi đó CONTROLLER sẽ xử lý giá trị đó và trả ra VIEW để hiển thị CONTROLLER sẽ xác định các VIEW tương ứng để hiển thị đúng với yêu cầu
- Khi nhận được dữ liệu từ CONTROLLER, VIEW sẽ chịu trách nhiệm xây dựng các thành phẩn hiển thị như hình ảnh, thông tin dữ liệu… và trả về GUI Content để CONTROLLER đưa ra kết quả lên màn hình BROWSER
- BROWSER sẽ nhận giá trị trả về( HTTP Response) và sẽ hiển thị với người dùng Kết thúc một quy trình hoạt động
CodeIgniter vận dụng mô hình này trong thiết kế, giúp tách biệt các tập tin giao diện với các tập tin xử lý dữ liệu, nâng cao khả năng quản lý và dễ
Trang 11bảo trì Nhỏ gọn: Gói cài đặt chỉ 404KB (không bao gồm phần User Guide) So với các PHP framework khác như CakePHP (1.3MB), Symfony (5.08MB) hay Zend Framework (5.66MB)…kích thước của CodeIgniter giúp giảm thiểu đáng kể không gian lưu trữ
Tốc độ nhanh
CodeIgniter được đánh giá là một PHP framework có tốc độ nhanh nhất hiện nay Bằng cơ chế lưu nội dung vào bộ đệm (cache), kiểm tra bộ đệm trước khi tiến hành thực hiện yêu cầu, CodeIgniter giảm số lần truy cập và xử
lý dữ liệu, từ đó tối ưu hóa tốc độ tải trang
Miễn phí
CodeIgniter được phát hành dưới giấy phép Apache/BSD mở rộng, cho phép người dùng tự do thay đổi, phát triển và phân phối mã nguồn Hỗ trợ Search Engine Optimization: Cấu trúc URL của CodeIgniter rất thân thiện với các robot tìm kiếm
Hệ thống thư viện phong phú
CodeIgniter cung cấp các thư viện phục vụ cho những tác vụ thường gặp nhất trong lập trình web, chẳng hạn như truy cập cơ sở dữ liệu, gửi email, kiểm tra dữ liệu, quản lý session, xử lý ảnh…đến những chức năng nâng cao như XML-RPC, mã hóa, bảo mật…
Bảo mật hệ thống
Cơ chế kiểm tra dữ liệu chặt chẽ, ngăn ngừa XSS và SQL Injection của CodeIgniter giúp giảm thiểu các nguy cơ bảo mật cho hệ thống
Nhược điểm
Chưa hỗ trợ Object Relational Mapping
Object Relational Mapping (ORM) [25] là một kỹ thuật lập trình, trong
đó các bảng của cơ sở dữ liệu được ánh xạ thành các đối tượng trong chương trình Kỹ thuật này giúp cho việc thực hiện các thao tác trong cơ
sở dữ liệu (Create Read Update Delete – CRUD) dễ dàng, mã nguồn ngắn gọn hơn Hiện tại, CodeIgniter vẫn chưa hỗ trợ ORM
Trang 12Chưa hỗ trợ AJAX
AJAX (Asynchronous JavaScript and XML) [26] đã trở thành một phần không thể thiếu trong bất kỳ ứng dụng Web 2.0 nào AJAX giúp nâng cao tính tương tác giữa người dùng và hệ thống, giúp cho người dùng có cảm giác như đang sử dụng ứng dụng desktop vì các thao tác đều diễn ra “tức thời” Hiện tại, CodeIgniter vẫn chưa có thư viện dựng sẵn nào để hỗ trợ xây dựng ứng dụng AJAX Lập trình viên phải sử dụng các thư viện bên ngoài, như jQuery, Script.aculo.us, Prototype hay Mootools…
Chưa hỗ trợ một số module thông dụng
So sánh với framework khác, CodeIgniter không có các module thực thi một số tác vụ thường gặp trong quá trình xây dựng ứng dụng web như Chứng thực người dùng (User Authorization), trình phân tích RSS (RSS Parser) hay trình xử lý PDF…
Chưa hỗ trợ Event-Driven Programming
Event-Driven Programming (EDP) là một nguyên lý lập trình, trong đó các luồng xử lý của hệ thống sẽ dựa vào các sự kiện, chẳng hạn như click chuột, gõ bàn phím không phải là một khuyết điểm to lớn của CodeIgniter
vì hiện tại, chỉ có một số ít framework hỗ trợ EDP, bao gồm Prado, QPHP và Yii
Giải nén file vừa tải về vào thư mục “caro”
Tìm đến thư mục “config” trong thư mục “system/ application” để chỉnh sửa một số file nhằm cấu hình cho ứng dụng
Bước 4:
Tìm đến file “config.php” và thêm vào các dòng lệnh:
Trang 14(Có bật tính năng nhìn thấy lỗi hay không, nếu để là TRUE thì sẽ nhìn thấy lỗi khi trang web có lỗi)
$db['default']['cache_on'] = FALSE;
(Bật tắt tính năng để sử dụng hay không sử dụng cache, nếu để FALSE thì cache không được bật)
(Cài đặt thư mục lưu cache)
1.1.5 Giới thiệu về PHP và MySQL
1.1.5.1 Giới thiệu về PHP
PHP (Hypertext Preprocessor) là một ngôn ngữ lập trình kịch bản hay một loại mã lệnh chủ yếu được dùng để phát triển các ứng dụng viết cho máy chủ, mã nguồn mở, dùng cho mục đích tổng quát Nó rất thích hợp với web và
có thể dễ dàng nhúng vào trang HTML Do được tối ưu hóa cho các ứng dụng web, tốc độ nhanh, nhỏ gọn, cú pháp giống C và Java, dễ học và thời gian xây dựng sản phẩm tương đối ngắn hơn so với các ngôn ngữ khác nên PHP đã nhanh chóng trở thành một ngôn ngữ lập trình web phổ biến nhất thế giới Cặp thẻ <?php ?> sẽ đánh đấu sự bắt đầu và sự kết thúc của phần mã PHP qua đó máy chủ biết để xử lý và dịch mã cho đúng Đây là một điểm khá tiện lợi của PHP giúp cho việc viết mã PHP trở nên khá trực quan và dễ dàng trong việc xây dựng phần giao diện ứng dụng HTTP
Ngôn ngữ, các thư viện, tài liệu gốc của PHP được xây dựng bởi cộng đồng và có sự đóng góp rất lớn của Zend Inc., công ty do các nhà phát triển lõi của PHP lập nên nhằm tạo ra một môi trường chuyên nghiệp để đưa PHP phát triển ở quy mô doanh nghiệp
Lịch sử phát triển của PHP
PHP được phát triển từ một sản phẩm có tên là PHP/FI PHP/FI do Rasmus Lerdorf tạo ra năm 1995, ban đầu được xem như là một tập con đơn giản của các mã kịch bản Perl để theo dõi tình hình truy cập đến bản sơ yếu lý lịch của ông trên mạng Ông đã đặt tên cho bộ mã kịch bản này là 'Personal
Trang 15Home Page Tools'.Khi cần đến các chức năng rộng hơn, Rasmus đã viết ra một bộ thực thi bằng C lớn hơn để có thể truy vấn tới các cơ sở dữ liệu và giúp cho người sử dụng phát triển các ứng dụng web đơn giản.Rasmus đã quyết định công bố mã nguồn của PHP/FI cho mọi người xem, sử dụng cũng như sửa các lỗi có trong nó đồng thời cải tiến mã nguồn
PHP/FI, viết tắt từ "Personal Home Page/Forms Interpreter", bao gồm một số các chức năng cơ bản cho PHP như ta đã biết đến chúng ngày nay Nó
có các biến kiểu như Perl, thông dịch tự động các biến của form và cú pháp HTML nhúng Cú pháp này giống như của Perl, mặc dù hạn chế hơn nhiều, đơn giản và có phần thiếu nhất quán
Vào năm 1997, PHP/FI 2.0, lần viết lại thứ hai của phiên bản C, đã thu hút được hàng ngàn người sử dụng trên toàn thế giới với xấp xỉ 50.000 tên miền đã được ghi nhận là có cài đặt nó, chiếm khoảng 1% số tên miền có trên mạng Internet Tuy đã có tới hàng nghìn người tham gia đóng góp vào việc tu chỉnh mã nguồn của dự án này thì vào thời đó nó vẫn chủ yếu chỉ là dự án của một người
PHP/FI 2.0 được chính thức công bố vào tháng 11 năm 1997, sau một thời gian khá dài chỉ được công bố dưới dạng các bản beta Nhưng không lâu sau đó, nó đã được thay thế bởi các bản alpha đầu tiên của PHP 3.0
PHP 3
PHP 3.0 là phiên bản đầu tiên cho chúng ta thấy một hình ảnh gần gũi với các phiên bản PHP mà chúng ta được biết ngày nay Nó đã được Andi Gutmans và Zeev Suraski tạo ra năm 1997 sau khi viết lại hoàn toàn bộ mã nguồn trước đó Lý do chính mà họ đã tạo ra phiên bản này là do nhận họ thấy PHP/FI 2.0 hết sức yếu kém trong việc phát triển các ứng dụng thương mại điện tử mà họ đang xúc tiến trong một dự án của trường đại học Trong một nỗ lực hợp tác và bắt đầu xây dựng dựa trên cơ sở người dùng đã có của PHP/FI, Andi, Rasmus và Zeev đã quyết định hợp tác và công bố PHP 3.0
Trang 16như là phiên bản thế hệ kế tiếp của PHP/FI 2.0, và chấm dứt phát triển PHP/FI 2.0
Một trong những sức mạnh lớn nhất của PHP 3.0 là các tính năng mở rộng mạnh mẽ của nó Ngoài khả năng cung cấp cho người dùng cuối một cơ
sở hạ tầng chặt chẽ dùng cho nhiều cơ sở dữ liệu, giao thức và API khác nhau, các tính năng mở rộng của PHP 3.0 đã thu hút rất nhiều nhà phát triển tham gia và đề xuất các mô đun mở rộng mới Hoàn toàn có thể kết luận được rằng đây chính là điểm mấu chốt dẫn đến thành công vang dội của PHP 3.0.Các tính năng khác được giới thiệu trong PHP 3.0 gồm có hỗ trợ cú pháp hướng đối tượng và nhiều cú pháp ngôn ngữ nhất quán khác
Ngôn ngữ hoàn toàn mới đã được công bố dưới một cái tên mới, xóa bỏ mối liên hệ với việc sử dụng vào mục đích cá nhân hạn hẹp mà cái tên PHP/FI 2.0 gợi nhắc Nó đã được đặt tên ngắn gọn là 'PHP', một kiểu viết tắt hồi quy của "PHP: Hypertext Preprocessor"
Vào cuối năm 1998, PHP đã phát triển được con số cài đặt lên tới hàng chục ngàn người sử dụng và hàng chục ngàn Web site báo cáo là đã cài nó.Vào thời kì đỉnh cao, PHP 3.0 đã được cài đặt cho xấp xỉ 10% số máy chủ Web có trên mạng Internet
PHP 3.0 đã chính thức được công bố vào tháng 6 năm 1998, sau thời gian 9 tháng được cộng đồng kiểm nghiệm
PHP 4
Mùa đông năm 1998, ngay sau khi PHP 3.0 chính thức được công bố, Andi Gutmans và Zeev Suraski đã bắt đầu bắt tay vào việc viết lại phần lõi của PHP Mục đích thiết kế là nhằm cải tiến tốc độ xử lý các ứng dụng phức tạp, và cải tiến tính mô đun của cơ sở mã PHP Những ứng dụng như vậy đã chạy được trên PHP 3.0 dựa trên các tính năng mới và sự hỗ trợ khá nhiều các
cơ sở dữ liệu và API của bên thứ ba, nhưng PHP 3.0 đã không được thiết kế
để xử lý các ứng dụng phức tạp như thế này một cách có hiệu quả
Trang 17Một động cơ mới, có tên 'Zend Engine' (ghép từ các chữ đầu trong tên của Zeev và Andi), đã đáp ứng được các nhu cầu thiết kế này một cách thành công, và lần đầu tiên được giới thiệu vào giữa năm 1999 PHP 4.0, dựa trên động cơ này, và đi kèm với hàng loạt các tính năng mới bổ sung, đã chính thức được công bố vào tháng 5 năm 2000, gần 2 năm sau khi bản PHP 3.0 ra đời Ngoài tốc độ xử lý được cải thiện rất nhiều, PHP 4.0 đem đến các tính năng chủ yếu khác gồm có sự hỗ trợ nhiều máy chủ Web hơn, hỗ trợ phiên làm việc HTTP, tạo bộ đệm thông tin đầu ra, nhiều cách xử lý thông tin người
sử dụng nhập vào bảo mật hơn và cung cấp một vài các cấu trúc ngôn ngữ mới
Với PHP 4, số nhà phát triển dùng PHP đã lên đến hàng trăm nghìn và hàng triệu site đã công bố cài đặt PHP, chiếm khoảng 20% số tên miền trên mạng Internet
Nhóm phát triển PHP cũng đã lên tới con số hàng nghìn người và nhiều nghìn người khác tham gia vào các dự án có liên quan đến PHP như PEAR, PECL và tài liệu kĩ thuật cho PHP
PHP 5
Sự thành công hết sức to lớn của PHP 4.0 đã không làm cho nhóm phát triển PHP tự mãn.Cộng đồng php đã nhanh chóng giúp họ nhận ra những yếu kém của PHP 4 đặc biệt với khả năng hỗ trợ lập trình hướng đối tượng (OOP), xử lý XML, không hỗ trợ giao thức máy khách mới của MySQL 4.1
và 5.0, hỗ trợ dịch vụ web yếu Những điểm này chính là mục đích để Zeev
và Andi viết Zend Engine 2.0, lõi của PHP 5.0 Một thảo luận trên Slashdot
đã cho thấy việc phát triển PHP 5.0 có thể đã bắt đầu vào thời điểm tháng 12 năm 2002 nhưng những bài phỏng vấn Zeev liên quan đến phiên bản này thì
đã có mặt trên mạng Internet vào khoảng tháng 7 năm 2002 Ngày 29 tháng 6 năm 2003, PHP 5 Beta 1 đã chính thức được công bố để cộng đồng kiểm nghiệm.Đó cũng là phiên bản đầu tiên của Zend Engine 2.0 Phiên bản Beta 2 sau đó đã ra mắt vào tháng 10 năm 2003 với sự xuất hiện của hai tính năng rất
Trang 18được chờ đợi: Iterators, Reflection nhưng namespaces một tính năng gây tranh cãi khác đã bị loại khỏi mã nguồn Ngày 21 tháng 12 năm 2003: PHP 5 Beta 3 đã được công bố để kiểm tra với việc phân phối kèm với Tidy, bỏ hỗ trợ Windows 95, khả năng gọi các hàm PHP bên trong XSLT, sửa chữa nhiều lỗi và thêm khá nhiều hàm mới PHP 5 bản chính thức đã ra mắt ngày 13 tháng 7 năm 2004 sau một chuỗi khá dài các bản kiểm tra thử bao gồm Beta
4, RC 1, RC2, RC3 Mặc dù coi đây là phiên bản sản xuất đầu tiên nhưng PHP 5.0 vẫn còn một số lỗi trong đó đáng kể là lỗi xác thực HTTP
Ngày 14 tháng 7 năm 2005, PHP 5.1 Beta 3 được PHP Team công bố đánh dấu sự chín muồi mới của PHP với sự có mặt của PDO, một nỗ lực trong việc tạo ra một hệ thống API nhất quán trong việc truy cập cơ sở dữ liệu và thực hiện các câu truy vấn Ngoài ra, trong PHP 5.1, các nhà phát triển PHP tiếp tục có những cải tiến trong nhân Zend Engine 2, nâng cấp mô đun PCRE lên bản PCRE 5.0 cùng những tính năng và cải tiến mới trong SOAP, streams và SPL
PHP 6
Hiện nay phiên bản tiếp theo của PHP đang được phát triển, PHP 6 bản
sử dụng thử đã có thể được download tại địa chỉ http://snaps.php.net Phiên bản PHP 6 được kỳ vọng sẽ lấp đầy những khiếm khuyết của PHP ở phiên bản hiện tại, ví dụ: hỗ trợ namespace (hiện tại các nhà phát triển vẫn chưa công bố rõ ràng về vấn đề này); hỗ trợ Unicode; sử dụng PDO làm API chuẩn cho việc truy cập cơ sở dữ liệu, các API cũ sẽ bị đưa ra thành thư viện
PECL
1.1.5.2 Hệ quản trị cơ sở dữ liệu MySQL
MySQL là hệ quản trị cơ sở dữ liệu tự do nguồn mở phổ biến nhất thế giới và được các nhà phát triển rất ưa chuộng trong quá trình phát triển ứng dụng Vì MySQL là cơ sở dữ liệu tốc độ cao, ổn định và dễ sử dụng, có tính khả chuyển, hoạt động trên nhiều hệ điều hành cung cấp một hệ thống lớn các hàm tiện ích rất mạnh.Với tốc độ và tính bảo mật cao, MySQL rất thích hợp
Trang 19cho các ứng dụng có truy cập CSDL trên internet MySQL miễn phí hoàn toàn cho nên có thể tải về MySQL từ trang chủ Nó có nhiều phiên bản cho các hệ điều hành khác nhau: phiên bản Win32 cho các hệ điều hành dòng Windows, Linux, Mac OS X, Unix, FreeBSD, NetBSD, Novell NetWare, SGI Irix, Solaris, SunOS,
MySQL là một trong những ví dụ rất cơ bản về Hệ Quản trị Cơ sở dữ liệu quan hệ sử dụng Ngôn ngữ truy vấn có cấu trúc (SQL)
MySQL được sử dụng cho việc bổ trợ PHP, Perl, và nhiều ngôn ngữ khác,
nó làm nơi lưu trữ những thông tin trên các trang web viết bằng PHP hay Perl,
1.1.6 Cài đặt Wamppserver trên localhost
Wampserver là chữ viết tắt của Windows – Apache – MySQL – PHP Wampserver là chường trình tạo máy chủ web với mục đích giúp cho người lập trình web có thể chạy các ứng dụng web trên máy cá nhân (localhost) trước khi chuyển lên chạy chính thức trên web
Bước 1: Tải chương trình wampserver từ website của nhà cung cấp tại địa
wampserver2.5-Apache-2.4.9-Mysql-5.6.17-Lưu ý: khi cài đặt Wampserver bạn cần phải cài đặt Visual C++
Redistributable for Visual Studio 2012 tránh tình trạng báo lỗi thiếu file không khởi động được wamp
Ban có thể down và cài đặt về máy tại link us/download/details.aspx?id=30679
https://www.microsoft.com/en-Việc cài đặt hoàn toàn đơn giản, nếu khi cài đặt có báo lỗi là bạn chưa cài Visual C++ link ở trên Cần cài Visual C++ và gỡ Wamp ra cài lại từ đầu
Bước 2: Cài đặt wampserver
Trang 20Chúng ta click vào file mới tải về để chạy chương trình cài đặt Và tiến hành cài đặt
Lưu ý: khi khởi động wamp, nếu bạn có cài Skype và đang đăng nhập thì
bạn nên thoát nick và ứng dụng Skype ra, để skype không giành port 80 khi chạy web nha Sau khi khởi động wamp báo hiệu xanh như hình dưới rồi login Skype lại là được
Trang 21Chương 2 PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
2.1 Giới thiệu trò chơi cờ caro
Cờ caro là một trò chơi trí tuệ, đòi hỏi người chơi phải nhanh trí trong khi chơi Nó là một trò chơi nhỏ hấp dẫn và không thiếu phần sáng tạo, chắc chắn ai cũng từng trải nghiệm qua trò chơi này trong những lúc xả stress cùng bạn bè Nhưng trong cuộc sống hiện đại ngày nay chúng ta không thể trực tiếp ngồi chơi
cờ cùng nhau Vì vậy, cờ caro online đã ra đời phục vụ nhu cầu đó
2.1.1 Luật chơi cờ caro
Luật chơi cũng có đôi chỗ khác nhau, nhưng luật cơ bản là hai bên thay phiên nhau đi những nước đi (bằng các dấu X, O hoặc bằng các quân cờ đen, trắng), bên nào có đường 5 quân liền nhau trên một hàng, một cột hoặc một đường chéo là thắng
Trong môn cờ carô, bên đi trước luôn có lợi thế rất lớn, thậm chí L.Victor Allis còn chứng minh được rằng trong cờ carô tự do, bên đi trước luôn luôn thắng Chính vì vậy, người ta đưa ra một số luật bổ sung để hạn chế lợi thế của người đi trước (quân đen) và tăng cường khả năng phòng thủ của người đi sau
Chẳng hạn, trong luật chơi cờ ca-rô của Việt Nam, người nào đi được 5 quân nhưng đã bị chặn trước ở 2 đầu sẽ không thắng Một số nơi thì không công nhận 6 quân liền nhau là thắng, một số nơi lại không công nhận bẫy 3 x
3 (tức là nước đi tạo thành 2 hàng 3 chưa có quân chặn của đối phương sẽ bị cấm) …
Trong các luật bổ sung như vậy thì luật renju (theo tên gọi của người Nhật) là phức tạp và chặt chẽ nhất, đồng thời cũng giúp cân bằng cơ hội của quân trắng (đi sau) với quân đen Xin giải thích ngắn gọn các luật cơ bản như sau: Ván cờ được chơi trên bàn cờ n x n dòng kẻ ( số dòng kẻ có thể là 10 hoặc 15 hoặc một số bất kì) Hai bên sẽ thay phiên nhau đi những quân cờ vào giao điểm của các hàng ngang và cột dọc Luật thắng cờ ca-rô được tính