CSCIENCE

CSCIENCE

چند وقت پیش برای انتخاب تیم برتر دانشگاه شاهد برای راه‌یابی به مسابقات منطقه‌ای تهران، مسابقه‌ای داخلی برگزار شد که طراح تعدادی از سوال‌های آن بودم.

از لینک زیر می‌توانید سوال‌ها، راه‌حل‌ها و ورودی/خروجی‌های مسائل را دانلود کنید.

دانلود

۰ موافقین ۰ مخالفین ۰ ۲۱ آذر ۹۲ ، ۱۲:۲۴
cscience

فرض کنید اسم آرایه رشته‌ها temp و اسم لیست names باشد. اکنون داریم


names.AddRange(temp.Select(s => "_" + s + "_"));


تابع AddRange یک مجموعه را به عنوان ورودی میگیره و تمامی اون رو به لیست اضافه میکنه. اما با توجه به سوال، لازمه که تغییر داده شده‌ی رشته‌ها رو اضافه کنیم. که این هم از طریق دستور Select در LINQ به راحتی امکان‌پذیره.


لینک سوال

۱ موافقین ۰ مخالفین ۰ ۱۸ مهر ۹۲ ، ۱۸:۰۵
cscience

در بخش کوتاه نویسی، ابتدا یک مسئله مطرح می‌شه و از شما خواسته می‌شه که کوتاه‌ترین روش‌هاتونو براش بگید. بعد از گذشت چند روز از طرح مسئله، من هم جواب خودم رو می‌نویسم.



سوال:

فرض کنید آرایه‌ای از رشته‌ها داریم و می‌خواهیم تک تک اعضای آن را به یک لیست از رشته‌ها اضافه کنیم و هم‌زمان در ابتدا و انتهای هر رشته، کاراکتر '_' را قرار دهیم. کوتاه ترین روش برای این کار چیست؟


پاسخ

۱ موافقین ۰ مخالفین ۰ ۱۵ مهر ۹۲ ، ۱۵:۱۱
cscience


بخش چهارم: پیاده سازی نمای گرافیکی - بخش پایانی


در این قسمت منطق بازی به گرافیک متصل می‌شود و ساخت بازی کامل می‌شود.
مدت زمان:     30 دقیقه
حجم:           48 مگابایت
کیفیت:         720p
فرمت:          mp4


* آخر این قسمت براتون یه تمرین گذاشتم (:دی). خیلی خوشحال خواهم شد اگر دوستانی که این تمرینو انجام میدن، یک آموزش در قالب فایل متنی بسازند و برای من بفرستن تا من هم برای بقیه روی وبلاگ بذارم.
۳ موافقین ۰ مخالفین ۰ ۲۱ شهریور ۹۲ ، ۱۷:۳۱
cscience


بخش سوم: پیاده سازی بدنه‌ی اصلی بازی


در این قسمت بخش اصلی بازی Snake یعنی ساختمان داده‌ها و الگوریتم‌های بازی رو پیاده سازی می‌کنم
مدت زمان:     30 دقیقه
حجم:           48 مگابایت
کیفیت:         720p
فرمت:          mp4

۱ موافقین ۰ مخالفین ۰ ۱۹ شهریور ۹۲ ، ۰۰:۴۰
cscience

حتما تابه‌حال برنامه‌های زیادی رو دیدید که وقتی عبارتی رو برای جستجو وارد می‌کنید، در همون لحظه همزمان با تایپ شما، نتایج ممکن رو نشون می‌ده. تو این پست قصد دارم با استفاده از امکانات Binding و Linq در #C و WPF این کار رو آموزش بدم.


گام اول: ایجاد TextBox و ListBox

در ابتدا لازمه که برای گرفتن ورودی از کاربر و نمایش نتایج جستجو، از یک عدد TextBox به همراه ListBox استفاده کنیم. نام TextBox را textbox قرار دهید.


گام دوم: تعیین منبع داده

با توجه به اینکه می‌خواهیم از این منبع برای ItemsSource یک ListBox استفاده کنیم، لازم است که جنس آن یک IEnumerable باشد. من در این مثال ابتدا یک کلاس Static تعریف کرده‌ام و سپس در آن یک لیست Static از چند رشته Url ساخته‌ام


static class MyData
    {
        public static List<string> urls = new List<string>
        {
            "cscience.blog.ir",
            "cscience.mihanblog.ir",
            "google.com",
            "bing.com",
            "microsoft.com",
            "bayan.ir",
            "yahoo.com",
            "outlook.com"
        };
    }


گام سوم: نوشتن مبدل رشته به لیست

