簡単言語_NO464toNO466

NO_465

ラベルpc探索時 ジャンプ先を指定しなくてもよくなりました

#module mod_label i_name,i_ID,i_l_value
#modinit str p_name,int p_ID,int p_l_value
	i_name=p_name
	i_ID=p_ID
	i_l_value=p_l_value
	return
#modcfunc get_i_name
	return i_name
#modcfunc get_i_ID
	return i_ID
#modcfunc get_i_l_value
	return i_l_value
#deffunc x_label_init int sw_new_p,str _p_name,int _p_l_value
;	global fv_ID
	if sw_new_p==1{
		fv_ID=0
	}
	newmod o_label,mod_label,_p_name,fv_ID,_p_l_value
	fv_ID++
	return
#defcfunc get_x_label_l_value str __p_name,int __p_ID,local r_name
	r_name=get_i_name(o_label.__p_ID)
	if r_name!=__p_name:return -1
	return get_i_l_value(o_label.__p_ID)
#global

#define ctype l_avoid(%1) goto *l_a_%1
#define ctype catch_l_avoid(%1)*l_a_%1
#define ctype l_def(%1)*l_def_%1
#define ctype l_def_go(%1) *l_def_%1
;goto *l_def_A
;goto l_def(A)
;l_def(E):
;*l_def_B
;x_label_init 1,"a",1 ;0
;x_label_init 0,"aa1",11 ;1
;x_label_init 0,"ab1",13 ;2
;x_label_init 0,"ax1a",15 ;3
dim one_code,256
x=0
f_stop=0
//	ボタンによって選択される選択肢のID
selected_btnext="a"

#enum nop=0
#enum en_get_my_label
#enum en_button_A
#enum en_button_B
#enum en_cls0
#enum en_objsize
#enum en_pos
#enum en_mes
#enum en_stop

my_pc=1
my_pc_B=1
flag_on_l_search=1 
goto *@f
*search_l_end
flag_on_l_search=0
	goto *sw_begin
*@
*sw_begin
	await 1
switch my_pc
case 1:
	if flag_on_l_search==1{
		if my_pc_B==1{my_pc_B++:cp1=1:goto *sw_begin	}
		if my_pc_B==2{my_pc_B++:cp2="a":goto *sw_begin	}
		if my_pc_B==3{my_pc_B++:cp3=1:goto *sw_begin	}
		if my_pc_B==4{my_pc_B++:x_label_init cp1,cp2,cp3:goto *sw_begin	}
		if my_pc_B==5{my_pc_B=1:my_pc++:goto *sw_begin	}// label
	}	
case 2:my_pc++:	
	if flag_on_l_search==0{	cr_com=en_cls0:goto *com_sw }goto *sw_begin	
case 3:
	if flag_on_l_search==0{	
	if my_pc_B==1{my_pc_B++:cp1=120:goto *sw_begin	}
	if my_pc_B==2{my_pc_B++:cp2=24: goto *sw_begin	}
	if my_pc_B==3{cr_com=en_objsize:
		my_pc_B=1:my_pc++:goto *com_sw	}
	}my_pc++:goto *sw_begin	
case 4:
	if flag_on_l_search==0{	
	if my_pc_B==1{my_pc_B++:cp1="aa1":goto *sw_begin	}
	if my_pc_B==2{my_pc_B++:cp2=1: goto *sw_begin	}
	if my_pc_B==3{cr_com=en_get_my_label:
		my_pc_B=1:my_pc++:goto *com_sw	}
	}my_pc++:goto *sw_begin	
case 5:
	if flag_on_l_search==0{	
	if my_pc_B==1{my_pc_B++:cp1="X足す1":goto *sw_begin	}
	if my_pc_B==2{my_pc_B++:bt_pc_1=my_label: goto *sw_begin	}
	if my_pc_B==3{cr_com=en_button_A
		my_pc_B=1:my_pc++:goto *com_sw	}
	}my_pc++:goto *sw_begin	
