サイトスワップ掲示板

Re: javascriptによるシンプルサイトスワップエディター改良版

No.111: 2018-10-08(月) 07:25:25
投稿者: セバスちゃん
<script type="text/javascript">
var ss=new Array("0","1","2","3","4","5","6","7","8","9","a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x","y","z");//数値とサイトスワップの変換用
var kazusi=new Array();
var kazusi2 = new Array();
var ikisaki=new Array();
//var ssnagasa;
//for (ii = 1;ii<100;ii++){

//}
//function animejunbi(){
// var ii;

//}

function ketugousuru(){
var moto;
var tasu;
var nagasa;
var motoko;
var tasuko;
var i;
var j;
var k;
var a;
var nori0;
var nori1;
var nori2;
var noristr1;
var noristr2;
var gousei = new Array;
var flg = new Array;
var ikisaki = new Array;
var hyouka = new Array;
var breakPP;
var res;
var sagasu;
var ikisai;
motoko=0;
tasuko=0;

nori0=parseInt(Form1.nori.value);
moto = Form1.waza.value.length;
tasu = Form1.yobi.value.length;
nagasa = moto + tasu + nori0;
sutika(2);
sutika(1);

for(i=0;i<moto;i++){
motoko = motoko + kazusi[i];
}
for(i=0;i<tasu;i++){
tasuko = tasuko + kazusi2[i];
}

for(i=0;i<=nori0;i++){

nori1=i;
nori2=nori0-nori1;
breakPP=0;

for(j=1;j<=nagasa;j++){
hyouka[j] = -1;
if(j<=moto){
flg[j]=1;
}else if(j>moto && j<=(moto+nori1)){
flg[j]=0;
}else if(j>(moto+nori1) && j<=(moto+nori1+tasu)){
flg[j]=1;
}else{
flg[j]=0;
}
// alert(flg[j]);
}
for(k=1;k<=nagasa;k++){
ikisaki[k]=0;
}
for(j=1;j<=nagasa;j++){

if(flg[j]==1 && j<=moto){
ikisaki[j]=kazusi[j-1]+j;
gousei[j]=kazusi[j-1];
while(ikisaki[j]>nagasa){
ikisaki[j]=ikisaki[j]-nagasa;
}
if(hyouka[ikisaki[j]]==-1){
hyouka[ikisaki[j]]= 1;
}else{
breakPP=1;
break;
}

}else if(flg[j]==1){
ikisaki[j]=kazusi2[j-moto-nori1-1]+j;
gousei[j]=kazusi2[j-moto-nori1-1];
while(ikisaki[j]>nagasa){
ikisaki[j]=ikisaki[j]-nagasa;
}
if(hyouka[ikisaki[j]]==-1){
hyouka[ikisaki[j]]= 1;
}else{
breakPP=1;
break;
}

}
// alert(ikisaki[j]);
}
if(breakPP==1){
// alert("ありません");
continue;
}
// for(a=1;a<=nagasa;a++){
// alert("ikisaki,"+ikisaki[a]);
// }
// alert(breakPP);
noristr1="";
noristr2="";
// alert("長さ"+nagasa);
for(j=1;j<=nagasa;j++){
sagasu=0;
if(flg[j]==0){
for(k=1;k<=nagasa;k++){
for(a=1;a<=nagasa;a++){
sagasu=1;
// alert("k"+k+"ikisaki["+a+"]"+ikisaki[a]);
if(ikisaki[a]==k){
sagasu=0;
break;
}
}
if(sagasu==1){
ikisaki[j]=k;
// alert(j);
// alert(ikisaki[j]);
ikisai=j;
if(ikisaki[j]>=ikisai){
ikisai=ikisaki[j]-ikisai;
}else{
ikisai=nagasa-(ikisai-ikisaki[j]);
}
if(j<=moto+nori1+tasu){
noristr1=noristr1+ss[ikisai];
}else{
noristr2=noristr2+ss[ikisai];
}
break;
}
}
}
}
res=confirm('結果\n'+Form1.waza.value+noristr1+Form1.yobi.value+noristr2);
if(res){
Form1.waza.value=Form1.waza.value+noristr1+Form1.yobi.value+noristr2;
break;
}
}
// alert(motoko+tasuko);
if(breakPP==1){
alert("ありません");
}
}

function irekaeru(){
var ue;
var sita;
ue = Form1.waza.value;
sita = Form1.yobi.value;
Form1.waza.value = sita;
Form1.yobi.value = ue;
}
function longs(){//長くする関数
var siteswap;
var nagasa;
var i;
var newsiteswap;
var tasukazu;
var nagasaheri;
var dame;
newsiteswap = "";
nagasa = Form1.waza.value.length;
sutika(0);
hyouka();
dame= 0;
for(i=0;i<nagasa;i++){
if(kazusi[i]+i+1>= nagasa){
nagasaheri=kazusi[i]+i;
tasukazu = 0;
while(nagasaheri>=nagasa){
nagasaheri=nagasaheri-nagasa;
tasukazu=tasukazu+1;
}
if(kazusi[i]+tasukazu>35){
dame = 1;
break;
}
newsiteswap = newsiteswap + ss[kazusi[i]+tasukazu];
}else{
newsiteswap = newsiteswap + ss[kazusi[i]];
}

}
if(dame==0){
newsiteswap = newsiteswap + ss[0];
Form1.waza.value = newsiteswap;
}
}
function shorts(){//短くする関数
var siteswap;
var nagasa;
var i;
var newsiteswap;
var kosuu;
var kazu;
var nagasaheri;
var dame;
var siteswap;
sutika(0);
hyouka();
nagasa= Form1.waza.value.length;
siteswap="";
kosuu=0;
for(i=0;i<nagasa;i++){
kosuu=kosuu+kazusi[i];
}
kazu=kosuu/nagasa;
for(i=0;i<nagasa-1;i++){
siteswap=siteswap+ss[kazusi[i]];
}
Form1.waza.value=siteswap;
nantoka();
}
function rotete(){//後ろにずらす関数
var siteswap;
var nagasa;
var kiritori;
var nokori;
siteswap = Form1.waza.value;
nagasa = siteswap.length;
kiritori = siteswap.charAt(nagasa-1);
nokori = siteswap.substr(0,nagasa-1);
siteswap = kiritori + nokori;
Form1.waza.value = siteswap;

}
function roteteb(){//前にずらす関数
var siteswap;
var nagasa;
var kiritori;
var nokori;
siteswap = Form1.waza.value;
nagasa = siteswap.length;
kiritori = siteswap.charAt(0);
nokori = siteswap.substr(1,nagasa);
siteswap = nokori + kiritori;
Form1.waza.value = siteswap;

}

関連ツリー

【1】 javascriptによるシンプルサイトスワップエディター改良版 No.110 セバスちゃん 2018-10-08(月) 07:23:02
Re: javascriptによるシンプルサイトスワップエディター改良版 No.111 セバスちゃん 2018-10-08(月) 07:25:25
Re: javascriptによるシンプルサイトスワップエディター改良版その3 No.112 セバスちゃん 2018-10-08(月) 07:29:21
Re^2: javascriptによるシンプルサイトスワップエディター改良版その3 No.113 yuji 2018-10-08(月) 12:57:56

掲示板に戻る