| فایلهای اولیه را میتوانید از [این لینک](/problemset/assignments/4367/download_problem_initial_project/292196/) دانلود کنید. |
|:-:|
در این سوال باید با استفاده از تکنیکهای پردازش تصویری که آموختهاید، تابعی را پیادهسازی کنید که وضعیت یک بازی دوز را مشخص کند.
<details class="green">
<summary>
**معرفی بازی**
</summary>
در این بازی، یک صفحهی شطرنجی ۳×۳ وجود دارد که دو بازیکن در آن رقابت میکنند. یکی از بازیکنان علامت *X* و دیگری علامت *O* را در خانههای خالی قرار میدهد.
هدف بازی این است که یکی از بازیکنان بتواند سه علامت مشابه را در یک سطر، ستون یا قطر قرار دهد. در این صورت، آن بازیکن برندهی بازی خواهد شد. اگر تمام خانهها پر شوند و هیچ بازیکنی موفق به تشکیل چنین ترکیبی نشود، بازی با مساوی به پایان میرسد.
شکل زیر نمونهای از تصاویر بازی میباشد:
|  |
|:--------:|
| *صفحه بازی در شرایطی که X برنده است.* |
</details>
در فایل اولیه، سه نمونه از تصاویر بازی وجود دارد که نام هر کدام نشاندهنده وضعیت آن تصویر میباشد. تصاویری که با استفاده از آنها خروجی شما بررسی میشود نیز مشابه هستند.
## نحوه ارسال پاسخ
شما باید یک فایل پایتونی با نام `tic_tac_toe.py` بسازید که درون آن یک تابع با نام `check_state` پیادهسازی شده است. این تابع آدرس یک تصویر را به عنوان ورودی میگیرد و به عنوان خروجی یکی از چهار وضعیت `X Wins` و `O Wins` و `Ongoing` و `Draw` را برمیگرداند. توجه کنید که این مقادیر حتما باید به شکل `str` باشند.
در نهایت این فایل پایتونی را در قالب *zip* قرار دهید و در کوئرا آپلود کنید.
<details class="red">
<summary>
**کتابخانههای مجاز**
</summary>
توجه کنید که در این سوال تنها مجاز به استفاده از `numpy` و `openCV` هستید .
</details>
<details class="yellow">
<summary>
**توجه**
</summary>
+ توجه کنید که تابع `check_state` باید نام تصویر را دریافت کند. این نام باید حتما به همراه پسوند تصویر باشد. برای مثال `game_one.png` .
+ تابع پیادهسازی شده توسط شما باید روی حداقل ۵۰ درصد نمونههایی که با آنها تست میشود درست کار کند. در غیر این صورت نمرهای کسب نخواهید کرد.
</details>