ืฉืืื ืืืจืื ืืขืืืชืื ืืขืชืื! ืืืฉ ืื ืืืื ืขืืจืชื ืืืื ืืืฉืชืชืฃ ืืคืจืืืงื ืืืืชื, ืขืืจืชื ืืืชื, ืืื ืื ืงืจื ืฉืืืื ื ืกืืืืช ืืืฉืืืช ืื ืืืืืชื ืืงืืช ืืืง ื-RP ืขืฆืื. ืืืจื ืืขืืืช ืืขื ืืื ืืช ืืื ืืืื ื-RP, ืืขืืืช ืืงืืจืก ืืจืืืืืช ืืคืื ืืืืืื ืคืืืช ืืืจืงืืืื, ืืืืืื ืฉืืช ืจืืื ืืืจ ืคืชืจืชื. ืืื, ืืื ืฉืืืืฉืจืื ืฉืื ืื ืืชืืืื ืืืืฉืื ืืืืื, ืืืืืชื ืืืฆืืจ ืืฉืืง ืืื ืืจื ื ืืจืืื ืืฉืชืชืคืื. ืงืืฉืืจืื ืืืฉืืงืื ืืืจืื:
ืืืง ืืง ื ืจืื ืื ืืื ืืืฉืืง ืืคืฉืื ืืืืชืจ, ืื ืืืืืชื ืืืืง ืืช ืืืฉืืื ืืืกืคืจ ืืฉืืืืช ืืฉื ื:
ืืืืืืจืืชื ืืจืืฉืื ืืื ืืืืงืช ืื ืืฉืื
- ืืคืืืงืฆืืืช ืืกืืฃ ืืืืืงืช ืืืืืื ืืฉืืง
- ืจื ืืฉืชืชืคืื
- ืฆืืจืืฃ ืืกื ื ืชืื ืื ืฉื ื ืื ืืืืฉืื ืงืื ืกืืื
- ืืฆืืจืช ืขืืฆืื ืืืืชื, ืืชืืืช ืชืื ืืืช ืืคืื, ืืืฉืง ืืฉืืง
- ืืืืจืื ืืช ืืื ืืืื
- ืฉืื
- ืฉื ื ืฉืืงื ืื ืืชืืืคืื, ืืื ืืขืืืจ ืืฆืืื, ืืฉื ื ืืคืก. ืื ืคืฉืื.
String[][] strings = {{"O", "O", "_"},
{"_", "X", "O"},
{"X", "X", "X"},
for (String [] ss : strings){
for (String s : ss) System.out.print(s + " ");
System.out.println(); //ะดะปั ะฟะตัะตะฒะพะดะฐ ัััะพะบะธ
}
ืืืกื ืืฆืื:
O O _
_ X O
X X X
ืืื ืื ืืกืฃ ืืชืฆืืื, ืืฉ ืื ื ืื ืืฉืืืืช ืขืจืืื, ืืืื ืืืจ ืืคืฉืจืืืช ืืคืฉืจืืืืช. ืืชื ืืืื ืืืฉืืืช ืืืจืืืืช, ืืชื ืืืื ืืืฆืืจ ืืืืงืช ืกืคืืจื ืืืืืืช ( enum
), ืืื ืื ื ืืขืืืฃ ืืืฉืืืช ืืกืคืจืื, ืืืืืืืฃ ืืืชื ื-"X" ื-"O" ืจืง ืืฉืื ืืืฆืืื ืขื ืืืกื. ืชื ืืื ืืืืืช, ืืืฉื, 1 - "X", 2 - "O", 0 - "_". ืื ืืื ืืืืงืื ืฉืื ืขืืืจ ืืชืืืช X ืื O ืืฉืืืฉืช?
ืืืืืืจืืชื ืืจืืฉืื ืืื ืืืืงืช ืื ืืฉืื
int[][] canvas = {{00, 01, 02},
{10, 11, 12},
{20, 21, 22}}
ืฉืืืืืื ืื ืฆืืื:
00-01-02, 10-11-12, 20-21-22, 00-10-20, 01-11-21, 02-12-22, 00-11-22, 20-11-02 โ ะฒัะตะณะพ 8.
ืืืืงืื ืขื ืืื ืืฉืืืืช ืืกืคืจืื, ืืื ืืกืชืืจ ืฉืฆืจืื ืืืืืง ืืช ืื ืืฉืื, ืื 8 ืืฉืืืืืื, ืืื ืคืขื. ืืืืื, ืื ืื ืืจืื, ืื ืื ืืืคืืฉ ืืืจ ืืกืคืจื ืืจืืกืืจืื ื ืืืืื ืฉืืื 0 ื-1 ืืืืืืจื, ืืฉ ืืื ืืขื ืืืชืจ ืืืฉืจ ืืื ืืืฉืืืื, ืืื ืืชื ืขืืืื ืจืืฆื ืืฉืื ืืืคืืืืื ืืืชืจ ืืืฉืจ ืืืืืง ืืช ืื ืืชืืื. ืืจืขืืื ืืฉื ื ืฉืขืื ืื ืืื ืืืืืง ืจืง ืืช ืืชื ืฉืกืืื ืขื ืืืืื ืืงืืื, ืื ืฉืขืืืื ื ืืื ืืงืืืข ืืช ืืื ืฆื, ืื ื ืืข ืื ืืืฆืข ืืช ืืืืื ืืื. ืื, ืืืงืื ืื 8 ืืฉืืืืืื, ื ืงืื ืจืง 2, 3 ืื 4 ืฉืืืืืื, ืชืืื ืืชื, ืจืื ืืช ืืชืืื ื: ืขืืฉืื ืฆืจืื ืืืืื ืืื ืืงืืืข ืืืื ืฉืืืื ืฆืจืื ืืืืืช ืืืฉืง? ืืื ืืื ืชื ืฉืฉืืืืฉ ืืืขืจื ืื ืืืืื ืืื ื ื ืื ืืืืืื. ืืืืืชื ืืืืืง ืืคืฉืจืืืืช ืืืจืืช. ืืืชืืื ืขืื ืื ืืจืขืืื ืฉืืคืฉืจ ืืฉืืืจ ืืช ืืฉืื ืืืกืคืจ ืื ืชืฉืข ืกืคืจืืช, ืืืฉื, ืืืชื ืฉืื ืฉืืฆืื ื ืขื ืืืกื ืืืื ืืืืืชื ืื: 220012111, ืื ื ืืกืืืจ ืืืฆืืขืืชื ืื ืื ืืื... ืืงืื ืืื, 1 - "X", 2 - "O" , 0 โ " ", ืืืืืจ 220012111 = "OO__XOXXX", ืื ืื ืืืจื ืื ืกืคืจื ืฉืืืฉืืช ืืชื ืืื ืืก ืืขืืจ ืฉืืจื ืืืืกืืฃ ืจืืืืื ืขืืืจ ืึผึฐืึดืืจืึผืช:
ะ ะ _
_ ะฅ ะ
ะฅ ะฅ ะฅ
ืืื ืฉืื, ื ืื ืืืืกืื, ืืืืฆื ืืืฉืืจ ืืชืฆืืื, ืืื ืื ื ืื ืืืฉืืืื! ืืคืชืจืื ื ืืฆื ืืฉืกืืคืจืชื ืืช ืืชืืื 1-9, ืื ืืฉืืชื, ืื ืืชืื ืืช ืืกืคืืจื ืืืืืจ ืืชืืืื ื-0 ืืืืกืคืจืช ืืืชื ืืื ืืชืืื ื.ืื ืฉืืช ืื ืืฉืื ืืืืจืืืืช? ืื ืชืกืชืื ืขื ืืชืืื ื ืืืขืื, ืืชืืจืจ ืฉืืคืชืจืื ืืช ืขื 2 ืฆืืจืืคืื ืืฉ ืืกืคืจ ืกืืืืจื ืื ืืืื, ื-4 ืฆืืจืืคืื ืืฉ ืืกืคืจ ืกืืืืจื 4, ื-3 ืฆืืจืืคืื ืืฉ ืืช ืืฉืืจ. ืื ืืืขืชื ืืืกืงื ื ืฉืฆืจืื ืืฉืืืจ ืขื ืืืจืฉ ืืืฉืืงืื ืืืขืจื ืืกืคืจืื ืงืืืข: ืืืืจืฆืื ืคืฉืืื ืืื ืืกืคืจืื, ืืืืืช ืืฉืืืื ืืคื ืืืืืืจืืชื ืฉื ืืืจ, ืคืื ืคืฉืื ืืืกื. ืืืื ืืืืืจืืชื ืืืฉืืืื ืขืฆืื. ืืื ื ืื ืืคื ืืกืืจ: ืืื ืืืคืฉืจืืืืช ืืฉ ืืืืงื ืฉื ืืฉืืจื ืืืขืืืื, ืื ืื ื ืืืืงืื ืจืง ืืืชื. ืื ืืืืคืืฉ ืื ืืชืงืื, ื ืืืืง ืืช ืืกืคืจ ืืชื ืืืื/ืื-ืืืื, ืื ืืื ืื-ืืืื, ืื ื ืืืืจ ืืืฉืืง, ืืื ืืขื ืืืืืง ืืืชืจ, ืื ืืื ืืืื, ืืืืงืื ืื ืืชื ืืื ืฉืืื ืขื ืืืืืกืื ืฉืืืื, ืืืกืคืจืื ืฉื ืืืืืกืื ืืื ืืืฉืจ ืืืืงืื ื-4 ืืฉ ืฉืืจืืช ืฉื 0. ืื ืืื ืฉืงืจ, ื ืืืืง ืืชืืืืช, ืื ืื ื ืืฆืื ืืชืืืืช, ืื ื ืืืืง ืืช ืืืกืคืจ 4, ืื ืื, ื ืืืืจ ืืืฉืืง, ืื ืื, ืื ืื ื ืขืืืจืื ืืืชืจ ืขื ืืงืื ืืืืืืจืื ืืช ืืชืืฆืื ืฉื ืืืืงืช ืืืืืกืื ืืืืจืื. ืื ืจืื ืฉืืืื ืื ืืืื, ืงืฉื ืืืืื ืืช ืื ืืืืจ ืงืจืืืช ืืืืื ืืืืชืืืช ืืืขืื, ืืื ืืืฉืื ืืืื ืืืืจ ืฉืืฉ ืืจืื ืืืชืืืช ืืงืื ืขืฆืื, ืื ืฉืืืื ืืืืืช ืคืฉืื ืืืชืจ, ืื ื ืืฉืื ืืืื ืืื. ืกืืืจื ื ืืช ืืชืืื, ืขืืฉืื ืื ืื ื ืฆืจืืืื ืืืชืืืื ืขื ืฉื ื ืืฉืชืืฉืื ืฉืืชืืืคืื ืืืื ืืื ืืื ืืฉ ืกืืื ืืฉืื, X ืื O. ืืฉืื ืืจืืฉืื, ืืื ืื ื ืฉืื ืคืื ืงืฆืืื ืืืืช ืืจืืื ืืฉืชืืฉืื, ืื ืืืจื ืืงืื ืืืืชืจ ืชืืื ืืืฉืชืืฉ ืืกืืืื ืืื ืืื. X ืชืืื ืขืืฉื ืืช ืืืืื ืืจืืฉืื, O ืชืืื ืขืืฉื ืืช ืืฉื ื, ืืื X ืฉืื, ืืื ืืืื. ืื ืืชืื ื ืืกืืืื ( true/false ), ืืื ื ืืื โ ืื ืืฉืืงื ืื ืืืื ืืื X, ืื false โ ืื O ืืืชืืืืช ืื ืืืื ืืื=!flag ื ืฉืืจ ืืืืฉืื ืืงืื ืืืช ืืืฉืืงื ืื ืืืืื ืชื ืฉืื ืืืืจืื. ืืื ื ืฆืืจื ืืืืชื ื ืฉืืืื ืฉืื ื. BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
ืืฉืืงื ืื ืืื ืืกื ืืช ืืกืคืจื ืืชืืื ืืชืื ืืงืื ืกืืื, ืืืืืฆื ืขื Enter ืชืขืฉื ืืืื. ืืชื ืืืชืืื ืืืกืคืจ ืฉืืืื ืืฉื ื ืืช ืขืจืื ื-0 ื-1 ืื 2, ืืืชืื ืืืฆื ืื ืืืื ืฉื ืชืืืช ืืกืืืื, ืฉื ืืื ืืคืกืงื ืืืขืื. ืืื ืืฉืื ืืืืช ืืช ืืงืื ืืื ืฉืืฃ ืืื ืื ืืืื ืืฉื ืืช X ื-O ืืฉืืชื ืืืจ ืืื :) ืื ืื ืื ืืืื ืืืื ืืก ืืงืื ืกืืื?
- ืฉืืจื ืจืืงื
- ืืืชืืืช, ืกืืื ื ืคืืกืืง, ืกืืืจืืื... ืืืืื ืืืช, ืื ืืกืคืจืื
- ืืกืคืจืื ืฉืืืืื - ืฉืืืื ืื ืืืืฅ ืืืืื ืืืขืจื, ืชืืื ืชืคืืกืื.
Integer.parseInt("2");
ืืื ืืืจืงืช ืืจืืื NumberFormatException
ืื ืืื ืื ืืืืื ืืงืื ืกืคืจื ืืืืจืืืช ื ืชืื ื. ืื ื ืืืืืื ืืกืคืง ืืื ื ืืฉืชื ืื ืงืืืืช ืืจืืฉืื ืืช ืขื ืืื ืืืจืื ืืืจืื ืืื. ืื ืงืืื ืืฉืืืฉืืช ืืืืชื ืืืฆืจ ืฉืืื ืืืจืช ืฉืืืืงืช ืืช ืืขืจื ืฉืืืื, ืืื ืืื ื ืืื ืืืื ืืืขืืืจ ืืช ืืงืฉืช ืืืืจืืืช ืืืชืืื ื ืคืจืืช ืฉืื ืืชืืฆืข ืืืืืช ืืืื ืชืืืืจ ืจืง ืืกืคืจ. ืืกืืืื, ืืฆืจื ื ืฉืื, ืืื ื ืฉืืื ืฉืืฆืืื ืืืชื, ืืื ื ืฉืืื ืฉืืืืงืช "ืืื ืืฉืืงื ืืื ื ืืฆื ืืฉืขื?", ืืืืืชื ื ืืช ืืืกืคืจืื ืฉืืืื ื. ื ืฉืืจ ืืขื ืืืื ืืขืฉืืช, ืืืืืง ืชืืงื - ืฉืืื ื ืคืจืืช ืฉืขืืืจืช ืืืขืจื ืืืืคืฉืช 0, ืืืฆืืื ืืช ืชืืฆืืืช ืืืฉืืง. ืื ืืื, ืืงืื ืืืื, ืืืฉืืง ืืชืืจืจ ืืงืื, ืจืง ืืืืงื ืืืช, ืื ืืฉืคืจื ืืขืชืงื ืงืฉืืืื ืืืืืื, ืืื ืืืืื, ืคืฉืื ืืืขืชืืง ืืื ืืคืจืืืงื ืฉืืื ืืืืคืขืื ืืืชื ืืื, ืื ื ืืืืชื ืืื ืืขืฆืื, ืืื ืขืืฉืื ืื ื ืืฉืชืื ืื ืืขืฉืืช ืืช ืื ืืื ืืืฃ ืืื ืื ื ืืืืืฅ ืขื ืื :) ืืืฆืืื ืืืืื ืืืืืื JAVA! ื .ื ืฉืืจ ืื ืงืืืืช - ืืจืืื ืืฉืชืชืคืื ืืืกื ื ืชืื ืื ืืืืขื ืืืืฉื, ืืืจ ืืชืืืชื ืืืืื ืืช ืืืืืจ :)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class GameField {
static int [] canvas = {0,0,0,
0,0,0,
0,0,0};
//012, 345, 678, 036, 147, 258, 048, 246
public static void main(String[] args){
boolean b;
boolean isCurrentX = false;
do {
isCurrentX = !isCurrentX;
drawCanvas();
System.out.println("mark " + (isCurrentX ? "X" : "O"));
int n = getNumber();
canvas[n] = isCurrentX ? 1 : 2;
b = !isGameOver(n);
if (isDraw()){
System.out.println("Draw");
return;
}
} while (b);
drawCanvas();
System.out.println();
System.out.println("The winner is " + (isCurrentX ? "X" : "O") + "!");
}
static int getNumber(){
BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));
while (true){
try {
int n = Integer.parseInt(reader.readLine());
if (n >= 0 && n < canvas.length && canvas[n]==0){
return n;
}
System.out.println("Choose free cell and enter its number");
} catch (NumberFormatException e) {
System.out.println("Please enter the number");
} catch (IOException e) {
}
}
}
static boolean isGameOver(int n){
// 0 1 2
// 3 4 5
// 6 7 8
//ะฟะพะธัะบ ัะพะฒะฟะฐะดะตะฝะธะน ะฟะพ ะณะพัะธะทะพะฝัะฐะปะธ
int row = n-n%3; //ะฝะพะผะตั ัััะพะบะธ - ะฟัะพะฒะตััะตะผ ัะพะปัะบะพ ะตั
if (canvas[row]==canvas[row+1] &&
canvas[row]==canvas[row+2]) return true;
//ะฟะพะธัะบ ัะพะฒะฟะฐะดะตะฝะธะน ะฟะพ ะฒะตััะธะบะฐะปะธ
int column = n%3; //ะฝะพะผะตั ััะพะปะฑัะฐ - ะฟัะพะฒะตััะตะผ ัะพะปัะบะพ ะตะณะพ
if (canvas[column]==canvas[column+3])
if (canvas[column]==canvas[column+6]) return true;
//ะผั ะทะดะตัั, ะทะฝะฐัะธั, ะฟะตัะฒัะน ะฟะพะธัะบ ะฝะต ะฟะพะปะพะถะธัะตะปัะฝะพะณะพ ัะตะทัะปััะฐัะฐ
//ะตัะปะธ meaning n ะฝะฐั
ะพะดะธััั ะฝะฐ ะพะดะฝะพะน ะธะท ะณัะฐะฝะตะน - ะฒะพะทะฒัะฐัะฐะตะผ false
if (n%2!=0) return false;
//ะฟัะพะฒะตััะตะผ ะฟัะธะฝะฐะดะปะตะถะธั ะปะธ ะบ ะปะตะฒะพะน ะดะธะฐะณะพะฝะฐะปะธ meaning
if (n%4==0){
//ะฟัะพะฒะตััะตะผ ะตััั ะปะธ ัะพะฒะฟะฐะดะตะฝะธั ะฝะฐ ะปะตะฒะพะน ะดะธะฐะณะพะฝะฐะปะธ
if (canvas[0] == canvas[4] &&
canvas[0] == canvas[8]) return true;
if (n!=4) return false;
}
return canvas[2] == canvas[4] &&
canvas[2] == canvas[6];
}
static void drawCanvas(){
System.out.println(" | | ");
for (int i = 0; i < canvas.length; i++) {
if (i!=0){
if (i%3==0) {
System.out.println();
System.out.println("_____|_____|_____");
System.out.println(" | | ");
}
else
System.out.print("|");
}
if (canvas[i]==0) System.out.print(" " + i + " ");
if (canvas[i]==1) System.out.print(" X ");
if (canvas[i]==2) System.out.print(" O ");
}
System.out.println();
System.out.println(" | | ");
}
public static boolean isDraw() {
for (int n : canvas) if (n==0) return false;
return true;
}
}
GO TO FULL VERSION