Javascript 仅随机获取两次相同的图像

Javascript 仅随机获取两次相同的图像,javascript,jquery,html,css,Javascript,Jquery,Html,Css,我正在jquery中创建图像翻转游戏。我在图像方面有困难。在图像翻转游戏中,我们只有两个相同类型的图像。我有44个img标签和22张图片。我随机拍照 Q1.如何仅拍摄同一类型的两张图像 Q2.如果单击一个图像,它应该显示为现在正在工作,但是当单击任何其他图像时,如果两个图像的源(src)相同,则应该永远隐藏这两个图像。如果不是的话,两个都应该再翻一次。 这是我的脚本代码 <script> var imgSources = new Array(); va

我正在jquery中创建图像翻转游戏。我在图像方面有困难。在图像翻转游戏中,我们只有两个相同类型的图像。我有44个img标签和22张图片。我随机拍照

Q1.如何仅拍摄同一类型的两张图像

Q2.如果单击一个图像,它应该显示为现在正在工作,但是当单击任何其他图像时,如果两个图像的源(src)相同,则应该永远隐藏这两个图像。如果不是的话,两个都应该再翻一次。 这是我的脚本代码

<script>
        var imgSources = new Array();
        var twoImagesOnly = [];
        for(var c = 1; c < 22; c++){
            imgSources.push(c + ".png");
        }
        $('#add').click(function(){
            addElements(44);
            $('#add').attr('disabled', 'true');
        });
        function addElements(times){
            var main = $('#main');
            for(j = 1; j <= times; j++){
                var div = $("<div>");
                var img = $("<img>");
                img.attr('src', getImage());
                img.attr('width', '100');
                img.attr('height', '100');

                img.click(function(event){
                    $(this).slideUp();
                    event.stopPropagation();
                });
                div.click(function(){
                    $(this).children('img').slideDown();
                });
                div.addClass('div');
                div.append(img);
                img.addClass('myimg');
                main.append(div);
                img.slideUp('fast');
            }       
        }
        var counter;
        function getImage(){
            var rand = Math.floor(Math.random() * 22) + 1;
            var str = '';
            if($.inArray(rand, twoImagesOnly) == -1){
                str = rand + '.png';
                twoImagesOnly[counter] = rand;
                counter++; 
            }else{
                 getImage();
            }
                return str;
        }
    </script>

var imgSources=新数组();
var twoImagesOnly=[];
对于(var c=1;c<22;c++){
imgSources.push(c+“.png”);
}
$('#添加')。单击(函数(){
增编(44);
$('#add').attr('disabled','true');
});
函数加法器(次){
var main=$(“#main”);

对于(j=1;jQ1.确保正好有两个图像存在的快速解决方案可能是将两个图像推送到阵列:

    for(var c = 1; c < 22; c++){
        imgSources.push(c + ".png");
        imgSources.push(c + ".png");
    }
Q2.关于“两次点击”, 您可以使用一个全局变量:

first_image
如果之前未显示图像,则该值将为空


否则,它将包含当前显示图像的详细信息(如源和id)。如果源不匹配,则您可以在一段时间后返回这两张图片。

Q1。确保正好有两张图像的快速解决方案可以是将两次推送到阵列:

    for(var c = 1; c < 22; c++){
        imgSources.push(c + ".png");
        imgSources.push(c + ".png");
    }
Q2.关于“两次点击”, 您可以使用一个全局变量:

first_image
如果之前未显示图像,则该值将为空


否则,它将包含当前显示图像的详细信息(如源和id)。如果源不匹配,则您可以在一段时间后返回这两张图片。

Q1。确保正好有两张图像的快速解决方案可以是将两次推送到阵列:

    for(var c = 1; c < 22; c++){
        imgSources.push(c + ".png");
        imgSources.push(c + ".png");
    }
Q2.关于“两次点击”, 您可以使用一个全局变量:

first_image
如果之前未显示图像,则该值将为空


否则,它将包含当前显示图像的详细信息(如源和id)。如果源不匹配,则您可以在一段时间后返回这两张图片。

Q1。确保正好有两张图像的快速解决方案可以是将两次推送到阵列:

    for(var c = 1; c < 22; c++){
        imgSources.push(c + ".png");
        imgSources.push(c + ".png");
    }
Q2.关于“两次点击”, 您可以使用一个全局变量:

first_image
如果之前未显示图像,则该值将为空


否则,它将包含当前显示图像的详细信息(如源和id)。如果来源不匹配,那么您可以在一段时间后将这两张图片调回。

在我编辑小提琴时,似乎有人用我的一半解决方案击败了我,但我将发布此内容,因为后一半应该可以帮助您确保每张卡片只发布两张

首先,要初始化阵列,请使用以下命令:

for(var c = 1; c < 23; c++){
    imgSources.push(c + ".png");
    imgSources.push(c + ".png");
}
这样做的目的是在使用每个阵列项目时将其移除,有点像从一副牌中抽牌,确保每个图像只使用两张,并避免使用“一直尝试直到成功”的方法


在我编辑小提琴时,似乎有人用我的一半解决方案击败了我,但我将发布这篇文章,因为下半部分可以帮助您确保每张卡片只发布两张

首先,要初始化阵列,请使用以下命令:

for(var c = 1; c < 23; c++){
    imgSources.push(c + ".png");
    imgSources.push(c + ".png");
}
这样做的目的是在使用每个阵列项目时将其移除,有点像从一副牌中抽牌,确保每个图像只使用两张,并避免使用“一直尝试直到成功”的方法


在我编辑小提琴时,似乎有人用我的一半解决方案击败了我,但我将发布这篇文章,因为下半部分可以帮助您确保每张卡片只发布两张

首先,要初始化阵列,请使用以下命令:

for(var c = 1; c < 23; c++){
    imgSources.push(c + ".png");
    imgSources.push(c + ".png");
}
这样做的目的是在使用每个阵列项目时将其移除,有点像从一副牌中抽牌,确保每个图像只使用两张,并避免使用“一直尝试直到成功”的方法


在我编辑小提琴时,似乎有人用我的一半解决方案击败了我,但我将发布这篇文章,因为下半部分可以帮助您确保每张卡片只发布两张

首先,要初始化阵列,请使用以下命令:

for(var c = 1; c < 23; c++){
    imgSources.push(c + ".png");
    imgSources.push(c + ".png");
}
这样做的目的是在使用每个阵列项目时将其移除,有点像从一副牌中抽牌,确保每个图像只使用两张,并避免使用“一直尝试直到成功”的方法


保留一组“已删除”的卡片。如果需要查看桌面上是否存在卡片,请每次检查一组“已删除”的卡片。如果需要查看桌面上是否存在卡片,请每次检查一组“已删除”的卡片。如果需要查看桌面上是否存在卡片,请每次检查一组“已删除”的卡片。保留一组“已删除”的卡片ds.如果你需要查看表上是否有卡片“存在”,请每次检查。我喜欢你的第一部分。我喜欢你的第一部分。我喜欢你的第一部分。我喜欢你的第一部分。我喜欢你的第一部分。你应该添加推两次imgSources arrayGood调用的部分,现在添加。你应该添加推两次imgSou的部分rces arrayGood调用,现在添加。您应该添加推送两次imgSources arrayGood调用的部分,现在添加。您应该添加推送两次imgSources arrayGood调用的部分,现在添加。