Han sacado un
código para el shopping.
Funciona pero ahora no aparece un elemento solo, sino que
señala en verde el correcto y los otros tres en rojo, hay que esperar entre intento e intento y
hay que ejecutar el script para cada ocasiónjavascript:(function(){var msnShoppingGamePane=document.querySelector("shopping-page-base")?.shadowRoot.querySelector("shopping-homepage")?.shadowRoot.querySelector("msft-feed-layout")?.shadowRoot.querySelector("msn-shopping-game-pane");var shoppingGame=document.querySelector("shopping-page-base")?.shadowRoot.querySelector("shopping-homepage")?.shadowRoot.querySelector("msft-feed-layout")?.shadowRoot.querySelector("msn-shopping-game-pane")?.shadowRoot.querySelector("msft-stripe");function getObjectIndexFromArray(objects,id){for(let i=0;i<objects.length;i++){if(objects[i].id===id){return i}}return-1}function getLowestPriceItemID(priceMap){var lowestPriceItemID;var currLowestPrice=Infinity;for(const[itemID,item]of Object.entries(priceMap)){let price=parseFloat(item.price.substring(1));if(currLowestPrice>price){lowestPriceItemID=itemID;currLowestPrice=price}}return lowestPriceItemID}function highlightItems(correctIndex,items){for(let i=0;i<items.length;i++){if(i==correctIndex){items[i].style.borderColor="green"}else{items[i].style.borderColor="red"}}}var lowestPriceItemID=getLowestPriceItemID(msnShoppingGamePane.originalPricesbyId);var itemIndex=getObjectIndexFromArray(msnShoppingGamePane.displayedShoppingEntities,lowestPriceItemID);highlightItems(itemIndex,shoppingGame.getElementsByClassName("shopping-game-card-outline"))})();
La verdad no me convencía,
he modificado el código original, el borde muy fino y a mi que veo casi igual el verde y el rojo... primero puse el borde del verde más gordo y el rojo lo quité, y después eliminé los que eran incorrectos pero dejé el verde ya que recuerda a eol
Y como última novedad, he hecho que el panel del game
salga en la parte superior, para no tener que ir buscándolo.
javascript:(function(){var msnShoppingGamePane=document.querySelector("shopping-page-base")?.shadowRoot.querySelector("shopping-homepage")?.shadowRoot.querySelector("msft-feed-layout")?.shadowRoot.querySelector("msn-shopping-game-pane");msnShoppingGamePane.style.setProperty("grid-area", "slot1");var shoppingGame=document.querySelector("shopping-page-base")?.shadowRoot.querySelector("shopping-homepage")?.shadowRoot.querySelector("msft-feed-layout")?.shadowRoot.querySelector("msn-shopping-game-pane")?.shadowRoot.querySelector("msft-stripe");function getObjectIndexFromArray(objects,id){for(let i=0;i<objects.length;i++){if(objects[i].id===id){return i}}return-1}function getLowestPriceItemID(priceMap){var lowestPriceItemID;var currLowestPrice=Infinity;for(const[itemID,item]of Object.entries(priceMap)){let price=parseFloat(item.price.substring(1));if(currLowestPrice>price){lowestPriceItemID=itemID;currLowestPrice=price}}return lowestPriceItemID}function highlightItems(correctIndex,items){for(let i=0;i<items.length;i++){if(i==correctIndex){items[i].style.borderColor="green";items[i].style.borderWidth="10px";}else{items[i].style.borderColor="";items[i].style.display="none";}}}var lowestPriceItemID=getLowestPriceItemID(msnShoppingGamePane.originalPricesbyId);var itemIndex=getObjectIndexFromArray(msnShoppingGamePane.displayedShoppingEntities,lowestPriceItemID);highlightItems(itemIndex,shoppingGame.getElementsByClassName("shopping-game-card-outline"))})();
Recomiendo contar los aciertos hasta llegar a 10 ya que cada vez que quiere te sale lo de back tomorrow, pero si no has acertado 10 y vuelves a entrar puedes seguir jugando hasta que lleves los 10.
Además, para evitar tener que actualizar la página, que cada vez que entras cargará como 2 gigas y medio, he creado otro favorito con este código que es el que usábamos hasta ahora pero así no tengo que cargar toda la página, si no que resetea solo la parte del juego, yo lo he llamado
shopping resetjavascript: var msnShoppingGamePane = document.querySelector("shopping-page-base") ?.shadowRoot.querySelector("shopping-homepage") ?.shadowRoot.querySelector("msft-feed-layout") ?.shadowRoot.querySelector("msn-shopping-game-pane"); if(msnShoppingGamePane != null){ msnShoppingGamePane.resetGame();}else alert("no encuentro el panel del juego!");