برای Binding مرحله بعد لازم است که یک مبدل یکطرفه با قابلیت تبدیل رشته (عبارت مورد جستجو) به نتیجه‌ی جستجو نوشته شود


class StringToLinqConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            string temp = value as string;
            return MyData.urls.Where(url => url.Contains(temp.Trim())).ToList();
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }


گام چهارم: Bind کردن ItemSource

در نهایت کافیست ItemSource مربوط به ListBox را به مقدار Text کنترل TextBox با استفاده از مبدل مرحله قبل Bind کنیم.


<Window.Resources>
        <local:StringToLinqConverter x:Key="StringToLinqConverter"/>
</Window.Resources>

<ListBox ItemsSource="{Binding Text, Converter={StaticResource StringToLinqConverter}, ElementName=textBox}"/>

اکنون با تایپ کردن عبارت مورد نظر برای جستجو در TextBox تمامی نتایج ممکن همزمان با تایپ حروف نمایش داده می‌شوند.
۰ موافقین ۰ مخالفین ۰ ۱۸ شهریور ۹۲ ، ۲۳:۳۷
cscience


بخش دوم: پیاده‌سازی تنظیمات و کنترل سفارشی


در این قسمت پیاده‌سازی بازی رو شروع می‌کنم و دو قسمت از بازی (قسمت تنظیمات و کنترل سفارشی برای نمایش قطعات بازی) رو کامل می‌کنم.
مدت زمان:     31 دقیقه
حجم:           48.6 مگابایت
کیفیت:         720p
فرمت:          mp4

۳ موافقین ۰ مخالفین ۰ ۱۴ شهریور ۹۲ ، ۱۵:۴۲
cscience


در نهایت تصمیم گرفتم که آموزش رو به صورت ویدئویی تهیه کنم. آموزش در چند بخش خواهد بود (هنوز تصمیم نگرفتم دقیقا چند بخشش کنم). با توجه به اینکه اولین تجربه‌ی آموزش ویدئوییمه و اینکه امکانات حرفه‌ای موجود نیست (:دی) ممکنه کیفیت کار خیلی بالا نباشه. در هر صورت سعی من این خواهد بود که آموزش‌ها با بهترین کیفیت آماده بشن. شما هم با نظراتتون به ادامه‌ی این آموزش کمک کنید. با تشکر.


بخش اول: طرح بازی Snake


در این قسمت در مورد اجزا و الگوریتم بازی و اینکه چه ابزارهایی از #C و WPF استفاده خواهند شد، توضیح می‌دهم.

مدت زمان:   11 دقیقه

حجم :         15.15 مگابایت

کیفیت:       720p

فرمت:        mp4


دانلود ویدئو

دانلود اسلایدها



* به دلیل نامناسب بودن نوع میکروفون، کمی کیفیت صدا مناسب نیست.
۳ موافقین ۰ مخالفین ۰ ۱۳ شهریور ۹۲ ، ۱۴:۲۹
cscience

این موضوعی که میگم خیلی وقته باهاش مواجه شدم اما خب نتونستم بفهمم چرا. گفتم اینجا هم بگم شاید بقیه بدونن. البته یه حدسایی میزنم واسه دلیلش اما خب مطمئن نیستم.


یه فایل تک مثل mp3 یا انواع عکس و یا ... رو با مرورگر کروم یا فایرفاکس یا IE دانلود کنید بعدش اونو با آنتی ویروس اسکن کنید. بهتون چندتا فایل اسکن شده گزارش میده؟


من با Eset که اسکن میکنم میگه 2تا فایل اسکن شد!


حالا اتفاق جالبتر اینکه فایلتونو یه بار فشرده کنید و دوباره بازش کنید. اکنون اسکن کنید.


من وقتی این کارو انجام میدم میگه 1 فایل اسکن شد. ینی اون فایل دومی با این کار حذف میشه.


حالا شما هام این کارو انجام بدین با آنتی ویروسای دیگه و اینجا بگین که نتیجه مشابه بوده یا نه. اینجوری حداقل میشه فهمید مشکل آنتی ویروسه یا اینکه نه واقعا یه موجود دیگه ای هم هست با فایل!

این مشکل وقتی که با download manager دانلود کنید وجود نخواهد داشت.

۳ موافقین ۰ مخالفین ۰ ۱۲ شهریور ۹۲ ، ۰۱:۱۶
cscience

به زودی یک آموزش خلاصه

برای ساخت بازی Snake با WPF

آغاز خواهد شد

(شاید ویدئویی آموزش بدم!)

۱ موافقین ۰ مخالفین ۰ ۱۱ شهریور ۹۲ ، ۲۳:۴۸
cscience