case 6:
	if flag_on_l_search==0{	
	if my_pc_B==1{my_pc_B++:cp1="ab1":goto *sw_begin	}
	if my_pc_B==2{my_pc_B++:cp2=2: goto *sw_begin	}
	if my_pc_B==3{cr_com=en_get_my_label:
		my_pc_B=1:my_pc++:goto *com_sw	}
	}my_pc++:goto *sw_begin	
case 7:
	if flag_on_l_search==0{	
	if my_pc_B==1{my_pc_B++:cp1="X引く1":goto *sw_begin	}
	if my_pc_B==2{my_pc_B++:bt_pc_2=my_label: goto *sw_begin	}
	if my_pc_B==3{cr_com=en_button_B
		my_pc_B=1:my_pc++:goto *com_sw	}
	}my_pc++:goto *sw_begin	
case 8:
	if flag_on_l_search==0{	
	if my_pc_B==1{my_pc_B++:cp1=150:goto *sw_begin	}
	if my_pc_B==2{my_pc_B++:cp2=0: goto *sw_begin	}
	if my_pc_B==3{cr_com=en_pos:
		my_pc_B=1:my_pc++:goto *com_sw	}
	}my_pc++:goto *sw_begin	
case 9:
	if flag_on_l_search==0{	
	if my_pc_B==1{my_pc_B++:cp1="ボタンを押してください":goto *sw_begin	}
	if my_pc_B==2{cr_com=en_mes:
		my_pc_B=1:my_pc++:goto *com_sw	}
	}my_pc++:goto *sw_begin	
case 10:
	if flag_on_l_search==0{	
		my_pc++:	cr_com=en_stop:goto *com_sw
	}my_pc++:goto *sw_begin	
case 11:
	if flag_on_l_search==1{
		if my_pc_B==1{my_pc_B++:cp1=0:goto *sw_begin	}
		if my_pc_B==2{my_pc_B++:cp2="aa1":goto *sw_begin	}
		if my_pc_B==3{my_pc_B++:cp3=11:goto *sw_begin	}
		if my_pc_B==4{my_pc_B++:x_label_init cp1,cp2,cp3:goto *sw_begin	}
		if my_pc_B==5{my_pc_B=1:my_pc++:goto *sw_begin	}// label
	}	
case 12:
	if flag_on_l_search==0{	
	if my_pc_B==1{my_pc_B++:cp1="ax1a":goto *sw_begin	}
	if my_pc_B==2{my_pc_B++:cp2=3: goto *sw_begin	}
	if my_pc_B==3{cr_com=en_get_my_label:
		my_pc_B=1:my_pc++:goto *com_sw	}
	}my_pc++:goto *sw_begin	
case 13:
	if flag_on_l_search==0{	
		my_pc++:	x+=1:my_pc=my_label:goto *com_sw	
	}my_pc++:goto *sw_begin	
case 14:
	if flag_on_l_search==1{
		if my_pc_B==1{my_pc_B++:cp1=0:goto *sw_begin	}
		if my_pc_B==2{my_pc_B++:cp2="ab1":goto *sw_begin	}
		if my_pc_B==3{my_pc_B++:cp3=14:goto *sw_begin	}
		if my_pc_B==4{my_pc_B++:x_label_init cp1,cp2,cp3:goto *sw_begin	}
		if my_pc_B==5{my_pc_B=1:my_pc++:goto *sw_begin	}// label
	}	
case 15:
	if flag_on_l_search==0{	
	if my_pc_B==1{my_pc_B++:cp1="ax1a":goto *sw_begin	}
	if my_pc_B==2{my_pc_B++:cp2=3: goto *sw_begin	}
	if my_pc_B==3{cr_com=en_get_my_label:
		my_pc_B=1:my_pc++:goto *com_sw	}
	}my_pc++:goto *sw_begin	
case 16:
	if flag_on_l_search==0{	
		my_pc++:	x-=1:my_pc=my_label:goto *sw_begin
	}my_pc++:goto *sw_begin	
 // *ax
