Zero1000

Vue2.js(CDN)

12: proto2
1: 11-6



1.

index.html
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>

<style>
	
g{
	color:green;
}

#card{
	width: 400px;
	height: 300px;
	border: 1px solid #aaa;
	
	display: block;
	margin: auto;
	
	text-align: center;
}	
	
</style>



<div id="app">

<div id="card">
	{{out}}

	<div v-if="mode==0">
	<button @click='start'>start</button>
	</div>

	<div v-if="mode==1">	
		{{today}}<br>

		<hr>
	{{cnt+1}}/{{l}}:({{t1}}/{{t2}})<br>
	{{quiz[cnt]}}<br>
	<button  @click='up'>up</button><br>
	{{tm}}<br>
	{{scr}}<br>
	{{scrs}}<br>
	</div>
	


	<div v-if="mode==2">
	END
	</div>



</div>


<div v-if="debug">
		<hr>
		
		today:{{today}}<br>
		quiz:{{quiz}}<br>
		out:{{out}}<br>
</div>

</div>






<script>


quiz=['dog','cat','bird','sheep']
l=quiz.length

today=[...Array(l)].map((v, i)=> i)




new Vue({

	el:"#app",
	data:{
		debug:0,
		mode:0,
		scr:[],
		scrs:[],		
		timeout:10,
		out:'aaa',
		today:today,
		l:l,
		quiz:quiz,
		cnt:0,
		t1:0,
		t2:0,
		t1max:2,
		t2max:1,		
		tm:10,
		out:'-',
		
	},
	mounted :function(){
		
		a=this.sort([1,2,3,4],[9,2,5,4])
	

		
		this.out=a
		
		
	
	},	
	
	
	
	methods:{
		
		start(){
			this.mode=1
			this.tm=this.timeout
		},
		
		up(){ 
			

			this.scr.push(this.tm)
			this.tm=this.timeout			
			
			
			
			if(this.cnt+1<this.l){
				  
				this.cnt++
				
			}
			else{

				this.scrs.push(this.scr)
				this.scr=[]
				this.cnt=0			
				
				this.t1++
				
				if(this.t1==this.t1max){
					this.next_t2()
				}
				
	
			}

			
		},
		
		next_t2(){
			
		
			this.out=this.array_wa(this.scrs)	
		},
		

		new_today(t,s,n){
			
			a=this.sort(t,s)
			
			b=a.slice(n)
			
			return b
		},

		
	
		
		
		array_wa(x){ //行の和を求める
		
		
			
			l1=x.length     // 2 
			l2=x[0].length //3
		
			a=[]
			
		
			for(i=0;i<l2;i++){
			for(b=0,j=0;j<2;j++){b=b+x[j][i]}
			a.push( b )	
			}

			return a
		},		
		
		
		
	
		
		
		sort(num,scr){
			
			data=[]
			l=num.length
			
			for(i=0;i<l;i++){
	
				data.push({n:num[i],s:scr[i]})
			}
			
			data.sort(this.compare)
			
			b=[]
			l=data.length
			
	

			for(i=0;i<data.length;i++){
				b.push(data[i].n)
			}
		
		
			

			
			return b
		},
		compare( a, b ){
			var r = 0;
			if( a.s < b.s ){ r = 1; }
			else if( a.s > b.s ){ r = -1; }

			return r;
		},
	},
	
	mounted :function(){
		
  		tm1=setInterval(()=>{
	  		
	  		if(this.tm>0){this.tm--}
	  		
	  		
  		},100),


  		//this.out='aaa'
  		this.out=this.new_today([1,2,3],[1,2,5],2)
  		
  		
    
    },


});


</script>