{"id":68294,"date":"2024-07-06T01:08:59","date_gmt":"2024-07-05T21:38:59","guid":{"rendered":"https:\/\/nabfollower.com\/blog\/design-connect-four-fdh\/"},"modified":"2024-07-06T01:08:59","modified_gmt":"2024-07-05T21:38:59","slug":"design-connect-four-fdh","status":"publish","type":"post","link":"https:\/\/nabfollower.com\/blog\/design-connect-four-fdh\/","title":{"rendered":"Design Connect Four &#8211; \u0627\u0646\u062c\u0645\u0646 DEV"},"content":{"rendered":"<p>Summarize this content to 400 words in Persian Lang<br \/>\n            \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u0637\u0631\u0627\u062d\u06cc \u0628\u0627\u0632\u06cc \u062f\u0631 \u0645\u0635\u0627\u062d\u0628\u0647 \u0647\u0627\u06cc OOAD \u06cc\u06a9 \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0627\u0645\u0644 \u0627\u0632 \u0645\u0647\u0627\u0631\u062a \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0634\u06cc \u06af\u0631\u0627\u060c \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0647\u0627\u06cc \u062d\u0644 \u0645\u0633\u0626\u0644\u0647 \u0648 \u062a\u0641\u06a9\u0631 \u0637\u0631\u0627\u062d\u06cc \u06cc\u06a9 \u0646\u0627\u0645\u0632\u062f \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.  \u0622\u0646\u200c\u0647\u0627 \u0628\u0647 \u0634\u0631\u06a9\u062a\u200c\u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0645\u0647\u0646\u062f\u0633\u0627\u0646 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0645\u0624\u062b\u0631 \u0627\u06cc\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0641\u0647\u0648\u0645\u06cc \u0631\u0627 \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u0646\u062f\u060c \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u06a9\u0646\u0646\u062f.**<\/p>\n<p>\u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0627\u0635\u0648\u0644 OO:<\/p>\n<p>\u06a9\u0644\u0627\u0633 \u0647\u0627 \u0648 \u0627\u0634\u06cc\u0627\u0621: \u0628\u0627\u0632\u06cc \u0647\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0637\u0628\u06cc\u0639\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0628\u0627\u0632\u0646\u0645\u0627\u06cc\u06cc \u0634\u06cc \u06af\u0631\u0627 \u0645\u06cc \u062f\u0647\u0646\u062f.  \u062f\u0627\u0648\u0637\u0644\u0628\u0627\u0646 \u0628\u0627\u06cc\u062f \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f Player\u060c Card\u060c GameBoard\u0648 \u063a\u06cc\u0631\u0647\u060c \u062f\u0631\u06a9 \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0634\u06cc \u0648 \u062a\u0639\u0627\u0645\u0644 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f.<\/p>\n<p>\u0648\u0631\u0627\u062b\u062a:  \u0628\u0627\u0632\u06cc \u0647\u0627 \u0627\u063a\u0644\u0628 \u062f\u0627\u0631\u0627\u06cc \u0627\u0634\u06cc\u0627\u06cc\u06cc \u0628\u0627 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627 \u0648 \u0631\u0641\u062a\u0627\u0631\u0647\u0627\u06cc \u0645\u0634\u0627\u0628\u0647 \u0647\u0633\u062a\u0646\u062f.  \u0648\u0631\u0627\u062b\u062a \u0627\u0645\u06a9\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0632 \u06a9\u062f \u0631\u0627 \u0628\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc \u067e\u0627\u06cc\u0647 \u0645\u0627\u0646\u0646\u062f GamePiece \u0648 \u0632\u06cc\u0631 \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f ChessPiece \u06cc\u0627 PuzzlePiece.  \u0645\u0635\u0627\u062d\u0628\u0647 \u06a9\u0646\u0646\u062f\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0634\u0645\u0627 \u062f\u0631 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0633\u0644\u0633\u0644\u0647 \u0645\u0631\u0627\u062a\u0628 \u0648\u0631\u0627\u062b\u062a \u0645\u0646\u0627\u0633\u0628 \u0631\u0627 \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u067e\u0644\u06cc \u0645\u0648\u0631\u0641\u06cc\u0633\u0645:  \u0628\u0627\u0632\u06cc \u0647\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0627\u0634\u06cc\u0627\u06cc\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f \u06a9\u0647 \u0628\u0647 \u06cc\u06a9 \u0639\u0645\u0644 \u0645\u0634\u0627\u0628\u0647 \u0648\u0627\u06a9\u0646\u0634 \u0645\u062a\u0641\u0627\u0648\u062a\u06cc \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f.  \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u0647\u0631\u0647 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0634\u0637\u0631\u0646\u062c \u0628\u0647 \u0637\u0648\u0631 \u0645\u062a\u0641\u0627\u0648\u062a\u06cc \u062d\u0631\u06a9\u062a \u0645\u06cc \u06a9\u0646\u0646\u062f.  \u0645\u0635\u0627\u062d\u0628\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0631\u06a9 \u0634\u0645\u0627 \u0627\u0632 \u0686\u0646\u062f\u0634\u06a9\u0644\u06cc \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0631\u0648\u0634 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f move() \u06a9\u0647 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0632\u06cc\u0631 \u06a9\u0644\u0627\u0633 \u0631\u0641\u062a\u0627\u0631 \u0645\u062a\u0641\u0627\u0648\u062a\u06cc \u062f\u0627\u0631\u0646\u062f.<\/p>\n<p>\u06a9\u067e\u0633\u0648\u0644\u0647 \u0633\u0627\u0632\u06cc:  \u0628\u0627\u0632\u06cc \u0647\u0627 \u0628\u0627\u06cc\u062f \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u0645\u0646\u0637\u0642 \u0631\u0627 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0627\u0634\u06cc\u0627\u0621 \u0645\u062d\u0635\u0648\u0631 \u06a9\u0646\u0646\u062f.  \u0645\u0635\u0627\u062d\u0628\u0647\u200c\u06af\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0628\u06cc\u0646\u062f \u0622\u06cc\u0627 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc\u06cc \u0637\u0631\u0627\u062d\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062c\u0632\u0626\u06cc\u0627\u062a \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u062f\u0627\u062e\u0644\u06cc \u0631\u0627 \u067e\u0646\u0647\u0627\u0646 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0648 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0646\u0627\u0633\u0628 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f.<\/p>\n<p>\u0645\u0647\u0627\u0631\u062a \u0647\u0627\u06cc \u062d\u0644 \u0645\u0633\u0626\u0644\u0647 \u0648 \u0637\u0631\u0627\u062d\u06cc:<\/p>\n<p>\u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0634\u06a9\u0633\u062a:  \u0628\u0627\u0632\u06cc \u0647\u0627 \u0642\u0648\u0627\u0646\u06cc\u0646 \u0648 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u0647\u0627\u06cc\u06cc \u062f\u0627\u0631\u0646\u062f.  \u0627\u06cc\u0646 \u0645\u0635\u0627\u062d\u0628\u0647 \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0645\u0634\u06a9\u0644\u060c \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0627\u062c\u0632\u0627\u06cc \u0627\u0635\u0644\u06cc \u0648 \u0637\u0631\u0627\u062d\u06cc \u0633\u06cc\u0633\u062a\u0645\u06cc \u06a9\u0647 \u0627\u0644\u0632\u0627\u0645\u0627\u062a \u0628\u0627\u0632\u06cc \u0631\u0627 \u0628\u0631\u0622\u0648\u0631\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/p>\n<p>\u062a\u0641\u06a9\u0631 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645\u06cc:  \u0628\u0627\u0632\u06cc \u0647\u0627 \u0627\u063a\u0644\u0628 \u0634\u0627\u0645\u0644 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u060c \u062a\u0635\u0645\u06cc\u0645 \u06af\u06cc\u0631\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u0628\u0627\u0632\u06cc \u0647\u0633\u062a\u0646\u062f.  \u062f\u0631 \u0645\u0635\u0627\u062d\u0628\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0646\u0637\u0642 \u0627\u0635\u0644\u06cc \u0628\u0627\u0632\u06cc \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u0647\u0627 \u0648 \u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0645\u0646\u0627\u0633\u0628 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f.<\/p>\n<p>\u0632\u0645\u06cc\u0646\u0647Connect Four \u06cc\u06a9 \u0628\u0627\u0632\u06cc \u0645\u062d\u0628\u0648\u0628 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u0634\u0628\u06a9\u0647 7&#215;6 \u0628\u0627\u0632\u06cc \u0645\u06cc \u0634\u0648\u062f.  \u062f\u0648 \u0628\u0627\u0632\u06cc\u06a9\u0646 \u0628\u0647 \u0646\u0648\u0628\u062a \u062f\u06cc\u0633\u06a9 \u0647\u0627\u06cc \u0631\u0646\u06af\u06cc \u0631\u0627 \u062f\u0627\u062e\u0644 \u0634\u0628\u06a9\u0647 \u0645\u06cc \u0627\u0646\u062f\u0627\u0632\u0646\u062f.  \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0632\u06cc\u06a9\u0646\u06cc \u06a9\u0647 \u0686\u0647\u0627\u0631 \u062f\u06cc\u0633\u06a9 \u067e\u0634\u062a \u0633\u0631 \u0647\u0645 (\u0639\u0645\u0648\u062f\u06cc\u060c \u0627\u0641\u0642\u06cc \u06cc\u0627 \u0645\u0648\u0631\u0628) \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u062f \u0628\u0631\u0646\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p>\u0627\u0644\u0632\u0627\u0645\u0627\u062a\u0686\u0646\u062f \u0633\u0648\u0627\u0644 \u0627\u062d\u062a\u0645\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u0633\u06cc\u062f\u0646:<\/p>\n<p>\u0642\u0648\u0627\u0646\u06cc\u0646 \u0628\u0627\u0632\u06cc \u0686\u06cc\u0633\u062a\u061f\u0627\u0646\u062f\u0627\u0632\u0647 \u0634\u0628\u06a9\u0647 \u0686\u0642\u062f\u0631 \u0627\u0633\u062a\u061f\u0686\u0646\u062f \u0628\u0627\u0632\u06cc\u06a9\u0646 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u061f  \u0628\u0627\u0632\u06cc\u06a9\u0646 \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631\u061f  \u0628\u0627\u0632\u06cc\u06a9\u0646 \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 \u0628\u0627\u0632\u06cc\u06a9\u0646\u061f\u0622\u06cc\u0627 \u0645\u0627 \u0627\u0645\u062a\u06cc\u0627\u0632 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645\u061f\u0645\u0628\u0627\u0646\u06cc\u0628\u0627\u0632\u06cc \u0641\u0642\u0637 \u062a\u0648\u0633\u0637 \u062f\u0648 \u0628\u0627\u0632\u06cc\u06a9\u0646 \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u062f \u0634\u062f\u060c \u0628\u0627\u0632\u06cc\u06a9\u0646 \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 \u0628\u0627\u0632\u06cc\u06a9\u0646\u0635\u0641\u062d\u0647 \u0628\u0627\u0632\u06cc \u0628\u0627\u06cc\u062f \u062f\u0627\u0631\u0627\u06cc \u0627\u0628\u0639\u0627\u062f \u0645\u062a\u063a\u06cc\u0631 \u0628\u0627\u0634\u062f\u0647\u062f\u0641 \u0627\u062a\u0635\u0627\u0644 N \u062f\u06cc\u0633\u06a9 \u062f\u0631 \u06cc\u06a9 \u0631\u062f\u06cc\u0641 (\u0639\u0645\u0648\u062f\u06cc\u060c \u0627\u0641\u0642\u06cc \u06cc\u0627 \u0645\u0648\u0631\u0628) \u0627\u0633\u062a.N \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u0627\u0633\u062a (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u0627\u062a\u0635\u0627\u0644 4\u060c 5\u060c 6\u060c \u0648 \u063a\u06cc\u0631\u0647)\u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u0631\u062f\u06cc\u0627\u0628\u06cc \u0627\u0645\u062a\u06cc\u0627\u0632 \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f\u067e\u0633 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u06cc\u06a9 \u0628\u0627\u0632\u06cc\u06a9\u0646 \u0628\u0647 \u0627\u0645\u062a\u06cc\u0627\u0632 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0631\u0633\u06cc\u062f\u060c \u0628\u0631\u0646\u062f\u0647 \u0627\u0633\u062a<\/p>\n<p>\u0637\u0631\u062d\u0633\u0637\u062d \u0628\u0627\u0644\u0627\u0645\u0627 \u0628\u0647 \u06cc\u06a9 \u06a9\u0644\u0627\u0633 Grid \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u0648\u0636\u0639\u06cc\u062a \u0628\u0631\u062f 2 \u0628\u0639\u062f\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645\u0633\u0644\u0648\u0644 \u062a\u062e\u062a\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062e\u0627\u0644\u06cc\u060c \u0632\u0631\u062f (\u0627\u0634\u063a\u0627\u0644 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0628\u0627\u0632\u06cc\u06a9\u0646 1) \u06cc\u0627 \u0642\u0631\u0645\u0632 ( \u0627\u0634\u063a\u0627\u0644 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0628\u0627\u0632\u06cc\u06a9\u0646 2) \u0628\u0627\u0634\u062f.\u0634\u0628\u06a9\u0647 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u0633\u0626\u0648\u0644 \u0628\u0631\u0631\u0633\u06cc \u0634\u0631\u0627\u06cc\u0637 \u0628\u0631\u062f \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u06cc\u06a9 \u06a9\u0644\u0627\u0633 Player \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0631\u0646\u06af \u0642\u0637\u0639\u0647 \u0628\u0627\u0632\u06cc\u06a9\u0646 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645\u0627\u06cc\u0646 \u062e\u06cc\u0644\u06cc \u0645\u0647\u0645 \u0646\u06cc\u0633\u062a\u060c \u0627\u0645\u0627 \u06a9\u067e\u0633\u0648\u0644\u0647 \u06a9\u0631\u062f\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc \u0631\u0648\u0634 \u062e\u0648\u0628\u06cc \u0627\u0633\u062a\u06a9\u0644\u0627\u0633 Game \u0627\u0632 Grid \u0648 Players \u062a\u0634\u06a9\u06cc\u0644 \u062e\u0648\u0627\u0647\u062f \u0634\u062f\u06a9\u0644\u0627\u0633 Game \u0645\u0633\u0626\u0648\u0644 \u062d\u0644\u0642\u0647 \u0628\u0627\u0632\u06cc \u0648 \u067e\u06cc\u06af\u06cc\u0631\u06cc \u0627\u0645\u062a\u06cc\u0627\u0632 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f\u06a9\u062f<\/p>\n<p>import java.util.*;<\/p>\n<p>enum GridPosition {<br \/>\n    EMPTY, YELLOW, RED<br \/>\n}<\/p>\n<p>class Grid {<br \/>\n    private int rows;<br \/>\n    private int columns;<br \/>\n    private int[][] grid;<\/p>\n<p>    public Grid(int rows, int columns) {<br \/>\n        this.rows = rows;<br \/>\n        this.columns = columns;<br \/>\n        initGrid();<br \/>\n    }<\/p>\n<p>    public void initGrid() {<br \/>\n        this.grid = new int[rows][columns];<br \/>\n        for (int i = 0; i  rows; i++) {<br \/>\n            for (int j = 0; j  columns; j++) {<br \/>\n                grid[i][j] = GridPosition.EMPTY.ordinal();<br \/>\n            }<br \/>\n        }<br \/>\n    }<\/p>\n<p>    public int[][] getGrid() {<br \/>\n        return this.grid;<br \/>\n    }<\/p>\n<p>    public int getColumnCount() {<br \/>\n        return this.columns;<br \/>\n    }<\/p>\n<p>    public int placePiece(int column, GridPosition piece) {<br \/>\n        if (column  0 || column &gt;= this.columns) {<br \/>\n            throw new Error(&#8220;Invalid column&#8221;);<br \/>\n        }<br \/>\n        if (piece == GridPosition.EMPTY) {<br \/>\n            throw new Error(&#8220;Invalid piece&#8221;);<br \/>\n        }<br \/>\n        \/\/ Place piece in the lowest empty row<br \/>\n        for (int row = this.rows &#8211; 1; row &gt;= 0; row&#8211;) {<br \/>\n            if (this.grid[row][column] == GridPosition.EMPTY.ordinal()) {<br \/>\n                this.grid[row][column] = piece.ordinal();<br \/>\n                return row;<br \/>\n            }<br \/>\n        }<br \/>\n        return -1;<br \/>\n    }<\/p>\n<p>    public boolean checkWin(int connectN, int row, int col, GridPosition piece) {<br \/>\n        \/\/ Check horizontal<br \/>\n        int count = 0;<br \/>\n        for (int c = 0; c  this.columns; c++) {<br \/>\n            if (this.grid[row][c] == piece.ordinal()) {<br \/>\n                count++;<br \/>\n            } else {<br \/>\n                count = 0;<br \/>\n            }<br \/>\n            if (count == connectN) {<br \/>\n                return true;<br \/>\n            }<br \/>\n        }<\/p>\n<p>        \/\/ Check vertical<br \/>\n        count = 0;<br \/>\n        for (int r = 0; r  this.rows; r++) {<br \/>\n            if (this.grid[r][col] == piece.ordinal()) {<br \/>\n                count++;<br \/>\n            } else {<br \/>\n                count = 0;<br \/>\n            }<br \/>\n            if (count == connectN) {<br \/>\n                return true;<br \/>\n            }<br \/>\n        }<\/p>\n<p>        \/\/ Check diagonal<br \/>\n        count = 0;<br \/>\n        for (int r = 0; r  this.rows; r++) {<br \/>\n            int c = row + col &#8211; r; \/\/ row + col = r + c, for a diagonal<br \/>\n            if (c &gt;= 0 &amp;&amp; c  this.columns &amp;&amp; this.grid[r][c] == piece.ordinal()) {<br \/>\n                count++;<br \/>\n            } else {<br \/>\n                count = 0;<br \/>\n            }<br \/>\n            if (count == connectN) {<br \/>\n                return true;<br \/>\n            }<br \/>\n        }<\/p>\n<p>        \/\/ Check anti-diagonal<br \/>\n        count = 0;<br \/>\n        for (int r = 0; r  this.rows; r++) {<br \/>\n            int c = col &#8211; row + r; \/\/ row &#8211; col = r &#8211; c, for an anti-diagonal<br \/>\n            if (c &gt;= 0 &amp;&amp; c  this.columns &amp;&amp; this.grid[r][c] == piece.ordinal()) {<br \/>\n                count++;<br \/>\n            } else {<br \/>\n                count = 0;<br \/>\n            }<br \/>\n            if (count == connectN) {<br \/>\n                return true;<br \/>\n            }<br \/>\n        }<br \/>\n        return false;<br \/>\n    }<br \/>\n}<\/p>\n<p>class Player {<br \/>\n    private String name;<br \/>\n    private GridPosition piece;<\/p>\n<p>    public Player(String name, GridPosition piece) {<br \/>\n        this.name = name;<br \/>\n        this.piece = piece;<br \/>\n    }<\/p>\n<p>    public String getName() {<br \/>\n        return this.name;<br \/>\n    }<\/p>\n<p>    public GridPosition getPieceColor() {<br \/>\n        return this.piece;<br \/>\n    }<br \/>\n}<\/p>\n<p>class Game {<br \/>\n    static Scanner input = new Scanner(System.in);<br \/>\n    private Grid grid;<br \/>\n    private int connectN;<br \/>\n    private Player[] players;<br \/>\n    private MapString, Integer&gt; score;<br \/>\n    private int targetScore;<\/p>\n<p>    public Game(Grid grid, int connectN, int targetScore) {<br \/>\n        this.grid = grid;<br \/>\n        this.connectN = connectN;<br \/>\n        this.targetScore = targetScore;<\/p>\n<p>        this.players = new Player[] {<br \/>\n            new Player(&#8220;Player 1&#8221;, GridPosition.YELLOW),<br \/>\n            new Player(&#8220;Player 2&#8221;, GridPosition.RED)<br \/>\n        };<\/p>\n<p>        this.score = new HashMap();<br \/>\n        for (Player player : this.players) {<br \/>\n            this.score.put(player.getName(), 0);<br \/>\n        }<br \/>\n    }<\/p>\n<p>    private void printBoard() {<br \/>\n        System.out.println(&#8220;Board:&#8221;);<br \/>\n        int[][] grid = this.grid.getGrid();<br \/>\n        for (int i = 0; i  grid.length; i++) {<br \/>\n            String row = &#8220;&#8221;;<br \/>\n            for (int piece : grid[i]) {<br \/>\n                if (piece == GridPosition.EMPTY.ordinal()) {<br \/>\n                    row += &#8220;0 &#8220;;<br \/>\n                } else if (piece == GridPosition.YELLOW.ordinal()) {<br \/>\n                    row += &#8220;Y &#8220;;<br \/>\n                } else if (piece == GridPosition.RED.ordinal()) {<br \/>\n                    row += &#8220;R &#8220;;<br \/>\n                }<br \/>\n            }<br \/>\n            System.out.println(row);<br \/>\n        }<br \/>\n        System.out.println();<br \/>\n    }<\/p>\n<p>    private int[] playMove(Player player) {<br \/>\n        printBoard();<br \/>\n        System.out.println(player.getName() + &#8220;&#8216;s turn&#8221;);<br \/>\n        int colCnt = this.grid.getColumnCount();<\/p>\n<p>        System.out.print(&#8220;Enter column between 0 and &#8221; + (colCnt &#8211; 1) + &#8221; to add piece: &#8220;);<br \/>\n        int moveColumn = input.nextInt();<br \/>\n        int moveRow = this.grid.placePiece(moveColumn, player.getPieceColor());<br \/>\n        return new int[] { moveRow, moveColumn };<br \/>\n    }<\/p>\n<p>    private Player playRound() {<br \/>\n        while (true) {<br \/>\n            for (Player player : this.players) {<br \/>\n                int[] pos = playMove(player);<br \/>\n                int row = pos[0];<br \/>\n                int col = pos[1];<br \/>\n                GridPosition pieceColor = player.getPieceColor();<br \/>\n                if (this.grid.checkWin(this.connectN, row, col, pieceColor)) {<br \/>\n                    this.score.put(player.getName(), this.score.get(player.getName()) + 1);<br \/>\n                    return player;<br \/>\n                }<br \/>\n            }<br \/>\n        }<br \/>\n    }<\/p>\n<p>    public void play() {<br \/>\n        int maxScore = 0;<br \/>\n        Player winner = null;<br \/>\n        while (maxScore  this.targetScore) {<br \/>\n            winner = playRound();<br \/>\n            System.out.println(winner.getName() + &#8221; won the round&#8221;);<br \/>\n            maxScore = Math.max(this.score.get(winner.getName()), maxScore);<\/p>\n<p>            this.grid.initGrid(); \/\/ reset grid<br \/>\n        }<br \/>\n        System.out.println(winner.getName() + &#8221; won the game&#8221;);<br \/>\n    }<br \/>\n}<\/p>\n<p>class Main {<br \/>\n    public static void main(String[] args) {<br \/>\n        Grid grid = new Grid(6, 7);<br \/>\n        Game game = new Game(grid, 4, 10);<br \/>\n        game.play();<br \/>\n    }<br \/>\n}<\/p>\n<p>    \u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/p>\n<p>    \u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/p>\n<div data-article-id=\"1913144\" id=\"article-body\">\n<p>\u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u0637\u0631\u0627\u062d\u06cc \u0628\u0627\u0632\u06cc \u062f\u0631 \u0645\u0635\u0627\u062d\u0628\u0647 \u0647\u0627\u06cc OOAD \u06cc\u06a9 \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0627\u0645\u0644 \u0627\u0632 \u0645\u0647\u0627\u0631\u062a \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0634\u06cc \u06af\u0631\u0627\u060c \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0647\u0627\u06cc \u062d\u0644 \u0645\u0633\u0626\u0644\u0647 \u0648 \u062a\u0641\u06a9\u0631 \u0637\u0631\u0627\u062d\u06cc \u06cc\u06a9 \u0646\u0627\u0645\u0632\u062f \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f.  \u0622\u0646\u200c\u0647\u0627 \u0628\u0647 \u0634\u0631\u06a9\u062a\u200c\u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0645\u0647\u0646\u062f\u0633\u0627\u0646 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0645\u0624\u062b\u0631 \u0627\u06cc\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0641\u0647\u0648\u0645\u06cc \u0631\u0627 \u0628\u0647 \u0633\u06cc\u0633\u062a\u0645\u200c\u0647\u0627\u06cc \u06a9\u0627\u0631\u0622\u0645\u062f \u062a\u0628\u062f\u06cc\u0644 \u06a9\u0646\u0646\u062f\u060c \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u06a9\u0646\u0646\u062f.**<\/p>\n<p><strong>\u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0627\u0635\u0648\u0644 OO:<\/strong><\/p>\n<ul>\n<li>\n<strong>\u06a9\u0644\u0627\u0633 \u0647\u0627 \u0648 \u0627\u0634\u06cc\u0627\u0621:<\/strong> \u0628\u0627\u0632\u06cc \u0647\u0627 \u0628\u0647 \u0637\u0648\u0631 \u0637\u0628\u06cc\u0639\u06cc \u062e\u0648\u062f \u0631\u0627 \u0628\u0647 \u0628\u0627\u0632\u0646\u0645\u0627\u06cc\u06cc \u0634\u06cc \u06af\u0631\u0627 \u0645\u06cc \u062f\u0647\u0646\u062f.  \u062f\u0627\u0648\u0637\u0644\u0628\u0627\u0646 \u0628\u0627\u06cc\u062f \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f <code>Player<\/code>\u060c <code>Card<\/code>\u060c <code>GameBoard<\/code>\u0648 \u063a\u06cc\u0631\u0647\u060c \u062f\u0631\u06a9 \u062e\u0648\u062f \u0631\u0627 \u0627\u0632 \u0627\u06cc\u062c\u0627\u062f \u0634\u06cc \u0648 \u062a\u0639\u0627\u0645\u0644 \u0646\u0634\u0627\u0646 \u0645\u06cc \u062f\u0647\u062f.<\/li>\n<li>\n<strong>\u0648\u0631\u0627\u062b\u062a:<\/strong>  \u0628\u0627\u0632\u06cc \u0647\u0627 \u0627\u063a\u0644\u0628 \u062f\u0627\u0631\u0627\u06cc \u0627\u0634\u06cc\u0627\u06cc\u06cc \u0628\u0627 \u0648\u06cc\u0698\u06af\u06cc \u0647\u0627 \u0648 \u0631\u0641\u062a\u0627\u0631\u0647\u0627\u06cc \u0645\u0634\u0627\u0628\u0647 \u0647\u0633\u062a\u0646\u062f.  \u0648\u0631\u0627\u062b\u062a \u0627\u0645\u06a9\u0627\u0646 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0645\u062c\u062f\u062f \u0627\u0632 \u06a9\u062f \u0631\u0627 \u0628\u0627 \u0627\u06cc\u062c\u0627\u062f \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc \u067e\u0627\u06cc\u0647 \u0645\u0627\u0646\u0646\u062f <code>GamePiece<\/code> \u0648 \u0632\u06cc\u0631 \u06a9\u0644\u0627\u0633 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f <code>ChessPiece<\/code> \u06cc\u0627 <code>PuzzlePiece<\/code>.  \u0645\u0635\u0627\u062d\u0628\u0647 \u06a9\u0646\u0646\u062f\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0634\u0645\u0627 \u062f\u0631 \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0633\u0644\u0633\u0644\u0647 \u0645\u0631\u0627\u062a\u0628 \u0648\u0631\u0627\u062b\u062a \u0645\u0646\u0627\u0633\u0628 \u0631\u0627 \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\n<strong>\u067e\u0644\u06cc \u0645\u0648\u0631\u0641\u06cc\u0633\u0645:<\/strong>  \u0628\u0627\u0632\u06cc \u0647\u0627 \u0645\u0645\u06a9\u0646 \u0627\u0633\u062a \u0627\u0634\u06cc\u0627\u06cc\u06cc \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u0646\u062f \u06a9\u0647 \u0628\u0647 \u06cc\u06a9 \u0639\u0645\u0644 \u0645\u0634\u0627\u0628\u0647 \u0648\u0627\u06a9\u0646\u0634 \u0645\u062a\u0641\u0627\u0648\u062a\u06cc \u0646\u0634\u0627\u0646 \u062f\u0647\u0646\u062f.  \u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644\u060c \u0645\u0647\u0631\u0647 \u0647\u0627\u06cc \u0645\u062e\u062a\u0644\u0641 \u0634\u0637\u0631\u0646\u062c \u0628\u0647 \u0637\u0648\u0631 \u0645\u062a\u0641\u0627\u0648\u062a\u06cc \u062d\u0631\u06a9\u062a \u0645\u06cc \u06a9\u0646\u0646\u062f.  \u0645\u0635\u0627\u062d\u0628\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062f\u0631\u06a9 \u0634\u0645\u0627 \u0627\u0632 \u0686\u0646\u062f\u0634\u06a9\u0644\u06cc \u0631\u0627 \u0627\u0632 \u0637\u0631\u06cc\u0642 \u0631\u0648\u0634 \u0647\u0627\u06cc\u06cc \u0645\u0627\u0646\u0646\u062f <code>move()<\/code> \u06a9\u0647 \u0628\u0631 \u0627\u0633\u0627\u0633 \u0632\u06cc\u0631 \u06a9\u0644\u0627\u0633 \u0631\u0641\u062a\u0627\u0631 \u0645\u062a\u0641\u0627\u0648\u062a\u06cc \u062f\u0627\u0631\u0646\u062f.<\/li>\n<li>\n<strong>\u06a9\u067e\u0633\u0648\u0644\u0647 \u0633\u0627\u0632\u06cc:<\/strong>  \u0628\u0627\u0632\u06cc \u0647\u0627 \u0628\u0627\u06cc\u062f \u062f\u0627\u062f\u0647 \u0647\u0627 \u0648 \u0645\u0646\u0637\u0642 \u0631\u0627 \u062f\u0631 \u062f\u0627\u062e\u0644 \u0627\u0634\u06cc\u0627\u0621 \u0645\u062d\u0635\u0648\u0631 \u06a9\u0646\u0646\u062f.  \u0645\u0635\u0627\u062d\u0628\u0647\u200c\u06af\u0631 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u062f \u0628\u0628\u06cc\u0646\u062f \u0622\u06cc\u0627 \u06a9\u0644\u0627\u0633\u200c\u0647\u0627\u06cc\u06cc \u0637\u0631\u0627\u062d\u06cc \u0645\u06cc\u200c\u06a9\u0646\u06cc\u062f \u06a9\u0647 \u062c\u0632\u0626\u06cc\u0627\u062a \u067e\u06cc\u0627\u062f\u0647\u200c\u0633\u0627\u0632\u06cc \u062f\u0627\u062e\u0644\u06cc \u0631\u0627 \u067e\u0646\u0647\u0627\u0646 \u0645\u06cc\u200c\u06a9\u0646\u0646\u062f \u0648 \u0631\u0648\u0634\u200c\u0647\u0627\u06cc \u062f\u0633\u062a\u0631\u0633\u06cc \u0645\u0646\u0627\u0633\u0628 \u0631\u0627 \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f.<\/li>\n<\/ul>\n<p><strong>\u0645\u0647\u0627\u0631\u062a \u0647\u0627\u06cc \u062d\u0644 \u0645\u0633\u0626\u0644\u0647 \u0648 \u0637\u0631\u0627\u062d\u06cc:<\/strong><\/p>\n<ul>\n<li>\n<strong>\u067e\u06cc\u0686\u06cc\u062f\u06af\u06cc \u0634\u06a9\u0633\u062a:<\/strong>  \u0628\u0627\u0632\u06cc \u0647\u0627 \u0642\u0648\u0627\u0646\u06cc\u0646 \u0648 \u0645\u06a9\u0627\u0646\u06cc\u0632\u0645 \u0647\u0627\u06cc\u06cc \u062f\u0627\u0631\u0646\u062f.  \u0627\u06cc\u0646 \u0645\u0635\u0627\u062d\u0628\u0647 \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0634\u0645\u0627 \u0631\u0627 \u062f\u0631 \u062a\u062c\u0632\u06cc\u0647 \u0648 \u062a\u062d\u0644\u06cc\u0644 \u0645\u0634\u06a9\u0644\u060c \u0634\u0646\u0627\u0633\u0627\u06cc\u06cc \u0627\u062c\u0632\u0627\u06cc \u0627\u0635\u0644\u06cc \u0648 \u0637\u0631\u0627\u062d\u06cc \u0633\u06cc\u0633\u062a\u0645\u06cc \u06a9\u0647 \u0627\u0644\u0632\u0627\u0645\u0627\u062a \u0628\u0627\u0632\u06cc \u0631\u0627 \u0628\u0631\u0622\u0648\u0631\u062f\u0647 \u0645\u06cc \u06a9\u0646\u062f\u060c \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u0645\u06cc \u06a9\u0646\u062f.<\/li>\n<li>\n<strong>\u062a\u0641\u06a9\u0631 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645\u06cc:<\/strong>  \u0628\u0627\u0632\u06cc \u0647\u0627 \u0627\u063a\u0644\u0628 \u0634\u0627\u0645\u0644 \u0645\u062d\u0627\u0633\u0628\u0627\u062a\u060c \u062a\u0635\u0645\u06cc\u0645 \u06af\u06cc\u0631\u06cc \u0648 \u0645\u062f\u06cc\u0631\u06cc\u062a \u0648\u0636\u0639\u06cc\u062a \u0628\u0627\u0632\u06cc \u0647\u0633\u062a\u0646\u062f.  \u062f\u0631 \u0645\u0635\u0627\u062d\u0628\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0628\u0628\u06cc\u0646\u06cc\u062f \u06a9\u0647 \u0622\u06cc\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u062f \u0645\u0646\u0637\u0642 \u0627\u0635\u0644\u06cc \u0628\u0627\u0632\u06cc \u0631\u0627 \u0628\u0627 \u0627\u0633\u062a\u0641\u0627\u062f\u0647 \u0627\u0632 \u0627\u0644\u06af\u0648\u0631\u06cc\u062a\u0645 \u0647\u0627 \u0648 \u0633\u0627\u062e\u062a\u0627\u0631\u0647\u0627\u06cc \u062f\u0627\u062f\u0647 \u0645\u0646\u0627\u0633\u0628 \u067e\u06cc\u0627\u062f\u0647 \u0633\u0627\u0632\u06cc \u06a9\u0646\u06cc\u062f.<\/li>\n<\/ul>\n<p><strong>\u0632\u0645\u06cc\u0646\u0647<\/strong><br \/>Connect Four \u06cc\u06a9 \u0628\u0627\u0632\u06cc \u0645\u062d\u0628\u0648\u0628 \u0627\u0633\u062a \u06a9\u0647 \u0628\u0631 \u0631\u0648\u06cc \u06cc\u06a9 \u0634\u0628\u06a9\u0647 7&#215;6 \u0628\u0627\u0632\u06cc \u0645\u06cc \u0634\u0648\u062f.  \u062f\u0648 \u0628\u0627\u0632\u06cc\u06a9\u0646 \u0628\u0647 \u0646\u0648\u0628\u062a \u062f\u06cc\u0633\u06a9 \u0647\u0627\u06cc \u0631\u0646\u06af\u06cc \u0631\u0627 \u062f\u0627\u062e\u0644 \u0634\u0628\u06a9\u0647 \u0645\u06cc \u0627\u0646\u062f\u0627\u0632\u0646\u062f.  \u0627\u0648\u0644\u06cc\u0646 \u0628\u0627\u0632\u06cc\u06a9\u0646\u06cc \u06a9\u0647 \u0686\u0647\u0627\u0631 \u062f\u06cc\u0633\u06a9 \u067e\u0634\u062a \u0633\u0631 \u0647\u0645 (\u0639\u0645\u0648\u062f\u06cc\u060c \u0627\u0641\u0642\u06cc \u06cc\u0627 \u0645\u0648\u0631\u0628) \u062f\u0631\u06cc\u0627\u0641\u062a \u06a9\u0646\u062f \u0628\u0631\u0646\u062f\u0647 \u0627\u0633\u062a.<\/p>\n<p><strong>\u0627\u0644\u0632\u0627\u0645\u0627\u062a<\/strong><br \/>\u0686\u0646\u062f \u0633\u0648\u0627\u0644 \u0627\u062d\u062a\u0645\u0627\u0644\u06cc \u0628\u0631\u0627\u06cc \u067e\u0631\u0633\u06cc\u062f\u0646:<\/p>\n<p>\u0642\u0648\u0627\u0646\u06cc\u0646 \u0628\u0627\u0632\u06cc \u0686\u06cc\u0633\u062a\u061f<br \/>\u0627\u0646\u062f\u0627\u0632\u0647 \u0634\u0628\u06a9\u0647 \u0686\u0642\u062f\u0631 \u0627\u0633\u062a\u061f<br \/>\u0686\u0646\u062f \u0628\u0627\u0632\u06cc\u06a9\u0646 \u0648\u062c\u0648\u062f \u062f\u0627\u0631\u062f\u061f  \u0628\u0627\u0632\u06cc\u06a9\u0646 \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 \u06a9\u0627\u0645\u067e\u06cc\u0648\u062a\u0631\u061f  \u0628\u0627\u0632\u06cc\u06a9\u0646 \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 \u0628\u0627\u0632\u06cc\u06a9\u0646\u061f<br \/>\u0622\u06cc\u0627 \u0645\u0627 \u0627\u0645\u062a\u06cc\u0627\u0632 \u0631\u0627 \u062f\u0646\u0628\u0627\u0644 \u0645\u06cc \u06a9\u0646\u06cc\u0645\u061f<br \/>\u0645\u0628\u0627\u0646\u06cc<br \/>\u0628\u0627\u0632\u06cc \u0641\u0642\u0637 \u062a\u0648\u0633\u0637 \u062f\u0648 \u0628\u0627\u0632\u06cc\u06a9\u0646 \u0627\u0646\u062c\u0627\u0645 \u062e\u0648\u0627\u0647\u062f \u0634\u062f\u060c \u0628\u0627\u0632\u06cc\u06a9\u0646 \u062f\u0631 \u0645\u0642\u0627\u0628\u0644 \u0628\u0627\u0632\u06cc\u06a9\u0646<br \/>\u0635\u0641\u062d\u0647 \u0628\u0627\u0632\u06cc \u0628\u0627\u06cc\u062f \u062f\u0627\u0631\u0627\u06cc \u0627\u0628\u0639\u0627\u062f \u0645\u062a\u063a\u06cc\u0631 \u0628\u0627\u0634\u062f<br \/>\u0647\u062f\u0641 \u0627\u062a\u0635\u0627\u0644 N \u062f\u06cc\u0633\u06a9 \u062f\u0631 \u06cc\u06a9 \u0631\u062f\u06cc\u0641 (\u0639\u0645\u0648\u062f\u06cc\u060c \u0627\u0641\u0642\u06cc \u06cc\u0627 \u0645\u0648\u0631\u0628) \u0627\u0633\u062a.<br \/>N \u06cc\u06a9 \u0645\u062a\u063a\u06cc\u0631 \u0627\u0633\u062a (\u0628\u0647 \u0639\u0646\u0648\u0627\u0646 \u0645\u062b\u0627\u0644 \u0627\u062a\u0635\u0627\u0644 4\u060c 5\u060c 6\u060c \u0648 \u063a\u06cc\u0631\u0647)<br \/>\u0628\u0627\u06cc\u062f \u06cc\u06a9 \u0633\u06cc\u0633\u062a\u0645 \u0631\u062f\u06cc\u0627\u0628\u06cc \u0627\u0645\u062a\u06cc\u0627\u0632 \u0648\u062c\u0648\u062f \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u062f<br \/>\u067e\u0633 \u0627\u0632 \u0627\u06cc\u0646\u06a9\u0647 \u06cc\u06a9 \u0628\u0627\u0632\u06cc\u06a9\u0646 \u0628\u0647 \u0627\u0645\u062a\u06cc\u0627\u0632 \u0645\u0648\u0631\u062f \u0646\u0638\u0631 \u0631\u0633\u06cc\u062f\u060c \u0628\u0631\u0646\u062f\u0647 \u0627\u0633\u062a<\/p>\n<p><strong>\u0637\u0631\u062d<\/strong><br \/>\u0633\u0637\u062d \u0628\u0627\u0644\u0627<br \/>\u0645\u0627 \u0628\u0647 \u06cc\u06a9 \u06a9\u0644\u0627\u0633 Grid \u0628\u0631\u0627\u06cc \u062d\u0641\u0638 \u0648\u0636\u0639\u06cc\u062a \u0628\u0631\u062f 2 \u0628\u0639\u062f\u06cc \u0646\u06cc\u0627\u0632 \u062f\u0627\u0631\u06cc\u0645<br \/>\u0633\u0644\u0648\u0644 \u062a\u062e\u062a\u0647 \u0645\u06cc \u062a\u0648\u0627\u0646\u062f \u062e\u0627\u0644\u06cc\u060c \u0632\u0631\u062f (\u0627\u0634\u063a\u0627\u0644 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0628\u0627\u0632\u06cc\u06a9\u0646 1) \u06cc\u0627 \u0642\u0631\u0645\u0632 ( \u0627\u0634\u063a\u0627\u0644 \u0634\u062f\u0647 \u062a\u0648\u0633\u0637 \u0628\u0627\u0632\u06cc\u06a9\u0646 2) \u0628\u0627\u0634\u062f.<br \/>\u0634\u0628\u06a9\u0647 \u0647\u0645\u0686\u0646\u06cc\u0646 \u0645\u0633\u0626\u0648\u0644 \u0628\u0631\u0631\u0633\u06cc \u0634\u0631\u0627\u06cc\u0637 \u0628\u0631\u062f \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f<br \/>\u0645\u0627 \u0645\u06cc \u062a\u0648\u0627\u0646\u06cc\u0645 \u06cc\u06a9 \u06a9\u0644\u0627\u0633 Player \u0628\u0631\u0627\u06cc \u0646\u0645\u0627\u06cc\u0634 \u0631\u0646\u06af \u0642\u0637\u0639\u0647 \u0628\u0627\u0632\u06cc\u06a9\u0646 \u062f\u0627\u0634\u062a\u0647 \u0628\u0627\u0634\u06cc\u0645<br \/>\u0627\u06cc\u0646 \u062e\u06cc\u0644\u06cc \u0645\u0647\u0645 \u0646\u06cc\u0633\u062a\u060c \u0627\u0645\u0627 \u06a9\u067e\u0633\u0648\u0644\u0647 \u06a9\u0631\u062f\u0646 \u0627\u0637\u0644\u0627\u0639\u0627\u062a \u0628\u0647 \u0637\u0648\u0631 \u06a9\u0644\u06cc \u0631\u0648\u0634 \u062e\u0648\u0628\u06cc \u0627\u0633\u062a<br \/>\u06a9\u0644\u0627\u0633 Game \u0627\u0632 Grid \u0648 Players \u062a\u0634\u06a9\u06cc\u0644 \u062e\u0648\u0627\u0647\u062f \u0634\u062f<br \/>\u06a9\u0644\u0627\u0633 Game \u0645\u0633\u0626\u0648\u0644 \u062d\u0644\u0642\u0647 \u0628\u0627\u0632\u06cc \u0648 \u067e\u06cc\u06af\u06cc\u0631\u06cc \u0627\u0645\u062a\u06cc\u0627\u0632 \u062e\u0648\u0627\u0647\u062f \u0628\u0648\u062f<br \/>\u06a9\u062f<\/p>\n<div class=\"highlight js-code-highlight\">\n<pre class=\"highlight java\"><code><span class=\"kn\">import<\/span> <span class=\"nn\">java.util.*<\/span><span class=\"o\">;<\/span>\n\n<span class=\"kd\">enum<\/span> <span class=\"nc\">GridPosition<\/span> <span class=\"o\">{<\/span>\n    <span class=\"no\">EMPTY<\/span><span class=\"o\">,<\/span> <span class=\"no\">YELLOW<\/span><span class=\"o\">,<\/span> <span class=\"no\">RED<\/span>\n<span class=\"o\">}<\/span>\n\n<span class=\"kd\">class<\/span> <span class=\"nc\">Grid<\/span> <span class=\"o\">{<\/span>\n    <span class=\"kd\">private<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">rows<\/span><span class=\"o\">;<\/span>\n    <span class=\"kd\">private<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">columns<\/span><span class=\"o\">;<\/span>\n    <span class=\"kd\">private<\/span> <span class=\"kt\">int<\/span><span class=\"o\">[][]<\/span> <span class=\"n\">grid<\/span><span class=\"o\">;<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"nf\">Grid<\/span><span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">rows<\/span><span class=\"o\">,<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">columns<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">rows<\/span> <span class=\"o\">=<\/span> <span class=\"n\">rows<\/span><span class=\"o\">;<\/span>\n        <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">columns<\/span> <span class=\"o\">=<\/span> <span class=\"n\">columns<\/span><span class=\"o\">;<\/span>\n        <span class=\"n\">initGrid<\/span><span class=\"o\">();<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">initGrid<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">grid<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"kt\">int<\/span><span class=\"o\">[<\/span><span class=\"n\">rows<\/span><span class=\"o\">][<\/span><span class=\"n\">columns<\/span><span class=\"o\">];<\/span>\n        <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span> <span class=\"n\">i<\/span> <span class=\"o\"> <span class=\"n\">rows<\/span><span class=\"o\">;<\/span> <span class=\"n\">i<\/span><span class=\"o\">++)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">j<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span> <span class=\"n\">j<\/span> <span class=\"o\"> <span class=\"n\">columns<\/span><span class=\"o\">;<\/span> <span class=\"n\">j<\/span><span class=\"o\">++)<\/span> <span class=\"o\">{<\/span>\n                <span class=\"n\">grid<\/span><span class=\"o\">[<\/span><span class=\"n\">i<\/span><span class=\"o\">][<\/span><span class=\"n\">j<\/span><span class=\"o\">]<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">GridPosition<\/span><span class=\"o\">.<\/span><span class=\"na\">EMPTY<\/span><span class=\"o\">.<\/span><span class=\"na\">ordinal<\/span><span class=\"o\">();<\/span>\n            <span class=\"o\">}<\/span>\n        <span class=\"o\">}<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"kt\">int<\/span><span class=\"o\">[][]<\/span> <span class=\"nf\">getGrid<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">grid<\/span><span class=\"o\">;<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"kt\">int<\/span> <span class=\"nf\">getColumnCount<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">columns<\/span><span class=\"o\">;<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"kt\">int<\/span> <span class=\"nf\">placePiece<\/span><span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">column<\/span><span class=\"o\">,<\/span> <span class=\"nc\">GridPosition<\/span> <span class=\"n\">piece<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">column<\/span> <span class=\"o\"> <span class=\"mi\">0<\/span> <span class=\"o\">||<\/span> <span class=\"n\">column<\/span> <span class=\"o\">&gt;=<\/span> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">columns<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"k\">throw<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">Error<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Invalid column\"<\/span><span class=\"o\">);<\/span>\n        <span class=\"o\">}<\/span>\n        <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">piece<\/span> <span class=\"o\">==<\/span> <span class=\"nc\">GridPosition<\/span><span class=\"o\">.<\/span><span class=\"na\">EMPTY<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"k\">throw<\/span> <span class=\"k\">new<\/span> <span class=\"nf\">Error<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Invalid piece\"<\/span><span class=\"o\">);<\/span>\n        <span class=\"o\">}<\/span>\n        <span class=\"c1\">\/\/ Place piece in the lowest empty row<\/span>\n        <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">row<\/span> <span class=\"o\">=<\/span> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">rows<\/span> <span class=\"o\">-<\/span> <span class=\"mi\">1<\/span><span class=\"o\">;<\/span> <span class=\"n\">row<\/span> <span class=\"o\">&gt;=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span> <span class=\"n\">row<\/span><span class=\"o\">--)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">grid<\/span><span class=\"o\">[<\/span><span class=\"n\">row<\/span><span class=\"o\">][<\/span><span class=\"n\">column<\/span><span class=\"o\">]<\/span> <span class=\"o\">==<\/span> <span class=\"nc\">GridPosition<\/span><span class=\"o\">.<\/span><span class=\"na\">EMPTY<\/span><span class=\"o\">.<\/span><span class=\"na\">ordinal<\/span><span class=\"o\">())<\/span> <span class=\"o\">{<\/span>\n                <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">grid<\/span><span class=\"o\">[<\/span><span class=\"n\">row<\/span><span class=\"o\">][<\/span><span class=\"n\">column<\/span><span class=\"o\">]<\/span> <span class=\"o\">=<\/span> <span class=\"n\">piece<\/span><span class=\"o\">.<\/span><span class=\"na\">ordinal<\/span><span class=\"o\">();<\/span>\n                <span class=\"k\">return<\/span> <span class=\"n\">row<\/span><span class=\"o\">;<\/span>\n            <span class=\"o\">}<\/span>\n        <span class=\"o\">}<\/span>\n        <span class=\"k\">return<\/span> <span class=\"o\">-<\/span><span class=\"mi\">1<\/span><span class=\"o\">;<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"kt\">boolean<\/span> <span class=\"nf\">checkWin<\/span><span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">connectN<\/span><span class=\"o\">,<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">row<\/span><span class=\"o\">,<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">col<\/span><span class=\"o\">,<\/span> <span class=\"nc\">GridPosition<\/span> <span class=\"n\">piece<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"c1\">\/\/ Check horizontal<\/span>\n        <span class=\"kt\">int<\/span> <span class=\"n\">count<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span>\n        <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">c<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span> <span class=\"n\">c<\/span> <span class=\"o\"> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">columns<\/span><span class=\"o\">;<\/span> <span class=\"n\">c<\/span><span class=\"o\">++)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">grid<\/span><span class=\"o\">[<\/span><span class=\"n\">row<\/span><span class=\"o\">][<\/span><span class=\"n\">c<\/span><span class=\"o\">]<\/span> <span class=\"o\">==<\/span> <span class=\"n\">piece<\/span><span class=\"o\">.<\/span><span class=\"na\">ordinal<\/span><span class=\"o\">())<\/span> <span class=\"o\">{<\/span>\n                <span class=\"n\">count<\/span><span class=\"o\">++;<\/span>\n            <span class=\"o\">}<\/span> <span class=\"k\">else<\/span> <span class=\"o\">{<\/span>\n                <span class=\"n\">count<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span>\n            <span class=\"o\">}<\/span>\n            <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">count<\/span> <span class=\"o\">==<\/span> <span class=\"n\">connectN<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n                <span class=\"k\">return<\/span> <span class=\"kc\">true<\/span><span class=\"o\">;<\/span>\n            <span class=\"o\">}<\/span>\n        <span class=\"o\">}<\/span>\n\n        <span class=\"c1\">\/\/ Check vertical<\/span>\n        <span class=\"n\">count<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span>\n        <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">r<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span> <span class=\"n\">r<\/span> <span class=\"o\"> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">rows<\/span><span class=\"o\">;<\/span> <span class=\"n\">r<\/span><span class=\"o\">++)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">grid<\/span><span class=\"o\">[<\/span><span class=\"n\">r<\/span><span class=\"o\">][<\/span><span class=\"n\">col<\/span><span class=\"o\">]<\/span> <span class=\"o\">==<\/span> <span class=\"n\">piece<\/span><span class=\"o\">.<\/span><span class=\"na\">ordinal<\/span><span class=\"o\">())<\/span> <span class=\"o\">{<\/span>\n                <span class=\"n\">count<\/span><span class=\"o\">++;<\/span>\n            <span class=\"o\">}<\/span> <span class=\"k\">else<\/span> <span class=\"o\">{<\/span>\n                <span class=\"n\">count<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span>\n            <span class=\"o\">}<\/span>\n            <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">count<\/span> <span class=\"o\">==<\/span> <span class=\"n\">connectN<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n                <span class=\"k\">return<\/span> <span class=\"kc\">true<\/span><span class=\"o\">;<\/span>\n            <span class=\"o\">}<\/span>\n        <span class=\"o\">}<\/span>\n\n        <span class=\"c1\">\/\/ Check diagonal<\/span>\n        <span class=\"n\">count<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span>\n        <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">r<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span> <span class=\"n\">r<\/span> <span class=\"o\"> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">rows<\/span><span class=\"o\">;<\/span> <span class=\"n\">r<\/span><span class=\"o\">++)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"kt\">int<\/span> <span class=\"n\">c<\/span> <span class=\"o\">=<\/span> <span class=\"n\">row<\/span> <span class=\"o\">+<\/span> <span class=\"n\">col<\/span> <span class=\"o\">-<\/span> <span class=\"n\">r<\/span><span class=\"o\">;<\/span> <span class=\"c1\">\/\/ row + col = r + c, for a diagonal<\/span>\n            <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">c<\/span> <span class=\"o\">&gt;=<\/span> <span class=\"mi\">0<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"n\">c<\/span> <span class=\"o\"> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">columns<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">grid<\/span><span class=\"o\">[<\/span><span class=\"n\">r<\/span><span class=\"o\">][<\/span><span class=\"n\">c<\/span><span class=\"o\">]<\/span> <span class=\"o\">==<\/span> <span class=\"n\">piece<\/span><span class=\"o\">.<\/span><span class=\"na\">ordinal<\/span><span class=\"o\">())<\/span> <span class=\"o\">{<\/span>\n                <span class=\"n\">count<\/span><span class=\"o\">++;<\/span>\n            <span class=\"o\">}<\/span> <span class=\"k\">else<\/span> <span class=\"o\">{<\/span>\n                <span class=\"n\">count<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span>\n            <span class=\"o\">}<\/span>\n            <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">count<\/span> <span class=\"o\">==<\/span> <span class=\"n\">connectN<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n                <span class=\"k\">return<\/span> <span class=\"kc\">true<\/span><span class=\"o\">;<\/span>\n            <span class=\"o\">}<\/span>\n        <span class=\"o\">}<\/span>\n\n        <span class=\"c1\">\/\/ Check anti-diagonal<\/span>\n        <span class=\"n\">count<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span>\n        <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">r<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span> <span class=\"n\">r<\/span> <span class=\"o\"> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">rows<\/span><span class=\"o\">;<\/span> <span class=\"n\">r<\/span><span class=\"o\">++)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"kt\">int<\/span> <span class=\"n\">c<\/span> <span class=\"o\">=<\/span> <span class=\"n\">col<\/span> <span class=\"o\">-<\/span> <span class=\"n\">row<\/span> <span class=\"o\">+<\/span> <span class=\"n\">r<\/span><span class=\"o\">;<\/span> <span class=\"c1\">\/\/ row - col = r - c, for an anti-diagonal<\/span>\n            <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">c<\/span> <span class=\"o\">&gt;=<\/span> <span class=\"mi\">0<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"n\">c<\/span> <span class=\"o\"> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">columns<\/span> <span class=\"o\">&amp;&amp;<\/span> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">grid<\/span><span class=\"o\">[<\/span><span class=\"n\">r<\/span><span class=\"o\">][<\/span><span class=\"n\">c<\/span><span class=\"o\">]<\/span> <span class=\"o\">==<\/span> <span class=\"n\">piece<\/span><span class=\"o\">.<\/span><span class=\"na\">ordinal<\/span><span class=\"o\">())<\/span> <span class=\"o\">{<\/span>\n                <span class=\"n\">count<\/span><span class=\"o\">++;<\/span>\n            <span class=\"o\">}<\/span> <span class=\"k\">else<\/span> <span class=\"o\">{<\/span>\n                <span class=\"n\">count<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span>\n            <span class=\"o\">}<\/span>\n            <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">count<\/span> <span class=\"o\">==<\/span> <span class=\"n\">connectN<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n                <span class=\"k\">return<\/span> <span class=\"kc\">true<\/span><span class=\"o\">;<\/span>\n            <span class=\"o\">}<\/span>\n        <span class=\"o\">}<\/span>\n        <span class=\"k\">return<\/span> <span class=\"kc\">false<\/span><span class=\"o\">;<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n\n<span class=\"kd\">class<\/span> <span class=\"nc\">Player<\/span> <span class=\"o\">{<\/span>\n    <span class=\"kd\">private<\/span> <span class=\"nc\">String<\/span> <span class=\"n\">name<\/span><span class=\"o\">;<\/span>\n    <span class=\"kd\">private<\/span> <span class=\"nc\">GridPosition<\/span> <span class=\"n\">piece<\/span><span class=\"o\">;<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"nf\">Player<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span> <span class=\"n\">name<\/span><span class=\"o\">,<\/span> <span class=\"nc\">GridPosition<\/span> <span class=\"n\">piece<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span> <span class=\"o\">=<\/span> <span class=\"n\">name<\/span><span class=\"o\">;<\/span>\n        <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">piece<\/span> <span class=\"o\">=<\/span> <span class=\"n\">piece<\/span><span class=\"o\">;<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"nc\">String<\/span> <span class=\"nf\">getName<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">name<\/span><span class=\"o\">;<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"nc\">GridPosition<\/span> <span class=\"nf\">getPieceColor<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">return<\/span> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">piece<\/span><span class=\"o\">;<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n\n<span class=\"kd\">class<\/span> <span class=\"nc\">Game<\/span> <span class=\"o\">{<\/span>\n    <span class=\"kd\">static<\/span> <span class=\"nc\">Scanner<\/span> <span class=\"n\">input<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Scanner<\/span><span class=\"o\">(<\/span><span class=\"nc\">System<\/span><span class=\"o\">.<\/span><span class=\"na\">in<\/span><span class=\"o\">);<\/span>\n    <span class=\"kd\">private<\/span> <span class=\"nc\">Grid<\/span> <span class=\"n\">grid<\/span><span class=\"o\">;<\/span>\n    <span class=\"kd\">private<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">connectN<\/span><span class=\"o\">;<\/span>\n    <span class=\"kd\">private<\/span> <span class=\"nc\">Player<\/span><span class=\"o\">[]<\/span> <span class=\"n\">players<\/span><span class=\"o\">;<\/span>\n    <span class=\"kd\">private<\/span> <span class=\"nc\">Map<\/span><span class=\"o\"><span class=\"nc\">String<\/span><span class=\"o\">,<\/span> <span class=\"nc\">Integer<\/span><span class=\"o\">&gt;<\/span> <span class=\"n\">score<\/span><span class=\"o\">;<\/span>\n    <span class=\"kd\">private<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">targetScore<\/span><span class=\"o\">;<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"nf\">Game<\/span><span class=\"o\">(<\/span><span class=\"nc\">Grid<\/span> <span class=\"n\">grid<\/span><span class=\"o\">,<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">connectN<\/span><span class=\"o\">,<\/span> <span class=\"kt\">int<\/span> <span class=\"n\">targetScore<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">grid<\/span> <span class=\"o\">=<\/span> <span class=\"n\">grid<\/span><span class=\"o\">;<\/span>\n        <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">connectN<\/span> <span class=\"o\">=<\/span> <span class=\"n\">connectN<\/span><span class=\"o\">;<\/span>\n        <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">targetScore<\/span> <span class=\"o\">=<\/span> <span class=\"n\">targetScore<\/span><span class=\"o\">;<\/span>\n\n        <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">players<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Player<\/span><span class=\"o\">[]<\/span> <span class=\"o\">{<\/span>\n            <span class=\"k\">new<\/span> <span class=\"nf\">Player<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Player 1\"<\/span><span class=\"o\">,<\/span> <span class=\"nc\">GridPosition<\/span><span class=\"o\">.<\/span><span class=\"na\">YELLOW<\/span><span class=\"o\">),<\/span>\n            <span class=\"k\">new<\/span> <span class=\"nf\">Player<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Player 2\"<\/span><span class=\"o\">,<\/span> <span class=\"nc\">GridPosition<\/span><span class=\"o\">.<\/span><span class=\"na\">RED<\/span><span class=\"o\">)<\/span>\n        <span class=\"o\">};<\/span>\n\n        <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">score<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">HashMap<\/span><span class=\"o\">();<\/span>\n        <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"nc\">Player<\/span> <span class=\"n\">player<\/span> <span class=\"o\">:<\/span> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">players<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">score<\/span><span class=\"o\">.<\/span><span class=\"na\">put<\/span><span class=\"o\">(<\/span><span class=\"n\">player<\/span><span class=\"o\">.<\/span><span class=\"na\">getName<\/span><span class=\"o\">(),<\/span> <span class=\"mi\">0<\/span><span class=\"o\">);<\/span>\n        <span class=\"o\">}<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"kd\">private<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">printBoard<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"nc\">System<\/span><span class=\"o\">.<\/span><span class=\"na\">out<\/span><span class=\"o\">.<\/span><span class=\"na\">println<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Board:\"<\/span><span class=\"o\">);<\/span>\n        <span class=\"kt\">int<\/span><span class=\"o\">[][]<\/span> <span class=\"n\">grid<\/span> <span class=\"o\">=<\/span> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">grid<\/span><span class=\"o\">.<\/span><span class=\"na\">getGrid<\/span><span class=\"o\">();<\/span>\n        <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">i<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span> <span class=\"n\">i<\/span> <span class=\"o\"> <span class=\"n\">grid<\/span><span class=\"o\">.<\/span><span class=\"na\">length<\/span><span class=\"o\">;<\/span> <span class=\"n\">i<\/span><span class=\"o\">++)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"nc\">String<\/span> <span class=\"n\">row<\/span> <span class=\"o\">=<\/span> <span class=\"s\">\"\"<\/span><span class=\"o\">;<\/span>\n            <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"kt\">int<\/span> <span class=\"n\">piece<\/span> <span class=\"o\">:<\/span> <span class=\"n\">grid<\/span><span class=\"o\">[<\/span><span class=\"n\">i<\/span><span class=\"o\">])<\/span> <span class=\"o\">{<\/span>\n                <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">piece<\/span> <span class=\"o\">==<\/span> <span class=\"nc\">GridPosition<\/span><span class=\"o\">.<\/span><span class=\"na\">EMPTY<\/span><span class=\"o\">.<\/span><span class=\"na\">ordinal<\/span><span class=\"o\">())<\/span> <span class=\"o\">{<\/span>\n                    <span class=\"n\">row<\/span> <span class=\"o\">+=<\/span> <span class=\"s\">\"0 \"<\/span><span class=\"o\">;<\/span>\n                <span class=\"o\">}<\/span> <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">piece<\/span> <span class=\"o\">==<\/span> <span class=\"nc\">GridPosition<\/span><span class=\"o\">.<\/span><span class=\"na\">YELLOW<\/span><span class=\"o\">.<\/span><span class=\"na\">ordinal<\/span><span class=\"o\">())<\/span> <span class=\"o\">{<\/span>\n                    <span class=\"n\">row<\/span> <span class=\"o\">+=<\/span> <span class=\"s\">\"Y \"<\/span><span class=\"o\">;<\/span>\n                <span class=\"o\">}<\/span> <span class=\"k\">else<\/span> <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"n\">piece<\/span> <span class=\"o\">==<\/span> <span class=\"nc\">GridPosition<\/span><span class=\"o\">.<\/span><span class=\"na\">RED<\/span><span class=\"o\">.<\/span><span class=\"na\">ordinal<\/span><span class=\"o\">())<\/span> <span class=\"o\">{<\/span>\n                    <span class=\"n\">row<\/span> <span class=\"o\">+=<\/span> <span class=\"s\">\"R \"<\/span><span class=\"o\">;<\/span>\n                <span class=\"o\">}<\/span>\n            <span class=\"o\">}<\/span>\n            <span class=\"nc\">System<\/span><span class=\"o\">.<\/span><span class=\"na\">out<\/span><span class=\"o\">.<\/span><span class=\"na\">println<\/span><span class=\"o\">(<\/span><span class=\"n\">row<\/span><span class=\"o\">);<\/span>\n        <span class=\"o\">}<\/span>\n        <span class=\"nc\">System<\/span><span class=\"o\">.<\/span><span class=\"na\">out<\/span><span class=\"o\">.<\/span><span class=\"na\">println<\/span><span class=\"o\">();<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"kd\">private<\/span> <span class=\"kt\">int<\/span><span class=\"o\">[]<\/span> <span class=\"nf\">playMove<\/span><span class=\"o\">(<\/span><span class=\"nc\">Player<\/span> <span class=\"n\">player<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"n\">printBoard<\/span><span class=\"o\">();<\/span>\n        <span class=\"nc\">System<\/span><span class=\"o\">.<\/span><span class=\"na\">out<\/span><span class=\"o\">.<\/span><span class=\"na\">println<\/span><span class=\"o\">(<\/span><span class=\"n\">player<\/span><span class=\"o\">.<\/span><span class=\"na\">getName<\/span><span class=\"o\">()<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\"'s turn\"<\/span><span class=\"o\">);<\/span>\n        <span class=\"kt\">int<\/span> <span class=\"n\">colCnt<\/span> <span class=\"o\">=<\/span> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">grid<\/span><span class=\"o\">.<\/span><span class=\"na\">getColumnCount<\/span><span class=\"o\">();<\/span>\n\n        <span class=\"nc\">System<\/span><span class=\"o\">.<\/span><span class=\"na\">out<\/span><span class=\"o\">.<\/span><span class=\"na\">print<\/span><span class=\"o\">(<\/span><span class=\"s\">\"Enter column between 0 and \"<\/span> <span class=\"o\">+<\/span> <span class=\"o\">(<\/span><span class=\"n\">colCnt<\/span> <span class=\"o\">-<\/span> <span class=\"mi\">1<\/span><span class=\"o\">)<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\" to add piece: \"<\/span><span class=\"o\">);<\/span>\n        <span class=\"kt\">int<\/span> <span class=\"n\">moveColumn<\/span> <span class=\"o\">=<\/span> <span class=\"n\">input<\/span><span class=\"o\">.<\/span><span class=\"na\">nextInt<\/span><span class=\"o\">();<\/span>\n        <span class=\"kt\">int<\/span> <span class=\"n\">moveRow<\/span> <span class=\"o\">=<\/span> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">grid<\/span><span class=\"o\">.<\/span><span class=\"na\">placePiece<\/span><span class=\"o\">(<\/span><span class=\"n\">moveColumn<\/span><span class=\"o\">,<\/span> <span class=\"n\">player<\/span><span class=\"o\">.<\/span><span class=\"na\">getPieceColor<\/span><span class=\"o\">());<\/span>\n        <span class=\"k\">return<\/span> <span class=\"k\">new<\/span> <span class=\"kt\">int<\/span><span class=\"o\">[]<\/span> <span class=\"o\">{<\/span> <span class=\"n\">moveRow<\/span><span class=\"o\">,<\/span> <span class=\"n\">moveColumn<\/span> <span class=\"o\">};<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"kd\">private<\/span> <span class=\"nc\">Player<\/span> <span class=\"nf\">playRound<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"k\">while<\/span> <span class=\"o\">(<\/span><span class=\"kc\">true<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"k\">for<\/span> <span class=\"o\">(<\/span><span class=\"nc\">Player<\/span> <span class=\"n\">player<\/span> <span class=\"o\">:<\/span> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">players<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n                <span class=\"kt\">int<\/span><span class=\"o\">[]<\/span> <span class=\"n\">pos<\/span> <span class=\"o\">=<\/span> <span class=\"n\">playMove<\/span><span class=\"o\">(<\/span><span class=\"n\">player<\/span><span class=\"o\">);<\/span>\n                <span class=\"kt\">int<\/span> <span class=\"n\">row<\/span> <span class=\"o\">=<\/span> <span class=\"n\">pos<\/span><span class=\"o\">[<\/span><span class=\"mi\">0<\/span><span class=\"o\">];<\/span>\n                <span class=\"kt\">int<\/span> <span class=\"n\">col<\/span> <span class=\"o\">=<\/span> <span class=\"n\">pos<\/span><span class=\"o\">[<\/span><span class=\"mi\">1<\/span><span class=\"o\">];<\/span>\n                <span class=\"nc\">GridPosition<\/span> <span class=\"n\">pieceColor<\/span> <span class=\"o\">=<\/span> <span class=\"n\">player<\/span><span class=\"o\">.<\/span><span class=\"na\">getPieceColor<\/span><span class=\"o\">();<\/span>\n                <span class=\"k\">if<\/span> <span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">grid<\/span><span class=\"o\">.<\/span><span class=\"na\">checkWin<\/span><span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">connectN<\/span><span class=\"o\">,<\/span> <span class=\"n\">row<\/span><span class=\"o\">,<\/span> <span class=\"n\">col<\/span><span class=\"o\">,<\/span> <span class=\"n\">pieceColor<\/span><span class=\"o\">))<\/span> <span class=\"o\">{<\/span>\n                    <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">score<\/span><span class=\"o\">.<\/span><span class=\"na\">put<\/span><span class=\"o\">(<\/span><span class=\"n\">player<\/span><span class=\"o\">.<\/span><span class=\"na\">getName<\/span><span class=\"o\">(),<\/span> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">score<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"n\">player<\/span><span class=\"o\">.<\/span><span class=\"na\">getName<\/span><span class=\"o\">())<\/span> <span class=\"o\">+<\/span> <span class=\"mi\">1<\/span><span class=\"o\">);<\/span>\n                    <span class=\"k\">return<\/span> <span class=\"n\">player<\/span><span class=\"o\">;<\/span>\n                <span class=\"o\">}<\/span>\n            <span class=\"o\">}<\/span>\n        <span class=\"o\">}<\/span>\n    <span class=\"o\">}<\/span>\n\n    <span class=\"kd\">public<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">play<\/span><span class=\"o\">()<\/span> <span class=\"o\">{<\/span>\n        <span class=\"kt\">int<\/span> <span class=\"n\">maxScore<\/span> <span class=\"o\">=<\/span> <span class=\"mi\">0<\/span><span class=\"o\">;<\/span>\n        <span class=\"nc\">Player<\/span> <span class=\"n\">winner<\/span> <span class=\"o\">=<\/span> <span class=\"kc\">null<\/span><span class=\"o\">;<\/span>\n        <span class=\"k\">while<\/span> <span class=\"o\">(<\/span><span class=\"n\">maxScore<\/span> <span class=\"o\"> <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">targetScore<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n            <span class=\"n\">winner<\/span> <span class=\"o\">=<\/span> <span class=\"n\">playRound<\/span><span class=\"o\">();<\/span>\n            <span class=\"nc\">System<\/span><span class=\"o\">.<\/span><span class=\"na\">out<\/span><span class=\"o\">.<\/span><span class=\"na\">println<\/span><span class=\"o\">(<\/span><span class=\"n\">winner<\/span><span class=\"o\">.<\/span><span class=\"na\">getName<\/span><span class=\"o\">()<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\" won the round\"<\/span><span class=\"o\">);<\/span>\n            <span class=\"n\">maxScore<\/span> <span class=\"o\">=<\/span> <span class=\"nc\">Math<\/span><span class=\"o\">.<\/span><span class=\"na\">max<\/span><span class=\"o\">(<\/span><span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">score<\/span><span class=\"o\">.<\/span><span class=\"na\">get<\/span><span class=\"o\">(<\/span><span class=\"n\">winner<\/span><span class=\"o\">.<\/span><span class=\"na\">getName<\/span><span class=\"o\">()),<\/span> <span class=\"n\">maxScore<\/span><span class=\"o\">);<\/span>\n\n            <span class=\"k\">this<\/span><span class=\"o\">.<\/span><span class=\"na\">grid<\/span><span class=\"o\">.<\/span><span class=\"na\">initGrid<\/span><span class=\"o\">();<\/span> <span class=\"c1\">\/\/ reset grid<\/span>\n        <span class=\"o\">}<\/span> \n        <span class=\"nc\">System<\/span><span class=\"o\">.<\/span><span class=\"na\">out<\/span><span class=\"o\">.<\/span><span class=\"na\">println<\/span><span class=\"o\">(<\/span><span class=\"n\">winner<\/span><span class=\"o\">.<\/span><span class=\"na\">getName<\/span><span class=\"o\">()<\/span> <span class=\"o\">+<\/span> <span class=\"s\">\" won the game\"<\/span><span class=\"o\">);<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n\n<span class=\"kd\">class<\/span> <span class=\"nc\">Main<\/span> <span class=\"o\">{<\/span>\n    <span class=\"kd\">public<\/span> <span class=\"kd\">static<\/span> <span class=\"kt\">void<\/span> <span class=\"nf\">main<\/span><span class=\"o\">(<\/span><span class=\"nc\">String<\/span><span class=\"o\">[]<\/span> <span class=\"n\">args<\/span><span class=\"o\">)<\/span> <span class=\"o\">{<\/span>\n        <span class=\"nc\">Grid<\/span> <span class=\"n\">grid<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Grid<\/span><span class=\"o\">(<\/span><span class=\"mi\">6<\/span><span class=\"o\">,<\/span> <span class=\"mi\">7<\/span><span class=\"o\">);<\/span>\n        <span class=\"nc\">Game<\/span> <span class=\"n\">game<\/span> <span class=\"o\">=<\/span> <span class=\"k\">new<\/span> <span class=\"nc\">Game<\/span><span class=\"o\">(<\/span><span class=\"n\">grid<\/span><span class=\"o\">,<\/span> <span class=\"mi\">4<\/span><span class=\"o\">,<\/span> <span class=\"mi\">10<\/span><span class=\"o\">);<\/span>\n        <span class=\"n\">game<\/span><span class=\"o\">.<\/span><span class=\"na\">play<\/span><span class=\"o\">();<\/span>\n    <span class=\"o\">}<\/span>\n<span class=\"o\">}<\/span>\n\n<\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/span><\/code><\/pre>\n<div class=\"highlight__panel js-actions-panel\">\n<div class=\"highlight__panel-action js-fullscreen-code-action\">\n    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-on\"><title>\u0648\u0627\u0631\u062f \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M16 3h6v6h-2V5h-4V3zM2 3h6v2H4v4H2V3zm18 16v-4h2v6h-6v-2h4zM4 19h4v2H2v-6h2v4z\"\/>\n<\/svg><\/p>\n<p>    <svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"20px\" height=\"20px\" viewbox=\"0 0 24 24\" class=\"highlight-action crayons-icon highlight-action--fullscreen-off\"><title>\u0627\u0632 \u062d\u0627\u0644\u062a \u062a\u0645\u0627\u0645 \u0635\u0641\u062d\u0647 \u062e\u0627\u0631\u062c \u0634\u0648\u06cc\u062f<\/title>\n    <path d=\"M18 7h4v2h-6V3h2v4zM8 9H2V7h4V3h2v6zm10 8v4h-2v-6h6v2h-4zM8 15v6H6v-4H2v-2h6z\"\/>\n<\/svg><\/p>\n<\/div>\n<\/div>\n<\/div><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Summarize this content to 400 words in Persian Lang \u0633\u0646\u0627\u0631\u06cc\u0648\u0647\u0627\u06cc \u0637\u0631\u0627\u062d\u06cc \u0628\u0627\u0632\u06cc \u062f\u0631 \u0645\u0635\u0627\u062d\u0628\u0647 \u0647\u0627\u06cc OOAD \u06cc\u06a9 \u0627\u0631\u0632\u06cc\u0627\u0628\u06cc \u06a9\u0627\u0645\u0644 \u0627\u0632 \u0645\u0647\u0627\u0631\u062a \u0647\u0627\u06cc \u0628\u0631\u0646\u0627\u0645\u0647 \u0646\u0648\u06cc\u0633\u06cc \u0634\u06cc \u06af\u0631\u0627\u060c \u062a\u0648\u0627\u0646\u0627\u06cc\u06cc \u0647\u0627\u06cc \u062d\u0644 \u0645\u0633\u0626\u0644\u0647 \u0648 \u062a\u0641\u06a9\u0631 \u0637\u0631\u0627\u062d\u06cc \u06cc\u06a9 \u0646\u0627\u0645\u0632\u062f \u0627\u0631\u0627\u0626\u0647 \u0645\u06cc \u062f\u0647\u062f. \u0622\u0646\u200c\u0647\u0627 \u0628\u0647 \u0634\u0631\u06a9\u062a\u200c\u0647\u0627 \u0627\u062c\u0627\u0632\u0647 \u0645\u06cc\u200c\u062f\u0647\u0646\u062f \u0645\u0647\u0646\u062f\u0633\u0627\u0646 \u0646\u0631\u0645\u200c\u0627\u0641\u0632\u0627\u0631\u06cc \u0631\u0627 \u06a9\u0647 \u0645\u06cc\u200c\u062a\u0648\u0627\u0646\u0646\u062f \u0628\u0647 \u0637\u0648\u0631 \u0645\u0624\u062b\u0631 \u0627\u06cc\u062f\u0647\u200c\u0647\u0627\u06cc \u0645\u0641\u0647\u0648\u0645\u06cc \u0631\u0627 \u0628\u0647 &hellip;<\/p>\n","protected":false},"author":2,"featured_media":68295,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[339],"tags":[],"class_list":["post-68294","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-dev"],"_links":{"self":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/68294","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/comments?post=68294"}],"version-history":[{"count":0,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/posts\/68294\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media\/68295"}],"wp:attachment":[{"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/media?parent=68294"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/categories?post=68294"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/nabfollower.com\/blog\/wp-json\/wp\/v2\/tags?post=68294"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}