Random Button & Radio Buttons?
-
I have an issue with this concept: 16 radio buttons and 1 power button. I need to randomize and select one after the power is activated.
const var Power = Content.getComponent("Power"); const var Buttons = [Content.getComponent("Button1"), Content.getComponent("Button2"), Content.getComponent("Button3"), Content.getComponent("Button4"), Content.getComponent("Button5"), Content.getComponent("Button6"), Content.getComponent("Button7"), Content.getComponent("Button8"), Content.getComponent("Button9"), Content.getComponent("Button10"), Content.getComponent("Button11"), Content.getComponent("Button12"), Content.getComponent("Button13"), Content.getComponent("Button14"), Content.getComponent("Button15"), Content.getComponent("Button16")]; inline function onRandomizerControl(component, value) { if(!value) return; Power.setValue(Math.randInt(0, 2)); Power.changed(); if(Power.getValue()==1) { for (i = 0; i < 16; i++) { Buttons[i].setValue(Math.randInt(0, 2)); Buttons[i].changed(); } } }; Content.getComponent("Randomizer").setControlCallback(onRandomizerControl);
HiseSnippet 1273.3ocuXstaaaCElxIpcVqqnYXO.Z4W1qAAR9tQZvxxstfUmZT2ELfhhBFIZahHSZPQmT2h.rGk83z2f8Zr2fsCkjsjc7RhYfq9iygjemuubNjGdosf6QBC4Bjg0aGOjfLdhYmwLY+C5ioLzIGhLdpYKbnjHriaZ+wCwggDejgwZuT0fQ90QQe+yOuON.y7HoMgPmwodjWQGPkos1dueiFDbL1m7V5fLitxdm3wYGvC3i.8rloCZH16BbOxoX0vxYh9UbXejwOYV2ooSYRyp9Db4Fkq55faVuakx9N9miq62njS2p0NuNoKx3QG4SkbQGIVRBAmtO2ebm97qXwDbFMjdd.QY3h5.LG2L5f9z.+1SBNgHjw5sSCUqEGp9AyVTe5z1SCYOKpC6TDYCZF4tMI4tDRxHijVOVRaX1wSPGJS6Qomu07DFjA6hgbSVoDOVTt+1z7.NLBlb6A3KHGK.ioHJTwwYK6pNNE2wB9fLTnz9RrvtM+JXVwt1Sf1iHOfOXHmAFE1Lp2MALo.1ejTBF.j2sXLwCvcyhaYYunuaCUIsPUVKTUzBUUsPUSKT00BUCsP0TKTtN5ASuYGt5M8vUu4Gt5MAwUuYHtvTj2Gs1zxhxBnLhc2QLOIkyr4r2fY97AzOQDJeH3AE7l3fsfUkAiHEs9rUdZ2B+XhUdAQNRv1wJuU9nUwaGRjmo5qPKrr+1BviP0gBPUgREgE3ICxqOl0i3WnXDPvewM2aB1h6tqK3bfq7c4B6BTnNfyN1T6WX6VC984OG5M+mg+Ygel7+cRIi2Qe+cIhEAIqjxesxwWCZ65crVb3LMTsYQEcIArCvAAmCaDUXAAynZhYh1mxkjWyJDERst1xd9t51cg8k3s.hXgcq1lTba.KvFM3bhHaBUMPXagY2q4Q2u8Z7hCOYFHmcBiJe8PRh8w7.e0dHp+9l6LgRhuvdTajnPXnxncndZxNTwoIDEbxiMilpfhDOxvzH5z.2Cf4MSVAjB0XIgVRenk0WvUzGZU8gVSen00OL0PeVat7PslLkvY4U7TrtO.dK8.3s7C.akGflq9.vVaNM+6mbHVhUmNMoH.TXXHQHop5OFGRtDtOP7YUyadHI7BIeHx36mVEFpQcm0I93zqL7mms23oF+038th5K6qjxK.69DZu9xIVnLTj++khmXlVhOCOHVFd16So7vlgmRfUH9RxIr1BBrAh5L1zvV7A.qXA3AibDFFJ3ptdvqHXASMhrJ6w2iZceL68qFm0Xpr7mQVJKA1mxeofOZ3jh1KCokTjF6nuNDVNlvu7UivJwDtkwWKBqFSXRNL1iqLxpMS9aESV8YxcqXxZLSdaESVy4xYeYUPVlcvlMosZYal5JzLk6.iUGqkV3xtUIikmKGpnd0wVk4xgqV1pN2JuUKa0lao2xx1Me8pmY1h6OJ.Km8wzTOyXRGvsdl4ErTuREKjJGm8YHWhWXy4Vegs6qD2vrMU50ewZL2BzHb7nUgFSdWxuy7ntcIdxTAtt4w+gtOB4cP+a3ijTVO3R4BpZ9voiFzgOR3Q.1YLRPnJ+mSc9qXamIq95PX9QF+K7kzo6jiQp5zcRmnAXOA+CdwmJU8xmeSTKflXQuLbdyVJa6omaOMNO.No0G77l0U2.XIcAVVWfUzEXUcAVSWf00EXi6Fn5fv+xHIeP7xFDpU6iht+fgwQQmTNZ1J5+.qyvXkA
Thanks for the advice
-
@ILIAM You were very close. Give this a try.
HiseSnippet 1184.3ocwX0uaaaCDmxIpawqoHEXO.B4ubVKBrh+JYcA0MNIcFqNwntKXAEEELTTwDQhzfhJstEcXOZ6QZuAaGkjsjar1ZsVbHBfyc79c7mNdG+puTPnAABIxn7qFOhhLtu4fwb0vNCwLNp6gHiGX1CGnnRqXUGLdDNHf5fLLV44ZEFqsJJp8WO8.rGlSnopPnyDLB8ELelJUa+1+Byy6XrC8UL+LVWucWhf2Q3IBA9rhYUzHL4J7kzSvZyJYh9YbvPjwOXtmas81sYUbMmcITBotaiVMqisqWqAltWMWrMg1pwNDfj26HGlRHGnvJZ.xX0CDNiGLT7Nd7.bFKfcgGUKXiF.ibr5iEdN5OQsVTmgLOm9SBTAHvK8SCaqDG19dydLG1T8oguMh5vJEQ1.nQoYo2JyPO6rzqZF5MGJYjgRqFSoGZNfHYiTo8n4y2Y1kCyltXXdJKUhsEU52KY1Q.VvUa6iuhdrDDlhnR8pUerUipU25IkKCyUAJqqwRqWh4NBe1Gfjj8slf9RppivejfCBU1L0jMmE6AgJEHLKvm44MEaPkMisIBHi6w3TK2PNQwDbKAO0yZGHEdUHSf9XXD7Boasd4OVdMOAA6YIirFFsdX0vs0RvGWE3iJgGa6Q4WpFBC05ksfFy0pRjSr1eeK6shU9w3ezMWgzpBC7W0mXwr9oOyMftG8nsRsNCPcKw3Wydy1AT0Y5gQ6q8mvxmZYa8iVPvNE1mh+W3G3u0Km9wq8PR.nC1y6BnxoxbBNZeAsLwuSDJ5o7JaoiQk+TYqOuKW241Wh+7nx41stxV9uArBOz+BpbxTzDCgr2YKILyujHaEKIN4IigBdWNSc5HJOu5XTRFGT9rQBq.SUQEOOHo3IdJBwfZj0LiErQQTFTbuIqxg9JfuSwfWqXvqWL3MJF7lECdqhAe2hAeuECd4IoMUKHd6BhOShmwhfuVAG+5EDeiBhedIe+Z2CwJrd+yj0Bf0GFQkJldoGiCoWCmdId2z0LOjFbkRLB1Xc5dSf2ycbuuY5hun2mdJGd6wSEZ+g1ui4nFNUwe751CorKGl4zRcaGful1k2WRgk30aUyB5I7gQGKAOYThxwvBh5SY7BJVx0VLY2jS4c7XjqzVgxP5u4KXMt2m8TbiyJLKiQmeCFedaI1gIdtTDNJ6wC+5nvNYov4suKnPsrTfcmPg5YnveJuSnPibyENu8RhBMyMWXoQgV4lKrznvt4lKrznvd4lKvtsoPl8QyKYX4wA6byFVdbXmbSGVdbnVd4C.gVVbndd4CKQNzHu7gkHGZlW9Pg3vMeWgML6IbB8vpYelC8iAkzAbQuYdaA86GvCXpwY87+au8wWJEenYelhLb9brzb3HbrvaCNl7hQqadjqKknRI3plG+a2NOOD5khPEieYOrRxfrDySB8GHBkDJL5bN0SeQa3LhZnQxU0x5Hv.J2IR3ugVRm1ZYijNsmzIxGSjh2RhOQt9Mo91HM.m3Que2Zl8zxVo2iYZb1GN75aIjYc0M.tyhBr1hBr9hBrwhBr4hBr0hBb2+af56V7rPkvOtrAg50+nn6MYXbTzkOhxVQ+CjQxFdK
Content.makeFrontInterface(400, 500); const var Randomizer = Content.getComponent("Randomizer"); const var Buttons = Content.getAllComponents("Button"); inline function onRandomizerControl(component, value) { local random = Math.randInt(0, Buttons.length); if (value == 1) { for (i = 0; i < Buttons.length; i++) { Buttons[i].setValue(i == random ? 1 : 0); } } } Randomizer.setControlCallback(onRandomizerControl);
Inside the for loo, the
Buttons[i].setValue(i == random ? 1 : 0);
basically breaks down as thisfor (i = 0; i < Buttons.length; i++) { if (i == random) { Buttons[i].setValue(1); } else { Buttons[i].setValue(0); } }
-
@ILIAM I just did this too. lol. Little bit different from @HISEnberg but same outcome I guess.
This what I got. Mine checks that the power is on before the Randomizer button works.
inline function onRandomizerControl(component, value) { local Power = Content.getComponent("Power"); local Power = Power.getValue(); local RandomNOW = Math.randInt(1, 16); Console.print(RandomNOW); if (value == 1 && Power == 1) { Buttons[RandomNOW].setValue(1); } }; Content.getComponent("Randomizer").setControlCallback(onRandomizerControl);
HiseSnippet 1272.3ocwX0saaaCElJIpcRqqnYXO.B4hBmgf.I+WbPQv7hSRmwpSLp6xVPPQAiDcLQjIMnnSpaQ.5ixdT1U64YuAajRxVzIVoIzqtJWDPxymNe9vOcNjm1LpOJJhx.F1uYz.Dv3IlcFQ38ZzChIfl6ALdpYKXDGwbRlZ2QCfQQn.fgwxuTNgg0Jf3m+4m1EFBI9nro.fioXezqv8w7rYaW+WwggG.CPuA2Ww5x0a5SIMngzgB9rroKX.z+B34nCgRyVxD7Kvnd.iezrXwt90bcqUpTEWHrT.DV1CUZaT2pc8q3tsavYUbE+UEX7n8CvbJqCGxQQ.iU1kFLpSO5UjDGbLNBeVHRNvCzQ34joOfFFH+IJmEznGNLn83.UDP7VZmE1VNIr8ClsvA3IymE9dV7BNYHTCfFKMM8VdJ54oROWE5MCJYnPoURnzplc7Y3A7rUj74aMaRD6lcgh8IUpjXKXo+1zrAUXAguYe3EnCXhASPTnrq6FNUbcW+E1hGwtUD24RHyoM8JgBYGmwPOGwaP6OfRDCJrV7pqIvjAX2gbtXf.xoyFShAdqs9F1Ny54tPUTKTkzBUYsPUQKTU0B0VZgplVn1VKTdt5ASO0gmdxCO8zGd5IP7zSg3IjHuU7sIlDhIHmtCI9bLk3PIuFRBn8we.wj3YzvB9iAug3Kxvgn0s+nssUH0GFde+d9FVG+eosGKeeExLHw4GdzuKLpEj2aSlXBQVkBda33UUZmskvUQzPzlCXXwBSPHyzXg65THliN6riimyye9XWJFsts0GssrRSnb5DfucynwDwS5AgKt195WXO6eRYgm0VWBLMH0.FFdlnHTgYD.kLSI.eHkiNhTPFEsru114lK0s6LWK8kEhXybYYER1cAr.YX+yPLk8vXCEUAltzhY9kVTq74mDcTLjRZRv7iFfH4UODjFREkgVMkUBS4wEgdZZQnjsG.VTq4wlwadfXBqdVAv8.rkYpPeLbSiGJzhS77iLzvyklO3kmO3UlO3U0Ors0744ZyG7s0Ct8X4h6bh2aNwWbNwW5guwMAa44z2UlS7UmA9eq4dPNTdv0zjGhDJCPLNVlqxXOzkhqMjbLVKy8PQWvoC.Fe+jD1hC1+Yyu79I4V9zw0GMYveNp9U3.durLOGVuGBedOt5L.EWYkqqdhYVUAE+AHJ9q9Gtg+9zo2xeMqGAuD0jzlgD0djGGGG0h1W3cHS7lLVBQfhj0xaR7JDjQjVnxvGeOxW9d0TsiTGbivwI2hdmTmACvzWxnCGndeuGFEJpRgSp+0fBkTo.9qBEJqPg+h8UgBUxUKbR8EDEplqVXgQgsxUKrvnPsb0BKLJrctZA7WZJnTaNOwvhiCd4pFVbbnXtxgEGGJkmdPPnEEGJmmdXAxgJ4oGVfbnZd5g4hC2tQgOyrEMXXHjOceKkc2McAwMNmpYgxFBRhv7Qpu4a1LyUteMy7t6058ktqZ1Fy86Ma9tzL3q3nmeo4aZqg+Ny861E4yyH6JlG7G2Yef++gJulNjiIm2BxYXgRx7vg86PGx7QBlPHnPYWALVRdX9jwtiucQGDIHdv+JdRWzSN1HcQuwKB5C8Yz24mba.Yin+l3YDbhD2zdKyVxwNd29598Eml8c99S+ptEvh5Brjt.KqKvJ5Brpt.2RWf097.kW13mGxo8S9bB.Z0d+36rYXre7sQhUtf+CfziS41
-
@Chazrox @HISEnberg Thank you guys, Very nice
-
@HISEnberg said in Random Button & Radio Buttons?:
Buttons[i].setValue(i == random ? 1 : 0);
I thought about this but I didnt think it needed this because they're already radio buttons.
great excercise!
Hope all is well brothas!
-
@Chazrox said in Random Button & Radio Buttons?:
local Power = Content.getComponent("Power");
You should create this reference as a const in on init.
-
@d-healey noted