Trung Tâm Đào Tạo Mạng Máy Tính Nhất Nghệ   Trung Tâm Đào Tạo Mạng Máy Tính Nhất Nghệ
Trang Chủ Giới Thiệu Chương Trình Học Tài Liệu Lịch Khai Giảng Học Phí Việc Làm Lộ trình học

Go Back   Trung Tâm Đào Tạo Mạng Máy Tính Nhất Nghệ > WEB - ĐỒ HỌA - LẬP TRÌNH > LẬP TRÌNH iOS
Đăng Ký Thành Viên Thành Viên Lịch Ðánh Dấu Ðã Ðọc


LẬP TRÌNH iOS THIẾT KẾ ỨNG DỤNG, GAME TRÊN IPHONE, IPAD, IPOD

Vui lòng gõ từ khóa liên quan đến vấn đề bạn quan tâm vào khung dưới , trước khi đặt câu hỏi mới.


Trả lời
 
Ðiều Chỉnh
  #1  
Old 14-06-2012, 19:14
nickykiet83 nickykiet83 vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: Dec 2010
Bài gởi: 16
Thanks: 9
Thanked 3 Times in 3 Posts
Game Đổ xúc xắc - PHẠM QUANG ANH KIỆT

Tạo trước chủ đề thôi, tối nay mới làm! he..he...
Trả Lời Với Trích Dẫn
  #2  
Old 15-06-2012, 11:40
nickykiet83 nickykiet83 vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: Dec 2010
Bài gởi: 16
Thanks: 9
Thanked 3 Times in 3 Posts
Game Đổ Xúc Xắc - PHẠM QUANG ANH KIỆT
Mô tả yêu cầu:
1 - Trò chơi có 2 xúc xắc
2 - Mỗi lần chạy ứng dụng, cho người chơi 100 điểm
3 - Người chơi có thể chọn Tài hoặc Xỉu (Tài <=6, Xỉu >6). Rồi click nút Đổ xúc xắc
4 - Người chơi cũng có thể cược thêm số điểm.
5 - Nếu thắng, người chơi được cộng thêm 20 điểm và số điểm đã cược thêm. Nếu thua, bị trừ 20 điểm và số điểm đã cược thêm
6 - Nếu tổng điểm của người chơi <= 0 điểm, hiện thông báo "Bạn không còn đủ điểm để tiếp tục chơi" và không được Đổ xúc xắc nữa.

Hiện thực chuơng trình:
- Chuơng trình có sử dụng đối tượng NSTimer để quay xúc xắc. Mỗi lần Timer chạy sẽ đổi hình xúc xắc ngẫu nhiên.

1) Thiết kế giao diện và ánh xạ các layout + action như sau:



*Ghi chú: Biến int Diem là biến toàn cục. Biến này dùng để tạo số điểm thắng/thua mỗi lần quay xúc xắc. Theo yêu cầu là 20 điểm cho mỗi lần quay.

2) Viết code như sau tại file .m

PHP Code:

@implementation GameDoXucXacViewController

//biến static (tĩnh) dùng để Stop timer lại. Vì Timer mỗi lần
//chạy lại hàm QuayXucXac thì biến này sẽ bị reset lại = 0 
//nên phải dùng biến tĩnh để không bị thay đổi giá trị.
static int count;

- (
void)viewDidLoad
{
    [
super viewDidLoad];
    
TongDiem 100;
    
Diem 20;
    
lblTongDiem.text = [NSString stringWithFormat:@"%i",TongDiem];
    
lblKetQua.text = @"";
    
imgViewKetQua.hidden YES;
    
sliderDiemCuoc.minimumValue=0;
    
sliderDiemCuoc.maximumValue=100;
    
sliderDiemCuoc.value =0;
    
lblDiemCuoc.text = @"0";
}

[
B]//hàm xử lý sự kiện Button Đổ xúc xắc được Touch[/B]
- (IBAction)btnDoXucXac:(id)sender {
    if(
TongDiem <=0)
    {
        
UIAlertView *alert =[[UIAlertView alloc]initWithTitle:@"Thông Báo"
                                                      
message:@"Bạn không còn đủ điểm để tiếp tục chơi" 
                                                     
delegate:self
                                            cancelButtonTitle
:@"OK"
                                            
otherButtonTitles:nil];
        [
alert show];
        [
alert release];
        return;
    }
    
    
//Disable Slider Điểm Cược khi bắt đầu quay xúc xắc
    
sliderDiemCuoc.enabled NO;
    
imgViewKetQua.hidden YES;
    
lblKetQua.hidden YES;
    
switchTaiXiu.enabled NO;
    

    
timer = [NSTimer scheduledTimerWithTimeInterval:0.1
                                             target
:self
                                           selector
:@selector(QuayXucXacuserInfo:nil
                                             repeats
:YES];
//Đối tượng Timer sẽ gọi hàm QuayXucXac trong khoảng thời gian: 0.1 giây

}

-(
void)QuayXucXac{
    
//Disable Slider Điểm Cược khi bắt đầu quay xúc xắc
    
sliderDiemCuoc.enabled NO;
    
//biến dùng để lấy tên hình
    
NSString *imgxx;
    
//biến lưu số phát sinh ngẫu nhiên
    
int intrandom1,intrandom2;
    
    
//phát sinh số ngẫu nhiên từ 1->6
    
intrandom1 arc4random()%6+1;
    
imgxx = [NSString stringWithFormat:@"%i",intrandom1];
    
//set tên hình vào ImageView Xúc xắc 1
    
imgViewXucXac1.image = [UIImage imageNamed:imgxx];
    
    
//phát sinh số ngẫu nhiên từ 1->6
    
intrandom2 arc4random()%6+1;
    
    
imgxx = [NSString stringWithFormat:@"%i",intrandom2];
    
//set tên hình vào ImageView Xúc xắc 2
    
imgViewXucXac2.image =[UIImage imageNamed:imgxx];
    
     
//count tăng đến 40 thì ngưng timer
    
if (count>=40)
    {
        
//reset lai bien count;
        
count 0;

        [
timer invalidate];
        
int soDiem;
        
soDiem intrandom1 intrandom2;
        
int diemcuoc = (int)sliderDiemCuoc.value;
        
        
//tai <= 6
        
imgViewKetQua.hidden NO;
        
lblKetQua.hidden NO;
        if(
switchTaiXiu.on)
        {
            if(
soDiem<=6)
            {
                
lblKetQua.text = @"WIN: +20 Điểm";
                
imgViewKetQua.image = [UIImage imageNamed:@"emoticon"];
                
                
//Tổng Điểm = Điểm thắng/thua +/- Điểm cược
                
TongDiem TongDiem + (Diem diemcuoc);
            }
            else {
                
lblKetQua.text = @"LOSE: -20 Điểm";
                
imgViewKetQua.image = [UIImage imageNamed:@"lose"];
             
                
//Tổng Điểm = Điểm thắng/thua +/- Điểm cược
                
TongDiem TongDiem - (Diem diemcuoc);         
            }
        }
        else {
        
//xiu >=6
            
if(soDiem>=6)
            {
                
lblKetQua.text = @"WIN: +20 Điểm";
                
imgViewKetQua.image = [UIImage imageNamed:@"emoticon"];
                
                
//Tổng Điểm = Điểm thắng/thua +/- Điểm cược
                
TongDiem TongDiem + (Diem diemcuoc);;
            }
            else {
                
lblKetQua.text = @"LOSE: -20 Điểm";
                
imgViewKetQua.image = [UIImage imageNamed:@"lose"];
                
                
//Tổng Điểm = Điểm thắng/thua +/- Điểm cược
                
TongDiem TongDiem - (Diem diemcuoc);
            }
        }
        
    
lblTongDiem.text = [NSString stringWithFormat:@"%d",TongDiem];
        
//Enable Slider Điểm Cược khi kết thúc quay xúc xắc
        
sliderDiemCuoc.enabled YES;
        
switchTaiXiu.enabled YES;
    }
    
count ++;

Kết quả khi chạy ứng dụng:








thay đổi nội dung bởi: nickykiet83, 15-06-2012 lúc 15:49
Trả Lời Với Trích Dẫn
Những người sau đây đã gửi lời cảm ơn nickykiet83 vì bài viết hữu ích này:
  #3  
Old 15-06-2012, 11:56
iThanh iThanh vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: Jun 2012
Nơi Cư Ngụ: Kon Tum
Bài gởi: 27
Thanks: 10
Thanked 9 Times in 8 Posts
Chưa học mà đã làm được, bác này giỏi quá!
pro pro
Trả Lời Với Trích Dẫn
  #4  
Old 15-06-2012, 12:24
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: 29
Bài gởi: 17
Thanks: 11
Thanked 9 Times in 8 Posts
Hay quá anh! À có một lỗi nhỏ là intrandom2 = arc4random()%5+1; kết quả nó chỉ ra từ 1 đến 5 thôi anh (vì % là lấy số dư nên %5 chỉ ra kết quả là 0,1,2,3,4). Phải %6+1 nó mới từ 1 đến 6.
p/s : học hỏi cái NSTimer
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:
  #5  
Old 15-06-2012, 13:34
nickykiet83 nickykiet83 vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: Dec 2010
Bài gởi: 16
Thanks: 9
Thanked 3 Times in 3 Posts
Trích:
Nguyên văn bởi mankichi4589 View Post
Hay quá anh! À có một lỗi nhỏ là intrandom2 = arc4random()%5+1; kết quả nó chỉ ra từ 1 đến 5 thôi anh (vì % là lấy số dư nên %5 chỉ ra kết quả là 0,1,2,3,4). Phải %6+1 nó mới từ 1 đến 6.
p/s : học hỏi cái NSTimer
Ờ... Đúng rùi! Thanks bạn nhé!!
Trả Lời Với Trích Dẫn
  #6  
Old 15-06-2012, 21:20
nguyenphu1012 nguyenphu1012 vẫn chưa có mặt trong diễn đàn
Mới Đăng Ký
 
Tham gia ngày: Jun 2012
Bài gởi: 1
Thanks: 0
Thanked 0 Times in 0 Posts
Smile

hihi, sao so điểm thắng thua đều là 20d vậy? số điểm cược để làm gì vậy
Trả Lời Với Trích Dẫn
  #7  
Old 16-06-2012, 00:03
nickykiet83 nickykiet83 vẫn chưa có mặt trong diễn đàn
Thành Viên Mới
 
Tham gia ngày: Dec 2010
Bài gởi: 16
Thanks: 9
Thanked 3 Times in 3 Posts
Trích:
Nguyên văn bởi nguyenphu1012 View Post
hihi, sao so điểm thắng thua đều là 20d vậy? số điểm cược để làm gì vậy
Thắng được cộng 20d, thua bị trừ 20đ.
Số điểm cươc thêm nếu bạn muốn kiếm thêm điểm ngoài số điểm 20
Mình demo thì chỉ chụp màn hình để dễ hình dung ứng dụng thôi bạn!
Trả Lời Với Trích Dẫn
  #8  
Old 20-06-2012, 00:52
mrvdkpro mrvdkpro vẫn chưa có mặt trong diễn đàn
Mới Đăng Ký
 
Tham gia ngày: Jun 2012
Tuổi: 26
Bài gởi: 7
Thanks: 4
Thanked 0 Times in 0 Posts
Cho mình hỏi cái slider sao mình kéo nó ko hiện số ở trên vậy bạn dù nó vẫn tính đúng nhưng ko thấy đc số
Trả Lời Với Trích Dẫn
  #9  
Old 20-06-2012, 08:13
mrvdkpro mrvdkpro vẫn chưa có mặt trong diễn đàn
Mới Đăng Ký
 
Tham gia ngày: Jun 2012
Tuổi: 26
Bài gởi: 7
Thanks: 4
Thanked 0 Times in 0 Posts
À mình làm đc rùi thanks mấy bạn nhìu nha lên gg tìm sáng giờ
Trả Lời Với Trích Dẫn
  #10  
Old 14-09-2012, 10:05
cubo22cubo22 cubo22cubo22 vẫn chưa có mặt trong diễn đàn
Mới Đăng Ký
 
Tham gia ngày: Sep 2012
Tuổi: 29
Bài gởi: 1
Thanks: 0
Thanked 0 Times in 0 Posts
cho mình xin source code cái game này được không
Trả Lời Với Trích Dẫn
Trả lời

Bookmarks

Ðiều Chỉnh

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến

Similar Threads
Ðề tài Người Gởi Chuyên mục Trả lời Bài mới gởi
Cáp Quang FPT - Bài học nhớ đời ( các bác biết mà tránh) anhdaica127 Quản Lý Phòng Internet - Games 121 11-09-2014 13:48
Hướng dẫn cách tự rã băng và update games cho hàng loạt máy. lva Quản Lý Phòng Internet - Games 158 04-07-2014 14:57
G-Cafe phần mềm update game tốt nhất hiện nay thanhcapi Quản Lý Phòng Internet - Games 0 19-05-2012 22:59
Hội Thảo : LINUX & WINDOWS INTER-OPERATION My_money Thông Báo và Qui Định 1 21-05-2010 13:56



Múi giờ GMT +7. Hiện tại là 07:40
Powered by: vBulletin Version 3.8.7
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Ad Management by RedTyger