برگزیده های پرشین تولز

حل اين تمرين در محيط سي شارپ

blognevis

Registered User
تاریخ عضویت
26 مارس 2006
نوشته‌ها
883
لایک‌ها
9
محل سکونت
shiraz
دوستان سلام
من يك مشكل دارم و چون تاره اين برنامه را شروع كردم (#c) بهمين دليل مشكل زياد دارم

من براي اين تمرين مشكا دارم
برنامه اي بنويسيد كه بدون استفاده از دستور claer يك انسان را از سمت چپ با سرعت 800 ميلي ثانيه به سمت چپ فوم بيايد و يك ماشين با سرعت 400 ميلي ثانيه به سمت راست حركت كند در صورت برخورد با يكديگر در پايين صحنه تصادف كلمه ACCIDENT حداقل در هشت خط ايجاد كنيد. سپس يك ثانيه حرف A را برنگ قرمز نمايش دهيد و با زدن يك كليد برنامه بسته شود

مشكل من سرعت ها هست كه چگونه براي اين سرعت دستور بنويسم البته محيط كنسول هست

ممنون ميشوم راهنمايي كنيد
متشكرم
 

amin_lili

کاربر تازه وارد
تاریخ عضویت
24 آپریل 2007
نوشته‌ها
532
لایک‌ها
2
سن
43
محل سکونت
ای کاش آنجا ...
ای ول به این تمرین . شما اگه همین طور ادامه بدید احتمالا آخر کار استادتون ازتون می خواد پروژه ماتریکس رو طراحی کنید .

شما نیاز به تایمر دارید . از اواجایی که در Console App کنترل تایمر وجود نداره خودتون باید شبیه سازیش کنید . مثلا با کد زیر می تونید هر 400 میلی ثانیه پیغامی رو در خروجی نمایش بدید.

کد:
static void Main(string[] args)
        {
            DateTime now = DateTime.Now;
            bool s = true;
            while (s)
            {
                DateTime newTime = DateTime.Now;
                TimeSpan diff = newTime.Subtract(now);
                if (diff.Milliseconds == 400)
                {
                    Console.WriteLine("Move1!!");
                    now = DateTime.Now;
                }
            }
        }
 

H_R

مدیر بازنشسته
تاریخ عضویت
30 مارس 2005
نوشته‌ها
3,298
لایک‌ها
17
سن
42
محل سکونت
North Pole
این داستانی که فرمودید دقیقا من رو یاد بازی ها میندازه !

البته بازی های توی محیط کنسول ساخته نمیشه ، توی یک وب فرم معمولی ساخته میشه که یه مقداری کاستومایز شده ! (ممکنه در نگاه اول شبیه کنسول به نظر بیاد ) شما مطمئنید به باید تو یکنسول این کار رو بکنید ؟ توی کنسول ماشین و آدم و حرکت و برخورد و ... کمی تا قسمتی بی معنی به نظر میاد !
 

blognevis

Registered User
تاریخ عضویت
26 مارس 2006
نوشته‌ها
883
لایک‌ها
9
محل سکونت
shiraz
ای ول به این تمرین . شما اگه همین طور ادامه بدید احتمالا آخر کار استادتون ازتون می خواد پروژه ماتریکس رو طراحی کنید .

شما نیاز به تایمر دارید . از اواجایی که در Console App کنترل تایمر وجود نداره خودتون باید شبیه سازیش کنید . مثلا با کد زیر می تونید هر 400 میلی ثانیه پیغامی رو در خروجی نمایش بدید.

کد:
static void Main(string[] args)
        {
            DateTime now = DateTime.Now;
            bool s = true;
            while (s)
            {
                DateTime newTime = DateTime.Now;
                TimeSpan diff = newTime.Subtract(now);
                if (diff.Milliseconds == 400)
                {
                    Console.WriteLine("Move1!!");
                    now = DateTime.Now;
                }
            }
        }

امين جان ممنون
ولي كد هاي كه شما به من دادي من هنوز اموزش نديدم كه بخوام براي استادببرم
 

blognevis

Registered User
تاریخ عضویت
26 مارس 2006
نوشته‌ها
883
لایک‌ها
9
محل سکونت
shiraz
این داستانی که فرمودید دقیقا من رو یاد بازی ها میندازه !

البته بازی های توی محیط کنسول ساخته نمیشه ، توی یک وب فرم معمولی ساخته میشه که یه مقداری کاستومایز شده ! (ممکنه در نگاه اول شبیه کنسول به نظر بیاد ) شما مطمئنید به باید تو یکنسول این کار رو بکنید ؟ توی کنسول ماشین و آدم و حرکت و برخورد و ... کمی تا قسمتی بی معنی به نظر میاد !

حقيقتش من هم موندم چرا اين تمرين به من داده؟؟
 

blognevis

Registered User
تاریخ عضویت
26 مارس 2006
نوشته‌ها
883
لایک‌ها
9
محل سکونت
shiraz
دوستان نميدونم چه چوري بگم ولي تا حالا كه جلسه دوم كلاس ما تمام شده فقط اين كدها را به ما ياد دادند​
console.write
Console.Writelain
Console.ForegroundColor = ConsoleColor
Console.BackgroundColor = ConsoleColor
System.Threading.thread.sleep
Console.clar
Console.WriteLine (\n
Console.Beep
Console.CursorLeft
Console.CursorTop
Console.Read​
 

blognevis

Registered User
تاریخ عضویت
26 مارس 2006
نوشته‌ها
883
لایک‌ها
9
محل سکونت
shiraz
اين هم نمونه تمرين هاي كلاس
برنامه اي بنويسيد كه در مختصات (5,5) كلمه programming را بنويسد سپس برنامه را متوقف كند كه با زدن يك كليد بلافاصله كاركتر ها g به رنگ قرمز نوشته شود و بعد از يك ثانيه كاركترهاي m يه حروف بزرگ تيديل شود و سپس يرنامه منتظر زدن يك كليد شود و يعد از كاركترهاي r حذف شود و بجاي انها كاركتر o نمايان شود و با زدن يك كليد برنامه بسته شود



using System;
using System.Collections.Generic;
using System.Text;

namespace p7
{
class Program
{
static void Main(string[] args)
{
Console.CursorTop =5;
Console.CursorLeft=5;
Console.WriteLine("programming");

Console.Read();

Console.ForegroundColor = ConsoleColor.Red;
Console.CursorTop = 5;
Console.CursorLeft = 8;
Console.WriteLine("g");
Console.CursorTop =5;
Console.CursorLeft =15;
Console.WriteLine("g");

System.Threading.Thread.Sleep(1000);

Console.CursorTop = 5;
Console.CursorLeft = 11;
Console.WriteLine("M");
Console.CursorTop =5;
Console.CursorLeft =12;
Console.WriteLine("M");

Console.ReadKey();

Console.CursorTop = 5;
Console.CursorLeft = 6;
Console.WriteLine("o");
Console.CursorTop =5;
Console.CursorLeft =9;
Console.WriteLine("o");

Console.Read();













}
}
}
 

amin_lili

کاربر تازه وارد
تاریخ عضویت
24 آپریل 2007
نوشته‌ها
532
لایک‌ها
2
سن
43
محل سکونت
ای کاش آنجا ...
دوست عزیز . اصولا برنامه نویسی یکی از اون مباحثی هست که استاد نمی تونه بگه اینو درس دادم و اونو درس ندادم و مثلا مشکل فوق برای شما ایجاد بشه . شما MSDN رو دارید که چه استاد درس بده چه نده برای پیشرفت خودتون وظیفه دارید خب مطالعه اش کنید و یاد بیگیرید چطور می شه ازش استفاده کرد .
توی کد بالا فقط مبحث استفاده از DateTime شاید براتون تازه باشه و اللا بقیه اش که تعریف متغیر و شرط و حلقه هست ...
استادی که از شما می خواد یه آبجکت ر هر 400 میلی ثانیه یه پیکسل حرکت بدید می دونه که شما ملزم هستید به استفاده از تایمر .
مطلب شما مثل این می مونه که یکی مساله داده باشه گردش مالی یک شرکت را حساب کنید ولی اجازه ندارید از اعداد استفاده کنید ؟ به نظرتون می شه ؟؟؟
 

blognevis

Registered User
تاریخ عضویت
26 مارس 2006
نوشته‌ها
883
لایک‌ها
9
محل سکونت
shiraz
دوست عزیز . اصولا برنامه نویسی یکی از اون مباحثی هست که استاد نمی تونه بگه اینو درس دادم و اونو درس ندادم و مثلا مشکل فوق برای شما ایجاد بشه . شما MSDN رو دارید که چه استاد درس بده چه نده برای پیشرفت خودتون وظیفه دارید خب مطالعه اش کنید و یاد بیگیرید چطور می شه ازش استفاده کرد .
توی کد بالا فقط مبحث استفاده از DateTime شاید براتون تازه باشه و اللا بقیه اش که تعریف متغیر و شرط و حلقه هست ...
استادی که از شما می خواد یه آبجکت ر هر 400 میلی ثانیه یه پیکسل حرکت بدید می دونه که شما ملزم هستید به استفاده از تایمر .
مطلب شما مثل این می مونه که یکی مساله داده باشه گردش مالی یک شرکت را حساب کنید ولی اجازه ندارید از اعداد استفاده کنید ؟ به نظرتون می شه ؟؟؟

دوست عزيز
من از جواب شما ممنون هستم ولي من هنوز نميدونم ابجكت چي هست؟

كل چيزي كه تا حالا من سركلاس يادمان دادند اين هست
console.write
Console.Writelain
Console.ForegroundColor = ConsoleColor
Console.BackgroundColor = ConsoleColor
System.Threading.thread.sleep
Console.clar
Console.WriteLine (\n
Console.Beep
Console.CursorLeft
Console.CursorTop
Console.Read​
 

amin_lili

کاربر تازه وارد
تاریخ عضویت
24 آپریل 2007
نوشته‌ها
532
لایک‌ها
2
سن
43
محل سکونت
ای کاش آنجا ...
پسر خوب منظورم از آبجکت همون آدم و ماشین بود دیگه .
به هر حال صلاح مملکت خویش خسروان دانند .
 

nsh

Registered User
تاریخ عضویت
19 ژانویه 2006
نوشته‌ها
685
لایک‌ها
4
محل سکونت
i & j : 2 & 3
دوست عزيز
من از جواب شما ممنون هستم ولي من هنوز نميدونم ابجكت چي هست؟

كل چيزي كه تا حالا من سركلاس يادمان دادند اين هست

اگه شما حتی نمیدونی ابجکت چیه یا استادتون خیلی انتظار داره (که اتفاقا برای پیشرفت خوبه) یا اینتمرین مال شما نیست.

به هر حال به عنوان تمرین چیز کاملی هست
 

blognevis

Registered User
تاریخ عضویت
26 مارس 2006
نوشته‌ها
883
لایک‌ها
9
محل سکونت
shiraz
اگه شما حتی نمیدونی ابجکت چیه یا استادتون خیلی انتظار داره (که اتفاقا برای پیشرفت خوبه) یا اینتمرین مال شما نیست.

به هر حال به عنوان تمرین چیز کاملی هست

عزيز اين تمرين براي خود ما هست
ما بايد با دستور
Console.CursorTop = ;
Console.CursorLeft = ;

اين برنامه را بنويسيم

حالا كه دارم فكر ميكنم ايا امكان داره با دستور beep و دستور مفدار دهي به دو دستور بالا جهت قرار گرفتن مكان نما براي كاركترها ماشين و ادم به عنوان زمان استفاده كرد و مقدار دهي فراكانس beep را صفر و زمان بوق را مثلا 800 ميلي ثانيه گذاشت؟

بر اساس تمرين و مدام مكان نما را با كاركترهاي جديد قرار داد و قبلي ها را با همين دستور پاك كرد
 

jafar666

کاربر تازه وارد
تاریخ عضویت
13 ژانویه 2008
نوشته‌ها
1
لایک‌ها
0
با وجود اينكه مي دونم تمام افرادي تو اين قسمت نظر داده اند الان كاملا روي اين موضوع تسلط دارند اما براي افراد ديگه اي كه از طريق جستجو اين صفحه رو پيدا مي كنند بايد عرض كنم نحوه كار به شرح زير است:
اول بايد با استفاده از دستورات Console.CursorTop = ;
Console.CursorLeft = ;
شكل مورد نظر خودشون رو ايجاد كنند.
بعد با استفاده از دستور System.Threading.thread.sleep يك وقفه تو سيستم ايجاد كنند كه بشه حركت رو با اون شبيه سازي كرد.
تو مرحله بعد بايد تمام Console.CursorTop و Console.CursorLeft هايي رو كه در مرحله 1 استفاده كرده اند دوباره مورد استفاده قرار بدهند منتها اين بار بايد از كاراكتر Space به جاي كاراكترهاي قبلي استفاده كنند.
و در آخر بايد با استفاده مجدد از Console.CursorTop و Console.CursorLeft مكان نما را به موقعيت جديد برده تا بتوانند شكل مورد نظر را در موقعيت جديد طراحي كنند.
و تمام اين مراحل بايد داخل يك حلقه انجام پذيرد...
 

rahs

کاربر تازه وارد
تاریخ عضویت
29 نوامبر 2012
نوشته‌ها
1
لایک‌ها
0
میشه به منم کمک کنید میخوام با تایمر یه برنامه بنویسم که start و stop داشته باشم بعد از چاپ برنامه یه وقفه هم با تایمر تعریف کنم
توروخداااااااا:(
 
بالا