天天看點

老虎機的制作

用UIPickerView制作一個老虎機的效果

ViewController.h:

#import <UIKit/UIKit.h>

@interface DXWViewController :UIViewController<UIPickerViewDataSource,UIPickerViewDelegate>

@property (retain,nonatomic) IBOutlet UIPickerView *picker;

- (IBAction)click:(id)sender;

- (IBAction)OK:(id)sender;

@property(nonatomic,retain)NSArray *images;

@property(nonatomic,retain)NSArray *column1;

@property(nonatomic,retain)NSArray *column2;

@property(nonatomic,retain)NSArray *column3;

@property(nonatomic,retain)NSArray *column4;

@property(nonatomic,retain)NSArray *column5;

@end

ViewController.m:

#import"DXWViewController.h"

@interfaceDXWViewController ()

@implementation DXWViewController

- (void)viewDidLoad

{

    [superviewDidLoad];

    UIImage *image1 = [UIImageimageNamed:@"apple.png"];

    UIImage *image2 = [UIImage imageNamed:@"bar.png"];

    UIImage *image3 = [UIImage imageNamed:@"cherry.png"];

    UIImage *image4 = [UIImage imageNamed:@"crown.png"];

    UIImage *image5 = [UIImage imageNamed:@"lemon.png"];

    UIImage *image6 = [UIImage imageNamed:@"seven.png"];

    self.images =@[image1,image2,image3,image4,image5,image6];

    //建立30個ImageView

    for (int i=0; i<5; i++) {

       UIImageView *imageView1 = [[UIImageViewalloc] initWithImage:image1];

       UIImageView *imageView2 = [[UIImageViewalloc] initWithImage:image2];

       UIImageView *imageView3 = [[UIImageViewalloc] initWithImage:image3];

       UIImageView *imageView4 = [[UIImageViewalloc] initWithImage:image4];

       UIImageView *imageView5 = [[UIImageViewalloc] initWithImage:image5];

       UIImageView *imageView6 = [[UIImageViewalloc] initWithImage:image6];

        NSArray *arr = @[imageView1,imageView2,imageView3,imageView4,imageView5,imageView6];

       NSString *str = [NSString stringWithFormat:@"column%d",i+1];

       //OC特有方法,對一個可能存在可能不存在的變量指派,本來是一個變量,可以轉化成字元串,這樣就可以改變字元串了

        [selfsetValue:arr forKey:str]; //KVC

        [imageView1 release];

        [imageView2 release];

        [imageView3 release];

        [imageView4 release];

        [imageView5 release];

        [imageView6 release];

    }

    srandom(time(NULL));

    //預設選擇在第5000行

        [self.pickerselectRow:5000inComponent:i animated:NO];

}

-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView

    return5;

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component

    return [self.imagescount]*10000;

-(UIView *)pickerView:(UIPickerView *)pickerView viewForRow:(NSInteger)row forComponent:(NSInteger)component reusingView:(UIView *)view

    //這種寫法非常消耗記憶體

    //    UIImageView *imageView = [[UIImage alloc] initWithImage:[self.images objectAtIndex:row]];

    //    return imageView;

    NSString * str = [NSString stringWithFormat:@"column%d",component+1];

    NSArray *arr = [selfvalueForKey:str];

    return [arrobjectAtIndex:row%6];

- (void)dealloc {

    [_pickerrelease];

    [_imagesrelease];

    [_column1release];

    [_column2release];

    [_column3release];

    [_column4release];

    [_column5release];

    [superdealloc];

//退出

- (IBAction)click:(id)sender {

//    NSLog(@"%@",srandom(time(nil)));

    exit(0);

//确定

- (IBAction)OK:(id)sender {

    int a[5];

    bool f=false;

        int row = random() % [self.column1count];

        int n = random() % 35;

        int j = row *n;

        [self.pickerselectRow:j inComponent:i animated:YES];

        a[i]=j%6;

    int sum=0;

    for (int i=0; i<5; i++)

    {

        sum = 1;

        if (f==false)

        { 

            for (int j=i+1; j<5; j++)

            {

                if (a[i] == a[j])

                {

                    sum++;

                }

                if (sum>=3)

                    f=true;

                    break;

            }

        }

        else

        {

            break;

    if (f) {

       UIAlertView *a = [[UIAlertView alloc] initWithTitle:@"我中了"message:@"中了500萬" delegate:selfcancelButtonTitle:@"取消"otherButtonTitles:nil];

        [a show];

效果圖:

老虎機的制作

音頻檔案的添加:

1.首先導入framework架構,AudioToolbox.framework

2.導入頭檔案

#import <AudioToolbox/AudioToolbox.h>

3.完善接口函數

-(void)playMusic:(NSString*)s

    //通過NSBundle來獲得音頻檔案的url位址

    NSURL *url = [[NSBundle mainBundle] URLForResource:s withExtension:@"wav"];

    SystemSoundID winSound;//整形類型的id

    //用音頻服務,為音頻檔案綁定soundID

    AudioServicesCreateSystemSoundID((CFURLRef)url, &winSound);

    //通過綁定的soundId來播放音樂

    AudioServicesPlayAlertSound(winSound);

4.調用

[self playMusic:@"win"];

本文轉蓬萊仙羽51CTO部落格,原文連結:http://blog.51cto.com/dingxiaowei/1366432,如需轉載請自行聯系原作者

繼續閱讀