View Single Post
  #1  
Old 19-06-2012, 08:49
mankichi4589 mankichi4589 vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: Jan 2010
Tuổi: 30
Bài gởi: 17
Thanks: 11
Thanked 9 Times in 8 Posts
Game Tic Tac Toe - NTA

Yêu cầu
- Thiết kế game Tic Tac Toe : 9 ô tương ứng với 9 button.
- Người chơi sẽ chơi với máy ở cấp độ dễ. Người chơi đánh X, máy tự động đánh O (random một vị trí bất kì)
- Khi 1 hàng ngang hay dọc hay chéo đều là X thì người chơi thắng, còn đều là O thì người chơi thua. Nếu đánh hết 9 ô mà không ai thắng thì hòa


Demo
[YOUTUBE]10X1Dgh4pnM[/YOUTUBE]
Code
Ánh xạ

File .h

File .m
Ý tưởng làm :
+Đầu tiên ta tạo một mảng a chứa 9 phần tử tương ứng với 9 ô.
+Khi người chơi đánh X máy sẽ đánh O ở vị trí random.
+Giá trị mặc định của mỗi ô là -1.
+Khi người chơi đánh X thì giá trị đổi thành 1.
+Máy đánh O thì giá trị đổi thành 2
+Do có 9 ô nên sẽ có 8 khả năng X thắng (3 hàng dọc, 3 hàng ngang, 2 hàng chéo) và tương tự 8 trường hợp cho O =>16 trường hợp kiểm tra thắng thua . Nếu không rơi vào 16 trường hợp trên thì hòa cờ.
Xây dựng chương trình:
// viewDidLoad

- Mảng a chứa 9 phần tử mang giá trị -1
- Biến countNumber là để đếm số ô đã được đánh (dùng nó để dừng việc đánh khi đủ 9 ô)
- Biến check dùng để kiểm tra nếu X hoặc O thắng thì dừng không cho máy đánh nữa
//Action của mỗi button

- Action của button 1 : kiểm tra nếu ô đó là rổng (có giá trị -1) thì mới cho người dùng đánh
- Người chơi đánh X thì ta đổi giá trị -1 thành 1 (remove -1 và insert 1) và gán hình ảnh X vào
- Phát sinh random O (gọi hàm random)
- Gọi hàm kiểm tra thắng thua
- Làm tương tự cho 8 button còn lại.
//Hàm random (máy đánh)

-Tương tự case 1 đến case 7

- Điều kiện trong hàm while
+Phát sinh số ngẫu nhiên cho tới khi không trùng với ô đã đánh (flag=FALSE)
+Kiểm tra còn ô trống thì mới cho đánh(countNumber<9)
+Nếu X hoặc O thắng thì không đánh nữa(check == TRUE)
- Còn trong switch case thì tương tự như khi đánh X, khác là O thì thay -1 bằng 2
//Hàm kiểm tra thắng thua
Kiểm tra xem X thắng

Kiểm tra xem O thắng

Kiểm tra hoà

//Hàm reset


File .ipa, mọi người test trên iPhone dùm nha
http://www.mediafire.com/?hp4ec6ke05vc5w3

thay đổi nội dung bởi: mankichi4589, 21-06-2012 lúc 23:57
Trả Lời Với Trích Dẫn
Những người sau đây đã gửi lời cảm ơn mankichi4589 vì bài viết hữu ích này: