<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://www.necroxia.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AUrsagrodonTeleportCalculator.js</id>
	<title>MediaWiki:UrsagrodonTeleportCalculator.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://www.necroxia.com/w/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AUrsagrodonTeleportCalculator.js"/>
	<link rel="alternate" type="text/html" href="https://www.necroxia.com/w/index.php?title=MediaWiki:UrsagrodonTeleportCalculator.js&amp;action=history"/>
	<updated>2026-07-06T16:44:16Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.40.1</generator>
	<entry>
		<id>https://www.necroxia.com/w/index.php?title=MediaWiki:UrsagrodonTeleportCalculator.js&amp;diff=7073&amp;oldid=prev</id>
		<title>Necroxia Staff: Created page with &quot;$(&quot;#testdiv&quot;).each(function() { 	var parent = $(this); 	//var inputs = [&#039;currentRoom&#039;, &#039;currentCount&#039;, &#039;answerNumber&#039;]; 	var inputs = [ 		[&#039;currentRoom&#039;, 1, 32, 1, &#039;Escribe aq...&quot;</title>
		<link rel="alternate" type="text/html" href="https://www.necroxia.com/w/index.php?title=MediaWiki:UrsagrodonTeleportCalculator.js&amp;diff=7073&amp;oldid=prev"/>
		<updated>2020-09-01T07:07:24Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;$(&amp;quot;#testdiv&amp;quot;).each(function() { 	var parent = $(this); 	//var inputs = [&amp;#039;currentRoom&amp;#039;, &amp;#039;currentCount&amp;#039;, &amp;#039;answerNumber&amp;#039;]; 	var inputs = [ 		[&amp;#039;currentRoom&amp;#039;, 1, 32, 1, &amp;#039;Escribe aq...&amp;quot;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;$(&amp;quot;#testdiv&amp;quot;).each(function() {&lt;br /&gt;
	var parent = $(this);&lt;br /&gt;
	//var inputs = [&amp;#039;currentRoom&amp;#039;, &amp;#039;currentCount&amp;#039;, &amp;#039;answerNumber&amp;#039;];&lt;br /&gt;
	var inputs = [&lt;br /&gt;
		[&amp;#039;currentRoom&amp;#039;, 1, 32, 1, &amp;#039;Escribe aqui el numero de la habitacion en que te encuentras:&amp;#039;], [&amp;#039;answerNumber&amp;#039;, 31, 93, 77,&amp;#039;Escribe aqui el numero al que necesitas llegar:&amp;#039;], [&amp;#039;currentCount&amp;#039;, 0, 999, 0,&amp;#039;Escribe aqui tu cuenta actual:&amp;#039;]&lt;br /&gt;
		];&lt;br /&gt;
	//var textToPrint = &amp;quot;&amp;quot;;&lt;br /&gt;
	//var d = document.createElement(&amp;#039;div&amp;#039;);&lt;br /&gt;
	&lt;br /&gt;
	$(this).append(&amp;quot;&amp;lt;table id=&amp;#039;table1&amp;#039;&amp;gt;&amp;lt;/table&amp;gt;&amp;quot;);&lt;br /&gt;
	$(&amp;#039;#table1&amp;#039;).append(&amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;#039;2&amp;#039; style=&amp;#039;text-align:center&amp;#039;&amp;gt;&amp;lt;b&amp;gt;&amp;lt;h3&amp;gt;Teleport Calculator&amp;lt;/h3&amp;gt;&amp;lt;/b&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;);&lt;br /&gt;
	for (i = 0; i &amp;lt; inputs.length; i++) {&lt;br /&gt;
		$(&amp;#039;#table1&amp;#039;).append(&amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td&amp;gt;&amp;quot;+inputs[i][4]+&amp;quot;&amp;lt;/td&amp;gt;&amp;lt;td&amp;gt;&amp;lt;input type=&amp;#039;number&amp;#039; id=&amp;#039;&amp;quot; + inputs[i][0] + &amp;quot;&amp;#039; name=&amp;#039;&amp;quot;+inputs[i][0]+&amp;quot;&amp;#039; min=&amp;#039;&amp;quot;+inputs[i][1]+&amp;quot;&amp;#039; max=&amp;#039;&amp;quot;+inputs[i][2]+&amp;quot;&amp;#039; value=&amp;#039;&amp;quot;+inputs[i][3]+&amp;quot;&amp;#039; maxLength=&amp;#039;4&amp;#039; style=&amp;#039;width:70px&amp;#039;/&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;);&lt;br /&gt;
		//$(this).append(&amp;quot;&amp;lt;input type=&amp;#039;number&amp;#039; id=&amp;#039;&amp;quot; + inputs[i][0] + &amp;quot;&amp;#039; name=&amp;#039;&amp;quot;+inputs[i][0]+&amp;quot;&amp;#039; min=&amp;#039;&amp;quot;+inputs[i][1]+&amp;quot;&amp;#039; max=&amp;#039;&amp;quot;+inputs[i][2]+&amp;quot;&amp;#039; value=&amp;#039;&amp;quot;+inputs[i][3]+&amp;quot;&amp;#039; maxLength=&amp;#039;4&amp;#039; style=&amp;#039;width:70px&amp;#039;/&amp;gt;&amp;quot;);&lt;br /&gt;
		//$(this).append(&amp;quot;&amp;lt;br&amp;gt; id=&amp;quot;+inputs[i][0]+&amp;quot; name=&amp;quot;+inputs[i][0]+&amp;quot; min=&amp;quot;+inputs[i][1]+&amp;quot; max=&amp;quot;+inputs[i][2]+&amp;quot; value=&amp;quot;+inputs[i][3]);&lt;br /&gt;
	}&lt;br /&gt;
	$(&amp;#039;#table1&amp;#039;).append(&amp;quot;&amp;lt;tr&amp;gt;&amp;lt;td colspan=&amp;#039;2&amp;#039; style=&amp;#039;text-align:center&amp;#039;&amp;gt;&amp;lt;button id=&amp;#039;button1&amp;#039;&amp;gt;Summit&amp;lt;/button&amp;gt;&amp;lt;/td&amp;gt;&amp;lt;/tr&amp;gt;&amp;quot;);&lt;br /&gt;
	$(this).append(&amp;quot;&amp;lt;p id=&amp;#039;parrafo1&amp;#039;&amp;gt;&amp;lt;span id=span1&amp;gt;&amp;lt;/span&amp;gt;&amp;lt;/p&amp;gt;&amp;quot;);&lt;br /&gt;
	$(&amp;#039;#button1&amp;#039;).click( function() {&lt;br /&gt;
		getPossibleTeleports( $(&amp;#039;#currentRoom&amp;#039;).val(), $(&amp;#039;#currentCount&amp;#039;).val(), $(&amp;#039;#answerNumber&amp;#039;).val());&lt;br /&gt;
		//$(&amp;#039;#text1&amp;#039;).remove();&lt;br /&gt;
		//$(&amp;#039;#span1&amp;#039;).html(textToPrint);&lt;br /&gt;
	});&lt;br /&gt;
	//var currentRoom = $(&amp;#039;#currentRoom&amp;#039;).val();&lt;br /&gt;
	//$(this).append(&amp;quot;&amp;lt;br&amp;gt;&amp;quot;+currentRoom);&lt;br /&gt;
	//$(this).append(&amp;quot;&amp;lt;br&amp;gt; &amp;quot; + $(&amp;quot;input[id=currentRoom]&amp;quot;).value);&lt;br /&gt;
});&lt;br /&gt;
&lt;br /&gt;
const totalRooms = 32; // total de habitacion que debe pasar&lt;br /&gt;
const minCount = 31;&lt;br /&gt;
const maxCount = 93;&lt;br /&gt;
&lt;br /&gt;
function getPossibleTeleports(currentRoom, currentCount, answerNumberIni) {&lt;br /&gt;
	var isPossible = false;&lt;br /&gt;
	var a = 0;&lt;br /&gt;
	var b = 0;&lt;br /&gt;
	var c = 0;&lt;br /&gt;
	var outputText = &amp;#039;&amp;#039;;&lt;br /&gt;
	var roomsLeft = totalRooms - currentRoom;&lt;br /&gt;
	var answerNumber = answerNumberIni - currentCount;&lt;br /&gt;
	&lt;br /&gt;
	if (validateValues(roomsLeft, answerNumber, currentRoom, currentCount, answerNumberIni)){&lt;br /&gt;
		return false;&lt;br /&gt;
	}&lt;br /&gt;
	//if (isCorrect === false) {&lt;br /&gt;
		//return true;&lt;br /&gt;
	//	getPossibleTeleports();&lt;br /&gt;
	// }&lt;br /&gt;
	&lt;br /&gt;
	while (c &amp;lt;= roomsLeft) {&lt;br /&gt;
		a = calculateA(answerNumber, roomsLeft, c);&lt;br /&gt;
		b = calculateB(answerNumber, roomsLeft, c);&lt;br /&gt;
		if (a !== -1 &amp;amp;&amp;amp; b !== -1 &amp;amp;&amp;amp; ((a + b + c) === roomsLeft) &amp;amp;&amp;amp; ((a + (2 * b) + (3 * c)) === answerNumber)){&lt;br /&gt;
			//outputText += &amp;#039;sum1: &amp;#039; + (a + b + c) + &amp;#039; sum2: &amp;#039; + (a + (2 * b) + (3 * c)) + &amp;#039; -&amp;gt; a: &amp;#039; + a + &amp;#039;, b: &amp;#039; + b + &amp;#039;, c: &amp;#039; + c + &amp;#039; - Rooms: &amp;#039; + roomsLeft + &amp;#039;, AnswerNumber: &amp;#039; + answerNumber + &amp;#039;&amp;lt;br&amp;gt;&amp;#039;;&lt;br /&gt;
			//alert(`sum1: ` + (a + b + c) + &amp;#039; sum2: &amp;#039; + (a + (2 * b) + (3 * c)) + ` -&amp;gt; a: ` + a + `, b: ` + b + `, c: ` + c + ` - Rooms: ` + roomsLeft + `, AnswerNumber: ` + answerNumber);&lt;br /&gt;
			isPossible = true;&lt;br /&gt;
			break;&lt;br /&gt;
		}&lt;br /&gt;
		//console.log(&amp;quot;sum1: &amp;quot;, (a + b + c), &amp;quot;, sum2: &amp;quot;, (a + (2 * b) + (3 * c)),&amp;quot; -&amp;gt; a: &amp;quot;, a,&amp;quot;, b: &amp;quot;, b,&amp;quot;, c: &amp;quot;, c,&amp;quot; - Rooms: &amp;quot;, roomsLeft, &amp;quot;, AnswerNumber: &amp;quot;, answerNumber);&lt;br /&gt;
		//alert(`sum1: ` + (a + b + c) + &amp;#039; sum2: &amp;#039; + (a + (2 * b) + (3 * c)) + ` -&amp;gt; a: ` + a + `, b: ` + b + `, c: ` + c + ` - Rooms: ` + roomsLeft + `, AnswerNumber: ` + answerNumber);&lt;br /&gt;
		c++;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if (isPossible === true) {&lt;br /&gt;
			outputText += &amp;#039;Puedes tomar el &amp;lt;b&amp;gt;Teleport 1 &amp;lt;/b&amp;gt;(&amp;lt;b&amp;gt;&amp;#039; + a + &amp;#039;&amp;lt;/b&amp;gt;) veces, el &amp;lt;b&amp;gt;Teleport 2&amp;lt;/b&amp;gt; (&amp;lt;b&amp;gt;&amp;#039; + b + &amp;#039;&amp;lt;/b&amp;gt;) veces y el &amp;lt;b&amp;gt;Teleport 3&amp;lt;/b&amp;gt; (&amp;lt;b&amp;gt;&amp;#039; + c + &amp;#039;&amp;lt;/b&amp;gt;) veces.&amp;#039;;&lt;br /&gt;
			//alert(`Puedes tomar (` + a + `) veces T1, (` + b + `) veces T2, (` + c + `) veces T3.`);	&lt;br /&gt;
		} else {&lt;br /&gt;
			outputText += &amp;#039;Debes ir hasta el ultimo Teleport para reiniciar tu Cuenta, no es posible completar la Quest con tu cuenta actual.&amp;#039;;&lt;br /&gt;
			//alert(`no es posible, debes reiniciar tu cuenta ${c} !`);	&lt;br /&gt;
		}&lt;br /&gt;
	//getPossibleTeleports();	&lt;br /&gt;
	// alert(`Existen en total ${totalRooms} habitaciones!`);&lt;br /&gt;
	//document.getElementById(&amp;quot;answer&amp;quot;).innerHTML = outputText;&lt;br /&gt;
	$(&amp;#039;#span1&amp;#039;).html(outputText);&lt;br /&gt;
	return true;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
function validateValues(roomsLeft, answerNumber, currentRoom, currentCount, answerNumberIni){&lt;br /&gt;
	var isError = false;&lt;br /&gt;
	var outputText = &amp;#039;&amp;#039;;&lt;br /&gt;
	&lt;br /&gt;
	if (currentRoom &amp;lt; 1 || currentRoom &amp;gt; totalRooms || currentRoom % 1 !== 0) {&lt;br /&gt;
		outputText += &amp;#039;El numero de tu habitacion actual debe ser un &amp;lt;b&amp;gt;entero&amp;lt;/b&amp;gt; entre &amp;lt;b&amp;gt;1&amp;lt;/b&amp;gt; y &amp;lt;b&amp;gt;&amp;#039; + totalRooms + &amp;#039;&amp;lt;/b&amp;gt; .&amp;lt;br&amp;gt;&amp;#039;;&lt;br /&gt;
		isError = true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if (answerNumberIni &amp;lt; minCount || answerNumberIni &amp;gt; maxCount || answerNumberIni % 1 !== 0) {&lt;br /&gt;
		outputText += &amp;#039;el numero al que necesitas llegar debe ser un &amp;lt;b&amp;gt;entero&amp;lt;/b&amp;gt; entre &amp;lt;b&amp;gt;&amp;#039; + minCount + &amp;#039;&amp;lt;/b&amp;gt; y &amp;lt;b&amp;gt;&amp;#039; + maxCount + &amp;#039;&amp;lt;/b&amp;gt;.&amp;lt;br&amp;gt;&amp;#039;;&lt;br /&gt;
		isError = true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if (currentCount &amp;lt; 0 || currentCount % 1 !== 0) {&lt;br /&gt;
		outputText += &amp;#039;Tu cuenta debe ser un &amp;lt;b&amp;gt;entero&amp;lt;/b&amp;gt; mayor o igual a 0.&amp;lt;br&amp;gt;&amp;#039;;&lt;br /&gt;
		isError = true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if (answerNumber &amp;lt; 0) {&lt;br /&gt;
		outputText += &amp;#039;Tu cuenta es muy alta debes reiniciar.&amp;lt;br&amp;gt;&amp;#039;;&lt;br /&gt;
		isError = true;&lt;br /&gt;
	}&lt;br /&gt;
	&lt;br /&gt;
	if (isError) {&lt;br /&gt;
		//document.getElementById(&amp;quot;answer&amp;quot;).innerHTML = outputText;&lt;br /&gt;
		$(&amp;#039;#span1&amp;#039;).html(outputText);&lt;br /&gt;
	}&lt;br /&gt;
	return isError;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function calculateA(answerNumber, roomsLeft, c){&lt;br /&gt;
	var a = c + (2 * roomsLeft) - answerNumber;&lt;br /&gt;
	//console.log(a, &amp;quot; = &amp;quot;, c , &amp;quot; + (2 * &amp;quot;, roomsLeft, &amp;quot;) - &amp;quot;,answerNumber)&lt;br /&gt;
	if (a &amp;lt; 0 || a % 1 !== 0){ &lt;br /&gt;
	//console.log(&amp;quot;a % 1 = &amp;quot;,a % 1);&lt;br /&gt;
	return -1;&lt;br /&gt;
	}&lt;br /&gt;
	return a;&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
function calculateB(answerNumber, roomsLeft, c){&lt;br /&gt;
	var b = answerNumber - roomsLeft - (2 * c);&lt;br /&gt;
	//console.log(b, &amp;quot; = &amp;quot;, answerNumber , &amp;quot; - &amp;quot;,roomsLeft ,&amp;quot; - (2 * &amp;quot;, c, &amp;quot;)&amp;quot;)&lt;br /&gt;
	if (b &amp;lt; 0 || b % 1 !== 0){ &lt;br /&gt;
	//console.log(&amp;quot;b % 1 = &amp;quot;,b % 1)&lt;br /&gt;
	return -1;&lt;br /&gt;
	}&lt;br /&gt;
	return b;&lt;br /&gt;
}&lt;/div&gt;</summary>
		<author><name>Necroxia Staff</name></author>
	</entry>
</feed>