مبانی برنامه نویسی C نیم سال اول 20-29 دانشکده مهندسی کامپیوتر فاز اول پروژه مدرس :امید جعفر نژاد مهلت تحویل 03آذر مالحظات: به موارد زیر توجه کنید: .1این پروژه می تواند در گروه های دو نفره انجام شود .اسامی اعضای تیم را تا 99آذر به آدرس [email protected] با عنوان C Project Team_7ارسال کنید. .9موعد تحویل ساعت 90:32روز 03ام آذر است و به هیچ عنوان تمدید نخواهد شد. .0با هرگونه تقلب به صورت جدی برخورد خواهد شد. .4هرگونه سوال مربوط به این فاز پروژه را در با تگ مناسب در صفحه ی درس در سایت piazzaمطرح کنید. توضیحات بازی: جدول سودوکو یک جدول ژاپنی است که به آن جدول اعداد متقاطع هم گفته می شود .این جدول ،جدولی مربعی شکل است که از 2سطر و 2ستون تشکیل شده و از طرف دیگر به 2مربع مساوی تقسیم می شود که این مربع های 0در 0درون مربع اصلی قرار دارند که به آن ها بلوک گفته میشود .شکل زیر یک جدول سودوکوی خالی هست که در آن یک بلوک و یک سطر و یک ستون برای مثال مشخص شده: قانون های این بازی 4شرط اصلی سادست که در زیر آمده اند: قانون اول :داخل هر خانه یه عدد بین 1تا 2باید قرار بگیرد قانون دوم :داخل هر سطر نباید اعداد تکراری وجود داشته باشد قانون سوم :داخل هر ستون نباید اعداد تکراری وجود داشته باشد قانون چهارم :داخل هر بلوک نباید اعداد تکراری وجود داشته باشد یک نمونه از یه جدول سودوکوی حل شده را در زیر مشاهده می کنید. همیشه از ابتدا تعدادی از خانه های جدول سودوکو با اعدادی پر شده اند و هدف این است که باقی خانه ها را با ضوابط موجود پر کنیم .برای مثال جدول سمت چپ یک جدول ابتدایی است و پس از حل به جدول سمت راست باید برسیم. صورت پروژه: شما باید در این فاز نام توابعی که می خواهید پیاده سازی کنید و توضیحی از الگوریتم های خود ارائه دهید .به عبارتی فاز اول اصال برنامه نویسی ندارد و فقط باید مسیر اجرای پروژه را مشخص کنید .به این معنی که توضیح کوتاهی در مورد روش و چگونگی پیاده سازی ارایه دهید .روش شما باید قابلیت های زیر را پیاده سازی کند: بازی شما باید با یک منو شروع شود که منوی اصلی بازی خواهد بود .در این منو باید امکان ایجاد "بازی جدید" و امکان "حل یک جدول" و "خروج" باشد. "بازی جدید" باید به این صورت باشد که یک جدول با حداکثر 03خانه ی پر شده به کاربر تحویل داده شود .کاربر میتواند با استفاده از دستور های زیر بازی کند: .1دستور پر کردن خانهای از جدول .به این صورت که کاربر آدرس یک خانه از جدول و یک عدد میدهد و بازی آن عدد را در جای گفته شده قرار میدهد .اگر که خانه قبال با عددی پر شده بود ،عدد جدید جای آن عدد را میگیرد .در صورتی که بعد از پر شدن یک خانه توسط کاربر جدول کامل شده بود عبارتی به عنوان نشان دادن پیروزی کاربر داده شود .در غیر این صورت بازی ادامه پیدا میکند. .9دومین دستور شما دستوری است که کاربر با دادن آن دستور خانه هایی که با 4قانون جدول سودوکو تداخل دارند مشخص میشوند .این کار میتواند به این صورت باشد که در جدول چاپ شده در این مرحله در کنار اعدادی که مشکل دار هستند یک عالمت تعجب (!) گذاشته شود. .0سومین دستور شما راهنمایی است .به این صورت که هنگامی که کاربر این دستور را وارد کرد یکی از خانه های جدول به صورت تصادفی عدد گذاری شودو به عنوان راهنمایی پر می شود( .راهنمایی در صورتی کار می کند که هیچ خانه پر شده ای با قوانین بازی در تناقض نباشد). .4دستور اخر شما حل تمامی جدول است .با دادن این دستور تمام جدول حل میشود. "حل جدول" به این صورت کار میکند که کاربر یک جدول 2*2به شما میدهد که در بعضی خانه ها عدد و بعضی خالی هستند .خانه های پر با عدد آن خانه و خانه های خالی با #نمایش داده میشوند .بازی شما باید در صورتی که جدول داد شده را بتوان با توجه به قوانین سودوکو پر کرد جدول پر شده را چاپ کند .در غیر این صورت عبارتی مبنی بر این که جدول داده شده جدول سودوکو نیست چاپ کند.نمونه ای از جدول در شکل زیر امده. دقت کنید ممکن است جدول داده شده به صورت یکتا قابل حل نباشد!(بتوان به چندین صورت عدد گذاری کرد که جدول با قوانین سودوکو پر شود) مثال ممکن است یک جدول خالی داده شود که هر روشی که قوانین رو نقض نکند قابل پرکردن است! یا ممکن است جدول اصال قابل حل نباشد که در این صورت پیغامی دهید که این جدول قابل حل نیست. فرمت ورودی یک جدول به صورت زیر است که خانه هایی که با نماد #آمده اند نشان دهنده ی خانه های خالی هستند. #####98## #184###2# ##4#7#### #####6### 6######5# ###18#7#2 #518###93 97##3###4 #3##6#### توجه کنید برای فاز یک باید یک شمای کلی از روش پیاد سازی بدهید .به این صورت که نام تابع ها به همراه ورودی ها و خروجی هایش و توضیح کوتاهی در مورد اینکه هر تابع دقیقا چه کاری انجام میدهد و در بازی چگونه استفاده می شوند ،باید ذکر شوند .همچنین توضیحی از الگوریتم مورد نظر خود نیز باید ارائه دهید. موفق باشید...
© Copyright 2026 Paperzz