function save(){
var str=makeCookieString();
setCookie("sudoku_fingerprint",str);
alert("此數獨九宮格已經保存了");
}
function load(){
clearer();
var str=getCookie("sudoku_fingerprint");
if(str==""||str==null){
alert("沒有找到儲存遊戲")
return false;
}
compleated=0;
var index=0;
var puzzle_cells=str.split(";");
for(var a=0;a<9;a++){
for(var b=0;b<9;b++){
number=puzzle_cells[index];
if(number.charAt(0)=="."){
number=number.charAt(1);
cells[a][b].disabled=true;
}
cells[a][b].value=number;
index++;
}
}
}
function toggleTimer(){
if(!timer_paused){
clearTimeout(timer_clock);
timer_element.style.color="#f00";
$("timer_control").value="繼續";
timer_paused=1;
var edit_mask=$("pause-hider");
edit_mask.style.display="block";
if(!timer_seconds)timer_seconds=0;
var secs=timer_seconds%60;
var mins=Math.floor(timer_seconds/60);
if(secs<10)secs="0"+secs;
if(mins<10)mins="0"+mins;
edit_mask.innerHTML="<br /><strong>遊戲暫停於 "+mins+":"+secs+"</strong><br />"+
"<a onclick='toggleTimer()' style='CURSOR:pointer'>按此處繼續...</a><br />"+
"<IFRAME FRAMEBORDER=0 MARGINWIDTH=0 MARGINHEIGHT=0 SCROLLING=NO WIDTH=300 HEIGHT=250 ALLOWTRANSPARENCY=TRUE SRC='../ad.html'></IFRAME>";
}else{
$("timer_control").value="暫停一下";
timer_element.style.color="#000";
timer_paused=0;
timer();
var edit_mask=$("pause-hider");
edit_mask.style.display="none";
}
}
function checker(){
var found=0;
show("驗算遊戲...","#a84efa");
loop:
for(var a=0;a<9;a++){
for(var b=0;b<9;b++){
var ele=cells[a][b];
var id="c"+(a+1)+(b+1);
var value=ele.value
if(isNaN(value)||value<1||value>9){
if(value==""){
show("有未完成的單格","#d78601");
}else{
show("找到不正確的輸入","#d78601");
}
found=1;
ele.style.background="red";
setTimeout("discolorCells('"+id+"')",2000);
break loop;
}
else if(value){
if(!checkForUnique(a,b,false)){
ele.style.background="red";
document.getElementById(repeated_at).style.background="red";
show("數字重複了哦","#d78601");
setTimeout("discolorCells('"+repeated_at+"','"+id+"')",2000);
found++;
break loop;
}
}else{
show("還有單格未完成，請完成後再試","#d78601");
ele.style.background="red";
setTimeout("discolorCells('"+id+"')",2000);
found=1;
break loop;
}
}
}
if(!found){
if(compleated)
alert("太可惜了，放棄以後的遊戲不能算贏哦。請重新在來吧！");
else
alert("恭喜聰明的你已經完成了遊戲，可以向更高難度再下一城哦！");
stopTimer();
show("遊戲已經結束！不如再下一城吧！","#000000");
}
}
function reloadGame(){
if(confirm("將會清空數獨表！\n請確認是否繼續!\n")){
str2pos(orginal_game);
}
}
function solve(){
show("正在揭開此數獨表之謎底...");
if(confirm("將會為您揭示此數獨表之答案\n真的就此放棄嗎？\n")){
str2pos(this_puzzle);
compleated=1;
show("此數獨表已經破解完成");
stopTimer();
}
}
function checkStatus(){
var invalid_cells=0;
var empty_cells=0;
for(var a=0;a<9;a++){
for(var b=0;b<9;b++){
var ele=cells[a][b];
var value=ele.value
if(isNaN(value)||value<1||value>9){
if(value==""){
empty_cells++;
}else{
invalid_cells++;
}
}
else if(value){
if(!checkForUnique(a,b,true)){
ele.style.background="red";
var id="c"+(a+1)+(b+1);
$(repeated_at).style.background="red";
setTimeout("discolorCells('"+repeated_at+"','"+id+"')",2000);
return;
}
}else{
empty_cells++;
}
}
}
show("您暫時來說還完成得不錯哦。還有 "+(invalid_cells+empty_cells)+" 個小格格未填上。","#006600");
fadeColor("display_area","#ffff00","#ffffff",30,100,"b");
}
function BnewGame(){
if(confirm("將會為您計算出一個全新的數獨表\n確定開始一個新的遊戲嗎？\n"))
newGame();
}