case 17:
	if flag_on_l_search==1{
		if my_pc_B==1{my_pc_B++:cp1=0:goto *sw_begin	}
		if my_pc_B==2{my_pc_B++:cp2="ax1a":goto *sw_begin	}
		if my_pc_B==3{my_pc_B++:cp3=17:goto *sw_begin	}
		if my_pc_B==4{my_pc_B++:x_label_init cp1,cp2,cp3:goto *sw_begin	}
		if my_pc_B==5{my_pc_B=1:my_pc=1:goto *search_l_end	}// label
	}	
case 18:
	if flag_on_l_search==0{	
		my_pc++:	cr_com=en_cls0:goto *com_sw
	}my_pc++:goto *sw_begin	
case 19:
	if flag_on_l_search==0{	
	if my_pc_B==1{my_pc_B++:cp1=120:goto *sw_begin	}
	if my_pc_B==2{my_pc_B++:cp2=24: goto *sw_begin	}
	if my_pc_B==3{cr_com=en_objsize:
		my_pc_B=1:my_pc++:goto *com_sw	}
	}my_pc++:goto *sw_begin	
case 20:
	if flag_on_l_search==0{	
	if my_pc_B==1{my_pc_B++:cp1="a":goto *sw_begin	}
	if my_pc_B==2{my_pc_B++:cp2=0: goto *sw_begin	}
	if my_pc_B==3{cr_com=en_get_my_label:
		my_pc_B=1:my_pc++:goto *com_sw	}
	}my_pc++:goto *sw_begin	
case 21:
	if flag_on_l_search==0{	
	if my_pc_B==1{my_pc_B++:cp1="NEXT":goto *sw_begin	}
	if my_pc_B==2{my_pc_B++:bt_pc_1=my_label: goto *sw_begin	}
	if my_pc_B==3{cr_com=en_button_A
		my_pc_B=1:my_pc++:goto *com_sw	}
	}my_pc++:goto *sw_begin	
;case 20:my_pc++:	cr_com=en_button_A:cp1="NEXT":bt_pc_1=1:goto *com_sw
case 22:
	if flag_on_l_search==0{	
	if my_pc_B==1{my_pc_B++:cp1=150:goto *sw_begin	}
	if my_pc_B==2{my_pc_B++:cp2=0: goto *sw_begin	}
	if my_pc_B==3{cr_com=en_pos:
		my_pc_B=1:my_pc++:goto *com_sw	}
	}my_pc++:goto *sw_begin	
case 23:
	if flag_on_l_search==0{	
	if my_pc_B==1{my_pc_B++:cp1="Xの値は"+x+"です":goto *sw_begin	}
	if my_pc_B==2{cr_com=en_mes:
		my_pc_B=1:my_pc++:goto *com_sw	}
	}my_pc++:goto *sw_begin	
case 24:
	if flag_on_l_search==0{	
		my_pc++:	cr_com=en_stop:goto *com_sw
	}my_pc++:goto *sw_begin	
swend
stop

*com_sw
switch cr_com
case en_get_my_label:	my_label=get_x_label_l_value(cp1,cp2):swbreak
case en_button_A:	button cp1,*bt_hoge_1:swbreak
case en_button_B:	button cp1,*bt_hoge_2:swbreak
case en_cls0:	cls 0:swbreak
case en_objsize:objsize cp1,cp2:swbreak
case en_pos:	pos cp1,cp2:swbreak
case en_mes:	mes ""+cp1:swbreak
case en_stop:	f_stop=1::swbreak
swend
if f_stop==1:f_stop=0:stop
goto *sw_begin

*get_my_label
	my_label=get_x_label_l_value(cp1,cp2)
;	my_label=get_x_label_l_value("a",0)
	goto *sw_begin
*bt_hoge_1
;	mes my_pc
	my_pc=bt_pc_1
	goto *sw_begin
*bt_hoge_2
	my_pc=bt_pc_2
	goto *sw_begin
*sw_end
	stop