Random 在Corona中显示来自精灵表的随机精灵

Random 在Corona中显示来自精灵表的随机精灵,random,lua,coronasdk,sprite,Random,Lua,Coronasdk,Sprite,非常新的科罗纳和试图使一个简单的记忆游戏。我想从一张精灵表(包含大约20个精灵)中随机闪现大约5个精灵,然后让用户在显示该表时输入他们认为会闪现的内容。希望我已经解释过了,好吗?我以前做过一点JavaScript,但对编码没有信心。尝试做一些有挑战性的事情——可能必须做一些简单的事情。被告知科罗纳是一个好的起点:( 数学随机是正确的方法吗 如果有任何想法,我将不胜感激。目前我只能显示整个表单,不知道如何使随机精灵出现。游戏中从集合中获取随机对象的常用技术是使用随机生成的数字,如math.rand

非常新的科罗纳和试图使一个简单的记忆游戏。我想从一张精灵表(包含大约20个精灵)中随机闪现大约5个精灵,然后让用户在显示该表时输入他们认为会闪现的内容。希望我已经解释过了,好吗?我以前做过一点JavaScript,但对编码没有信心。尝试做一些有挑战性的事情——可能必须做一些简单的事情。被告知科罗纳是一个好的起点:( 数学随机是正确的方法吗


如果有任何想法,我将不胜感激。目前我只能显示整个表单,不知道如何使随机精灵出现。

游戏中从集合中获取随机对象的常用技术是使用随机生成的数字,如
math.random
,然后使用模运算符
%
获取数字de>0到
对象数

例如,假设您有一张卡片列表:

local cards = {"one","two","three","four","five"};
local numCards = #cards;
如果要随机选择一张卡,可以执行以下操作:

local function getRandomCard()
    #This will give you a random number from 0 to 100
    math.randomseed(os.time())
    local randomNumber = math.random(100);

    #This will give a random number from 0 to 4. 
    local randomIndex = randomNumber % numCards; 
    # Lua indices start at 1, so we add this to our index
    randomIndex = randomIndex + 1; #This will get us a number from 1 to 5; =)

    return cards[randomIndex];
end

我希望这为您指明了正确的方向。

游戏中从集合中获取随机对象的常用技术是使用随机生成的数字,如
math.random
,然后使用模运算符
%
0
对象数

例如,假设您有一张卡片列表:

local cards = {"one","two","three","four","five"};
local numCards = #cards;
如果要随机选择一张卡,可以执行以下操作:

local function getRandomCard()
    #This will give you a random number from 0 to 100
    math.randomseed(os.time())
    local randomNumber = math.random(100);

    #This will give a random number from 0 to 4. 
    local randomIndex = randomNumber % numCards; 
    # Lua indices start at 1, so we add this to our index
    randomIndex = randomIndex + 1; #This will get us a number from 1 to 5; =)

    return cards[randomIndex];
end

我希望这为您指明了正确的方向。

游戏中从集合中获取随机对象的常用技术是使用随机生成的数字,如
math.random
,然后使用模运算符
%
0
对象数

例如,假设您有一张卡片列表:

local cards = {"one","two","three","four","five"};
local numCards = #cards;
如果要随机选择一张卡,可以执行以下操作:

local function getRandomCard()
    #This will give you a random number from 0 to 100
    math.randomseed(os.time())
    local randomNumber = math.random(100);

    #This will give a random number from 0 to 4. 
    local randomIndex = randomNumber % numCards; 
    # Lua indices start at 1, so we add this to our index
    randomIndex = randomIndex + 1; #This will get us a number from 1 to 5; =)

    return cards[randomIndex];
end

我希望这为您指明了正确的方向。

游戏中从集合中获取随机对象的常用技术是使用随机生成的数字,如
math.random
,然后使用模运算符
%
0
对象数

例如,假设您有一张卡片列表:

local cards = {"one","two","three","four","five"};
local numCards = #cards;
如果要随机选择一张卡,可以执行以下操作:

local function getRandomCard()
    #This will give you a random number from 0 to 100
    math.randomseed(os.time())
    local randomNumber = math.random(100);

    #This will give a random number from 0 to 4. 
    local randomIndex = randomNumber % numCards; 
    # Lua indices start at 1, so we add this to our index
    randomIndex = randomIndex + 1; #This will get us a number from 1 to 5; =)

    return cards[randomIndex];
end

我希望这为您指明了正确的方向。

这里有一些更深入的例子,可以帮助您构建系统(前面的答案有一些错误)

localcards={{name=“one”,count=0,flipped=false,matched=false},{name=“two”,count=0,flipped=false,matched=false},{name=“三”,count=0,flipped=false,matched=false},{name=“五”,count=0,flipped=false,matched=false},{name=“五”,count=0,flipped=false},{name=“六”,count=0,flipped=false,matched=false};
函数getAvailableCards(计数)
本地合适的_cards=(Count和{}或nil);--如果要在cards表中获取有效卡的密钥,请创建一个表
本地空=真;
对于键,成对(卡片)中的数据
如果(data.count<2),则
if(Count)then——如果需要输出(包含有效键的表),请添加键
表.插入(合适的卡片、钥匙);
--table.insert(合适的卡片、键);您可以再次插入它以选择更大范围的数字,使math.random更“随机”。
空=假;
其他的
返回true;
结束
结束
结束
如果(空)那么
返回false;
结束
退回合适的"身份证;;
结束
函数getRandomCard()
local valid_cards=getAvailableCards(true);--获取一个包含卡表所有有效键的表,以选择一个随机键
如果(无效的_卡),则
返回有效的\u卡;--返回false
结束
本地索引=有效卡片[数学随机(1,#有效卡片)]--选择随机键
卡片[index]。计数=卡片[index]。计数+1;--增加密钥生成的计数
退货卡[index]。名称,索引--卡片表中的退货卡id和索引
结束
函数设置卡()
而getAvailableCards()可以
本地卡id,index=getRandomCard();--获取随机卡id及其索引
--在GUI等中设置卡,
--如创建一块板,然后创建一个图像并加载图像(基于卡id)
--例如(没有这样的函数,但您应该创建它们或找到与它们类似的函数)
--card=getBoard().NewImage();
--card.id=索引;
--loadImage(“hidden_card.png”);
结束
结束
函数TryToMatch()
local child1,child2——将从cards表复制的子表,用于以后的比较
--得到所有翻转但不匹配的卡片
对于钥匙,孩子成对(卡片)做
如果(child.fliped而非child.matched),则
如果(孩子1)那么
child2=key;--get key
其他的
child1=key;--get key
结束
结束
结束
如果是(child1和child2),则可以检查两张显示的卡
如果(child1.name==child2.name),则--discover
卡片[child1]。匹配,卡片[child2]。匹配=真,真;
TryToEnd();
其他的
--联合国公布
结束
结束
结束
函数TryToEnd()
局部匹配=0;
对于钥匙,孩子成对(卡片)做
如果(child.fliped和child.matched),则
匹配=匹配+1;
结束
结束
如果(#卡片==匹配),则
--显示游戏已完成
结束
结束
函数单击(对象)
--单击对象时,使其使用该对象调用此函数
如果(object和object.id和cards[object.id]和not(cards[object.id]。翻转和cards[object.id]。匹配)),则
卡片[object.id].flipped=true;
--您应该在这里加载卡片图像(实际的卡片图像,如