#!/usr/bin/perl $maru_str = "O"; $batu_str = "X"; $nutral_str = "."; #$my_move; $turn = "O"; #maru_turn for($x=1;$x<=3;$x++){ for($y=1;$y<=3;$y++){ $arrange[$x][$y] = "."; } } ##game_start## while(1){ if( $turn eq "O"){ &maru_turn(); }else{ &batu_turn(); } &display_print(); &judge(); &turn_change(); } sub maru_turn { print "please input number ... (ex)11,21,23,33\n"; #get_point while(){ chop($_); if($_ eq "11"){ if( $arrange[1][1] eq "."){ $arrange[1][1] = "O"; }else{ print("aleady put it\n"); next; } }elsif($_ eq "12"){ if( $arrange[1][2] eq "."){ $arrange[1][2] = "O"; }else{ print("aleady put it\n"); next; } }elsif($_ eq "13"){ if( $arrange[1][3] eq "."){ $arrange[1][3] = "O"; }else{ print("aleady put it\n"); next; } }elsif($_ eq "21"){ if( $arrange[2][1] eq "."){ $arrange[2][1] = "O"; }else{ print("aleady put it\n"); next; } }elsif($_ eq "22"){ if( $arrange[2][2] eq "."){ $arrange[2][2] = "O"; }else{ print("aleady put it\n"); next; } }elsif($_ eq "23"){ if( $arrange[2][3] eq "."){ $arrange[2][3] = "O"; }else{ print("aleady put it\n"); next; } }elsif($_ eq "31"){ if( $arrange[3][1] eq "."){ $arrange[3][1] = "O"; }else{ print("aleady put it\n"); next; } }elsif($_ eq "32"){ if( $arrange[3][2] eq "."){ $arrange[3][2] = "O"; }else{ print("aleady put it\n"); next; } }elsif($_ eq "33"){ if( $arrange[3][3] eq "."){ $arrange[3][3] = "O"; }else{ print("aleady put it\n"); next; } }else{ print("elegurar number\n"); next; } last; } } sub batu_turn{ #$flag = "OK"; srand(time^$$); $data = int(rand(100)); LOOP: while( $data > 0 ){ for($i=1;$i<=3;$i++){ for($k=1;$k<=3;$k++){ if( $arrange[$i][$k] eq "."){ if( $data > 1 ){ $data = $data - 1; }else{ $arrange[$i][$k] = "X"; $data = -1; last LOOP if $data = -1; } } } } } } sub display_print { system("clear\n"); for($x=1;$x<=3;$x++){ for($y=1;$y<=3;$y++){ print( $arrange[$x][$y] ); } print("\n"); } print("\n"); } sub judge { $equal_flag = "OFF"; for( $n=1;$n<=3;$n++ ){ if( $arrange[$n][1] eq $turn && $arrange[$n][2] eq $turn && $arrange[$n][3] eq $turn){ print $turn . " win !!"; exit; } if( $arrange[1][$n] eq $turn && $arrange[2][$n] eq $turn && $arrange[3][$n] eq $turn){ print $turn . " win !!"; exit; } } if( $arrange[1][1] eq $turn && $arrange[2][2] eq $turn && $arrange[3][3] eq $turn){ print $turn . " win !!"; exit; } if( $arrange[3][1] eq $turn && $arrange[2][2] eq $turn && $arrange[1][3] eq $turn){ print $turn . " win !!"; exit; } for($n=1;$n<=3;$n++){ for($m=1;$m<=3;$m++){ if($arrange[$n][$m] eq "."){ $equal_flag = "ON"; } } } if( $equal_flag eq "OFF"){ print " equal !! \n"; exit; } } sub turn_change{ if( $turn eq "O"){ $turn = "X"; }else{ $turn = "O"; } }