300000
English | Français | فارسی | 中文 | Українська | Azerbaijani | ខ្មែរ | Tiếng Việt | Bahasa Melayu | Deutsch | O'zbek | РусскийTurtle Walk
تعداد بردها: 225196
Blockly چیست ؟
Blockly یک روش تصویری برای ساخت کد با بلوکها است. این برنامه یک راه عالی برای یادگیری کد و ایجاد کد خوب است. شما میتوانید اطلاعات بیشتر در مورد آن را در اینجا بخوانید. شما همچنین میتوانید بازیهای Blockly را برای بچهها در اینجا امتحان کنید.
شما باید چه کار کنید ؟
در اینجا، شما باید یک کد برای مسیر حرکت لاکپشت بنویسید که لاکپشت را به برکه برساند. برای انجام این کار، شما از ماوس خود برای کشیدن بلوکها از جعبه خاکستری در وسط استفاده میکنید و آنها را به بلوک شروع متصل میکنید. هنگامی که ب روی «Run» ضربه میزنید، کدی را که در بلوک Start ساختهاید اجرا میکند. برای دیدن یکی از جوابهای ممکن این معما، نه لزوما کوتاهترین کد. بر روی دکمه جواب کلیک کنید.
شما چه موقع برنده میشوید ؟
شما وقتی برنده میشوید که کد شما لاکپشت را به برکه خود منتقل کند. بازی وقتی سختتر میشود که شما باید این کار را با تعداد محدودی از بلوکها انجام دهید.
برای افراد مبتدی
کد چیست ؟
«کد» ممکن است سخت، ترسناک یا مرموز به نظر برسد، اما اینطور نیست.
در واقع، با خیال راحت میتوان شرط بست که شما از کد استفاده میکنید ! اگر تا به حال از یک برنامه استفاده کردهاید، یک بازی را روی صفحه نمایش انجام دادهاید، روی یک دکمه کلیک کردهاید، از کد استفاده کردهاید. کد فقط لیستی از دستورالعملهایی است که دستگاه شما (تلفن، تبلت، کامپیوتر، کنسول) میداند چگونه آنها را بخواند و دنبال کند.
Blockly به شما اجازه میدهد که یک کد را بسازید و با اصول برنامهنویسی مانند متغیرها، توابع، حلقهها و غیره بازی کنید. اینها همان ایدههایی هستند که برنامه نویسان کامپیوتر و توسعه دهندگان برنامه/بازی هر روز در شغل خود از آنها استفاده میکنند.
کد «خوب» چیست؟
قبل از هر چیز، یک کد خوب است زمانی که آنچه که مورد نظر نویسنده بوده است را انجام دهد ! یعنی «درست» است. در این بازی، کد شما «درست» است اگر لاکپشت به برکه برسد. با این حال، همیشه بیش از یک راه «درست» برای انجام این کار وجود دارد. فرض کنید که لاکپشت باید در یک خط مستقیم به سمت برکه برود.
این کد یک کد درست است :
شروع :
⇧ برو به جلو ⇧
⇧ برو به جلو ⇧
⇧ برو به جلو ⇧
⇧ برو به جلو ⇧
⇧ برو به جلو ⇧
آیا این کد درست است ؟
بله، لاکپشت به برکه میرسد، بنابر این درست است.
آیا این کد بهترین کد برای انجام این کار است ؟
نه. یک کد خوب باید کارآمد باشد : باید کار را در کمترین کد (کمترین بلوک) انجام دهد. لاکپشت هم باید مستقیمترین مسیر رو به جلو را انتخاب کند. البته در حال حاضر فقط یک مسیر وجود دارد، اما همانطور که در مثال بعد خواهیم دید، گاهی اوقات بیش از یک پاسخ کوتاه وجود دارد.
چگونه میتوانید همان کار را با بلوکهای کمتر انجام دهید ؟
بلوک حلقه آنچه را که در داخل آن قرار میدهید تکرار میکند، هر چند بار که میخواهید.
چگونه میتوانید از یک حلقه برای انجام یک کار استفاده کنید ؟
یک کد بهتر به این شکل خواهد بود :
شروع :
𡮥 بار تکرار کن ↺
⇧ برو به جلو ⇧
این کد از جهات دیگری هم بهتر است. میدانی چرا ؟ بیایید فرض کنیم به جای اینکه برکه 10 قدم دورتر باشد، 100 قدم دورتر است.
چه چیزی را باید تغییر دهید تا لاکپشت به جای 10 قدم، 100 قدم حرکت کند ؟
به جای اضافه کردن 90 برابر بلوک «برو به جلو» شما فقط باید یک چیز را تغییر دهید : عدد نوشته شده در بلوک حلقه. این یک کد خوب است زیرا درست و کارآمدتر است و اصلاح یا تغییر آن ساده است.
شروع :
↺ 100 بار تکرار کن ↺
⇧ برو به جلو ⇧
کدام بلوک حلقهای حتی آسانتر از بلوک حلقه «تکرار» است ؟
بلوک حلقهای «تا . . . انجام بده» از نظر مقایسه ، سادهتر از بلوک «تکرار» است زیرا برای 5 قدم به جلو یا 100 قدم به جلو یا حتی 1000 قدم به جلو، کد یکسانی نوشته میشود :
شروع :
↺ تا رسیدن به برکه ↺
⇧ برو به جلو ⇧
مثال دیگر : آیا میتوانید این کد را بهتر کنید؟
در اینجا، لاکپشت باید از یک «پله» بالا برود تا به برکه برسد. در اینجا یک کد هست که او به هدفش میرسد. این کد درست کار میکند اما خیلی خوب نیست. میتوانید آن را بهتر کنید ؟ به یاد داشته باشید، یک کد خوب باید درست و کارآمد بوده و تغییر یا تصحیح آن ساده باشد.
شروع :
⇧ برو به جلو ⇧
← به سمت چپ بچرخ ←
⇧ برو به جلو ⇧
→ به سمت راست بچرخ →
⇧ برو به جلو ⇧
← به سمت چپ بچرخ ←
⇧ برو به جلو ⇧
→ به سمت راست بچرخ →
⇧ برو به جلو ⇧
← به سمت چپ بچرخ ←
⇧ برو به جلو ⇧
پاسخ
در این کد، بلوکهای «برو به جلو + → به سمت راست بچرخ → + رفتن به جلو + ← به سمت چپ بچرخ ←» را بارها و بارها تکرار میکنیم. اگر ما این بلوکها را در یک حلقه قرار دهیم، کد کوتاهتر و کارآمدتر خواهد بود.
شروع :
↺ تا رسیدن به برکه ↺
⇧ برو به جلو ⇧
← به سمت چپ بچرخ ←
⇧ برو به جلو ⇧
→ به سمت راست بچرخ →
چگونه میتوانید این کد را با مسیر جدید تطبیق دهید ؟
در اینجا راه پله کمی متفاوت است. چگونه میتوانید کد خود را برای استفاده از آن در این وضعیت تغییر دهید ؟
پاسخ
شما میتوانید کد قدیمی خود را نگه دارید: همان کار را انجام میدهد و لاکپشت هنوز هم به برکه میرسد. در این مورد، لاکپشت سعی میکند حرکت کند و به دیوار برخورد کند و سپس حرکت کند. اما لاکپشت مسیر میدان بیشتری را میگیرد و سعی میکند زمانی که نمیتواند حرکت کند. در عوض، شما میتوانید \"برو به جلو\" را دو بار در داخل حلقه اضافه کنید، همانطور که در زیر نشان داده شده است. همانطور که میبینید، در این نسخه، داشتن کوتاهترین کد لزوما بهترین راه حل نیست، زیرا رسیدن لاکپشت به برکه مدت بیشتری طول میکشد.
شروع :
↺ تا برکه ↺
⇧ برو به جلو ⇧
⇧ برو به جلو ⇧
← به سمت چپ بچرخ ←
⇧ برو به جلو ⇧
⇧ برو به جلو ⇧
→ به سمت راست بچرخ →
خلاصه
. از ساختن کد با Blockly لذت ببرید ! تلاش کنید کد خوبی بسازید بطوریکه درست و کارآمد بوده و تغییر یا تصحیح آن ساده باشد
استراتژی کلی
. برنامهنویسی را با مسیرهای شامل گامهای ساده شروع کنید (به عنوان مثال به جلو بروید، بچرخید)
سپس، دنباله حرکتهای تکراری را که میتوانند در حلقهها قرار گیرند، بررسی کنید. اگر دنباله حرکتها مشابه هستند اما یکسان نیستند، بررسی کنید که آیا مراحل را میتوان به دنباله کوتاهتر، بدون هیچ تاثیری اضافه کرد، مانند برخورد به دیوار بطوریکه این دنبالههای مشابه را میتوان با همان حلقه جایگزین کرد، به شکلی که هر چند بار که لازم است اجرا شود.
حلقهها
.دو نوع بلوک حلقه در پیادهروی لاکپشت وجود دارد
[X] بار تکرار کن
.بلوکهای درون حلقه به تعداد عدد ثابت داده شده اجرا میشود، مهم نیست که در هنگام اجرای آن چه اتفاقی میافتد
تا رسیدن به برکه ، انجام بده ...
.تا وقتی که لاکپشت به برکه برسد، بلوکهای درون حلقه اجرا میشود
تو در تو
.شما میتوانید حلقهها و حتی دستور شرطی اگر ... آنگاه... (وگرنه) را در داخل حلقههای دیگر قرار دهید
ترفندهایی برای کاهش تعداد بلوکها
برای ایجاد کد بهتر و کوتاهتر، موارد زیر را امتحان کنید (برای مثال کلیک کنید) :
.اگر حرکتها تکراری هستند ، آنها را در یک حلقه قرار دهید
در کد پیادهروی شماره 3 ، برای استفاده از بلوکهای کمتر ، چگونه میتوانید از یک حلقه استفاده کنید ؟
.از یک حلقه برای تکرار حرکتهای « برو به جلو + ← به سمت چپ بچرخ ←+ رفتن به جلو + → به سمت راست بچرخ → » استفاده کنید
حرکت در مارپیچ
معمای 8 را میتوان تنها با 4 بلوک حل کرد. چگونه ؟
برای رسیدن به برکه ، لاکپشت فقط باید به جلو برود و به سمت راست بچرخد و این اقدامات را میتوان در حلقههای تکراری قرار داد. مهم نیست که لاکپشت به سمت راست بچرخد و برای اولین بار سعی کند به دیوار برخورد کند: دفعه بعد که به سمت راست میچرخد، میتواند به جلو حرکت کند. ما میتوانیم این حرکت را به عنوان یک مارپیچ در نظر بگیریم که تنها در یک جهت (راست یا چپ) میچرخد و به جلو حرکت میکند.
حرکت در راه پله
معمای 9 را میتوان تنها با 5 بلوک حل کرد. چگونه ؟
لاکپشت باید از گوشه پایین سمت راست به گوشه بالا سمت چپ برسد. این نمیتواند به صورت مورب به طور مستقیم حرکت کند، بنابر این، باید یک الگوی راه پله را دنبال کند (در این مورد چپ، بالا، چپ، بالا). حتی اگر مسیر عبور یک راه پله کامل نباشد، این کد کار خواهد کرد. باز هم، مهم نیست که لاکپشت در طول راه به دیوارها برخورد میکند.
ترکیب مارپیچها و پلهها
معمای 12 را میتوان تنها با 9 بلوک حل کرد. چگونه ؟
اول، یک الگوی «مارپیچ» را دنبال کنید. به عبارت دیگر، در داخل یک حلقه در یک جهت (راست) بچرخید و تا آنجا که ممکن است به جلو حرکت کنید (یک عدد بزرگ را انتخاب کنید، در اینجا عدد 5 مناسب است - دوباره یادآوری میکنیم که لاکپشت به دلیل برخورد با دیوار صدمه نمیبیند).
در حال حاضر، لاکپشت میتواند الگوی «پله» را دنبال کند، حتی اگر مسیرتا برکه یک مسیر کامل به شکل پله نباشد. بارها و بارها به سمت چپ و بالا حرکت کنید تا به برکه برسید.
از بلوکهای «اگر مسیر» استفاده کنید.
معمای 5 را میتوان تنها با 4 بلوک حل کرد. چگونه ؟
بلوک «تا برکه انجام بده» را با بلوک «اگر مسیر درست است» ترکیب کنید تا لاکپشت در صورت امکان به سمت راست بچرخد اما در غیر این صورت به جلو حرکت میکند.
چالشهای مختلف
لطفا چالشها را از طیف گستردهای از پیادهرویهای ما امتحان کنید. برخی از آنها فقط یک مسیر دارند، در حالی که برخی هم چند شاخه دارند.. برخی از آنها دارای تله و درهای بسته هستند که برای باز کردن انها به کلید نیاز دارید و همچنین ممکن است فضاهای باز همراه با موانع یا مسیرهای با پیچ و خم داشته باشند.
برخی از معماهای پیادهروی لاک پشت شبیه مازها هستند.
به عنوان مثال، معماهای 36، 44، 48 پیچ و مازهای بسیار سادهای هستند.
تصور کنید که شما به درون یک ماز پرتاب میشوید که در آن، دیوارهای اطراف شما، میزان دید شما را محدود میکنند - راه فرار چیست؟ چگونه میتوانید آن را پیدا کنید ؟
یک ایده ساده این است که دیوار سمت راست یا دیوار سمت چپ را ادامه دهید.
چگونه چنین نقشهای را برنامهریزی میکنید؟
نکته : فقط به 6 بلوک نیاز دارد، ما به شما اجازه میدهیم آن را کشف کنید.
برای برخی از پیادهروی ها، پیروی از یک دیوار لاکپشت را به یک تله هدایت میکند در حالیکه دیوار دیگر آن را به برکه هدایت میکند. پیادهروی 44.
چه زمانی این روش به طور کامل شکست میخورد ؟
یک مثال پیادهروی شماره 10 است. اگر لاکپشت هر یک از دیوارهای چپ یا راست را دنبال کند ، هرگز به برکه نمیرسد.
ایراد ریاضیاتی این روش چیست ؟
زمانی که یک حلقه بسته وجود داشته باشد ، این روش شکست میخورد. زیرا ممکن است که لاکپشت داخل حلقهای قرار بگیرد که برکه در خارج آن باشد و یا برعکس. در هر دو مورد، تا وقتی که لاکپشت یک دیوار را دنبال میکند ، هرگز به برکه نمیرسد.
وقتی که این ایده شکست میخورد ، چه کاری میتوانید انجام دهید ؟
در این موارد، شما میتوانید حرکتهای دیگری را قبل از دنبال کردن یک دیوار انجام دهید یا ابتدا یک دیوار را برای مدتی دنبال کنید سپس حرکتهای دیگری برای رسیدن به برکه انجام دهید .
آیا پیادهروی هایی را میبینید که میتوانند از این طریق برنامهریزی شوند ؟
برای به روز رسانی عضو شوید و یا ما را دنبال کنید: