Path: blob/main/projects/minesweeper/minesweeper.js
1834 views
window.top!=window.self&&(window.top.location="http://cdn.discourse.org/uploads/meta_discourse/2000/d326c07d2188da9e.gif"),$((function(){var e,t,i,o="expert",n="100",a="center",s=!1;if(location.hash&&location.hash.length>1)for(e=location.hash.substring(1).split("-"),t=0;t<e.length;t++)switch(e[t]){case"beginner":o="beginner";break;case"intermediate":o="intermediate";break;case"150":n="150";break;case"200":n="200";break;case"left":a="left";break;case"night":s=!0}function r(e){"left"==e?($(".outer-container").css("text-align","left"),$("body").css("margin-left","20px")):"center"==e&&($(".outer-container").css("text-align","center"),$("body").css("margin-left","0px"))}function c(e){$("body").toggleClass("night-mode",e)}function l(){var e=$('input[name="zoom"]:checked').val(),t=$('input[name="position"]:checked').val(),i=$('input[name="nightMode"]').is(":checked"),o=[];$("#beginner").attr("checked")?o.push("beginner"):$("#intermediate").attr("checked")&&o.push("intermediate"),1!=e&&o.push(100*e),"center"!=t&&o.push(t),i&&o.push("night"),o.length>0?location.hash="#"+o.join("-"):location.hash=""}$("#"+o).attr("checked",!0),$("#zoom"+n).attr("checked",!0),$("#position-"+a).attr("checked",!0),$("#nightMode").attr("checked",s),document.getElementById("game-container").className="z"+n,r(a),s&&c(s),i=new Minesweeper([[3,18,62],[2,16,56],[1,14,51],[1,10,45]],(function(){var e,t,i,o,n;$("#beginner").attr("checked")?(e=1,t=9,i=9,o=10):$("#intermediate").attr("checked")?(e=2,t=16,i=16,o=40):$("#expert").attr("checked")?(e=3,t=16,i=30,o=99):$("#custom").attr("checked")&&(e=0,t=parseInt($("#custom_height").val(),10),isNaN(t)&&(t=20),t=Math.max(1,t),t=Math.min(99,t),$("#custom_height").val(t),i=parseInt($("#custom_width").val(),10),isNaN(i)&&(i=30),i=Math.max(8,i),i=Math.min(99,i),$("#custom_width").val(i),o=parseInt($("#custom_mines").val(),10),isNaN(o)&&(o=Math.round(t*i/5)),o=Math.max(0,o),o=Math.min(t*i-1,o),$("#custom_mines").val(o));return n=parseFloat($('input[name="zoom"]:checked').val()),{gameTypeId:e,numRows:t,numCols:i,numMines:o,zoom:n}}),(function(e){switch(e.gameTypeId){case 1:$("#beginner").prop("checked",!0);break;case 2:$("#intermediate").prop("checked",!0);break;case 3:$("#expert").prop("checked",!0);break;default:$("#custom").prop("checked",!0),$("#custom_height").val(e.numRows),$("#custom_width").val(e.numCols),$("#custom_mines").val(e.numMines)}})),i.onWin=function(e,t){var i;switch(e){case 1:i="Beginner";break;case 2:i="Intermediate";break;case 3:i="Expert";break;default:return}var o="I just beat #MinesweeperOnline in "+t+" second"+(1===t?"":"s")+" on "+i+" mode!";$("#share-twitter").attr("href","https://twitter.com/intent/tweet?text="+encodeURIComponent(o)+"&url="+encodeURIComponent("https://minesweeperonline.com")+"&hashtags=MinesweeperOnline");var n=o.replace("#MinesweeperOnline","Minesweeper Online");$("#share-facebook").attr("href","https://www.facebook.com/sharer/sharer.php?u="+encodeURIComponent("https://minesweeperonline.com")+""e="+encodeURIComponent(n)+"&hashtag="+encodeURIComponent("#MinesweeperOnline")),$("#share-text").text(o+" https://minesweeperonline.com"),$("#share").fadeIn()},i.onNewHighScore=function(e){$("#scores-panes").load("scores-panes.php?interval="+e+"&r="+Math.random()),1===e&&$("#daily-link").click(),2===e&&$("#weekly-link").click(),3===e&&$("#monthly-link").click(),4===e&&$("#alltime-link").click()},i.newGame(),l(),$("#options-link, #options-close").click((function(){$("#options").toggle(),$("#display").hide(),$("#controls").hide(),$("#import").hide(),$("#export").hide()})),$("#options-form").submit((function(e){$("#options").hide(),i.newGame(),l(),e.preventDefault()})),$("#display-link, #display-close").click((function(){$("#options").hide(),$("#display").toggle(),$("#controls").hide(),$("#import").hide(),$("#export").hide()})),$('input[name="zoom"]').change((function(){var e=parseFloat($(this).val());i.resize(e),l()})),$('input[name="position"]').change((function(){r($(this).val()),l()})),$('input[name="nightMode"]').change((function(){c($(this).is(":checked")),l()})),$("#controls-link, #controls-close").click((function(){$("#options").hide(),$("#display").hide(),$("#controls").toggle(),$("#import").hide(),$("#export").hide()})),$("#import-link, #import-close").click((function(){$("#options").hide(),$("#display").hide(),$("#controls").hide(),$("#import").toggle(),$("#export").hide(),$("#import").is(":visible")&&($("#import input[type=submit]").prop("disabled",!0),$("#import textarea").select().trigger("propertychange"))})),$("#import textarea").bind("input propertychange",(function(){var e=i.isImportable($.trim($(this).val()));$("#import input[type=submit]").prop("disabled",!e)})),$("#import-form").submit((function(e){$("#import").hide(),i.import_($.trim($("#import textarea").val())),e.preventDefault()})),$("#export-link, #export-close").click((function(){if($("#options").hide(),$("#display").hide(),$("#controls").hide(),$("#import").hide(),$("#export").toggle(),$("#export").is(":visible")){$("#export textarea").val(i.export_()).select();var e=document.execCommand("copy");$("#export-message").text(e?"Game state copied to your clipboard!":"Copy game state to your clipboard:"),$("#export-first-click-message").toggle(!i.hasStartedPlaying())}})),$("#export textarea").mousedown((function(){if(document.activeElement!==$(this)[0]){var e=this;setTimeout((()=>{$(e).select()}),0)}})),$(document).keydown((function(e){27==e.keyCode&&$("#options, #display, #controls, #import, #export").hide()})),$(".scores-tab").click((function(){var e=this.id;$(".scores-tab-selected").removeClass("scores-tab-selected"),$(this).addClass("scores-tab-selected"),$(".scores-pane").hide(),$("#"+e.substring(0,e.length-5)).show()})),$("#share-close").click((function(){$("#share").fadeOut()})),$("#share-twitter, #share-facebook").click((function(e){var t=screen.width,i=screen.height,o=Math.round(t/2-275),n=0;i>420&&(n=Math.round(i/2-210)),window.open($(this).attr("href"),"share","scrollbars=yes,resizable=yes,toolbar=no,location=yes,width=550,height=420,left="+o+",top="+n),e.preventDefault()}))}));123