KI言語で三目並べを作成してみました。
| 
					 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104  | 
						Kf(_Game_Sanmoku){ 	Pe{ 		/*キーステーションが最初に実行するキーセット*/ 		N(_main); 	} } K(_main){ 	Se{ 		@area{~border{~style="solid";~shape="roundsquare";~radius="50";}~margin{~top="0";~left="30";~right="30";~bottom="30";}} 		@row{~back{~color="#ffffffff";}~border{~style="solid";~width{~top="0";~left="0";~right="0";~bottom="1";}}} 		@col{~border{~style="solid";~width{~top="0";~left="0";~right="1";~bottom="0";}}} 	} 	De{ 		(str).turn="〇"; 		(key).chkPattern{ 			{0,1,2}{3,4,5}{6,7,8}{0,3,6}{1,4,7}{2,5,8}{0,4,8}{2,4,6} 		} 	} 	U{ 		/* 説明エリア */ 		R0.2(#DescriptionArea){ 			C(#Message) 			Cb0.3(#Clear,"クリア"){ 				Bs{ 					sub(#Init); 				} 			} 		} 		/* 表示エリア */ 		R(#PlayArea,@area){ 			R(@row){ 				Cbb(@col){Bs{sub(#PushCell,#me<<2);}} 				Cbb(@col){Bs{sub(#PushCell,#me<<2);}} 				Cbb(@col){Bs{sub(#PushCell,#me<<2);}} 			} 			R(@row){ 				Cbb(@col){Bs{sub(#PushCell,#me<<2);}} 				Cbb(@col){Bs{sub(#PushCell,#me<<2);}} 				Cbb(@col){Bs{sub(#PushCell,#me<<2);}} 			} 			R(@row){ 				Cbb(@col){Bs{sub(#PushCell,#me<<2);}} 				Cbb(@col){Bs{sub(#PushCell,#me<<2);}} 				Cbb(@col){Bs{sub(#PushCell,#me<<2);}} 			} 		} 	} 	/* 初期化処理 */ 	Pe(#Init){ 		/*ボタンの値をクリアする*/ 		forall((key)tmp,#PlayArea,"Cb"){ 			tmp?=""; 		} 		.turn?="〇"; 		#Message?=format2("{0}の順番です",.turn?); 	} 	X 	/* セルクリック時の処理 */ 	Pe(#PushCell,(key)dk){ 		if(dk?!=""){ 			return; 		} 		/* 〇✕設定 */ 		dk?=.turn?; 		/* 勝敗判定 */ 		if(sub(#Judgment)){ 			return; 		} 		/* ターンチェンジ */ 		if(.turn?=="〇"){ 			.turn?="✕"; 		} else { 			.turn?="〇"; 		} 		#Message?=format2("{0}の順番です",.turn?); 	} 	/* 勝敗判定 */ 	Pe((int)#Judgment){ 		De{ 			(key).inputArray; 		} 		/* 配列をクリア */ 		.inputArray%delC(); 		/* 各セルの情報を配列に格納 */ 		forall((key)tmp,#PlayArea,"Cb"){ 			if(tmp?=="〇"){ 				.inputArray%addC(tree('D(1)')); 			}else if(tmp?=="✕"){ 				.inputArray%addC(tree('D(-1)')); 			}else{ 				.inputArray%addC(tree('D(0)')); 			} 		} 		/* チェックパターンと判定 */ 		foreach((key)pattern,.chkPattern){ 			(int)i=.inputArray[pattern[0]?]?+.inputArray[pattern[1]?]?+.inputArray[pattern[2]?]?; 			if(i==3||i==-3){ 				#Message?=format2("勝負あり!{0}の勝ちです",.turn?); 				return(true); 			} 		} 		return(false); 	} }  | 
					
Game_Sanmoku.ksf 4.84 KB
            
        
    実行結果