老虎机的制作

简介: 用UIPickerView制作一个老虎机的效果 ViewController.h: #import @interface DXWViewController :UIViewController @property (retain,nonatomi...

用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 ()

@end

@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];

    

    //创建30ImageView

    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

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

        [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;

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

        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];

        }

}

@end

效果图:


音频文件的添加:

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"];

相关文章
|
2月前
|
XML 前端开发 JavaScript
如何制作一个自己的网站?
在今天的互联网时代,网站展示已经是一个很基础的营销工具。不管是企业、还是个人,如何制作一个自己的网站?本文将会提供一个全面的基础制作网页教程,教你如何从零开始制作网页。
|
5月前
|
资源调度 JavaScript 前端开发
使用WbbGPU制作爱心
7月更文挑战第9天
32 0
|
7月前
|
安全 Android开发 数据安全/隐私保护
制作系统签名
五月打卡
65 0
|
前端开发 JavaScript 编译器
聊聊制作网站那些事!
聊聊制作网站那些事!
79 0
水晶头制作
水晶头制作。
166 44
|
iOS开发
如何制作游戏微端
如何制作游戏微端
118 0
|
容器
如何在微信小游戏制作工具中快速的制作一个血条?
如图,添加了两个血条的图片,一个当作背景,一个当作前景,并且把这两个图片放到了一个“血条1”容器中,另外增加了一个“打你丫的”按钮,用来模拟攻击,点击“打你丫的”按钮,血条就会掉血。
179 0
|
数据可视化 程序员 开发者
零基础如何自己制作游戏?
首先我们来看一下这个问题本身,能问出这个问题的基本上就是新手,小白,零基础,对于游戏开发这个领域没有任何的了解的人。为什么这么说呢?因为只有当你对于一个领域没有任何了解的时候,才会问出这么宽泛的问题。 所以你看,但凡问那种很宽泛的问题的,基本上都是对于这个领域没有任何了解的,也就是新手小白。但是新手小白也没有什么可丢人的,毕竟谁在接触一个新领域的时候不是新手小白呢?
341 0
|
数据可视化 开发工具 Android开发
个人尝试制作游戏最好的选择是什么?
有不少人都想尝试着做游戏,不论是尝试着实现自己曾经的游戏梦想也好,还是试着把做游戏当做一个副业也好,对于所有的想要或者正在做游戏的个人来讲,从微信小游戏开始都是一个最好的选择。 我自己现在正在做微信小游戏,而且也在教很多的学员做微信小游戏。你可能会觉得我这样说是有一定的动机的,但其实不然,如果我自己不相信这个平台的话,那其实我是没有必要自己做的,只需要忽悠让别人相信就可以了。但是现在我自己也正在致力于做这件事,这也证明了我对它的认可。不是有这么一句话吗?不要轻易相信一个人说了什么,而要看他做了什么。
146 0