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

یکی از دوستان بهم ایمیل زده و خواسته کمکش کنم در یک اسکریپ که ثانیه شماری رو توی صفحه وب نشون بده. من برنامه نویس جاوا اسکریپت نیستم ولی راه حل چیزی است که باید بهش بگیم Lego Programming.

لگو که یادتونه؟ مربع های کوچیکی که به هم می چسبونیم تا هر چیزی دوست داریم بسازیم. این روزها برنامه نویسی خیلی بهش شبیه شده. تقریبا همه برنامه ها قبلا نوشته شدن و فقط باید بتونیم الگوریتم رو بشکنیم به اجزای کوچیک (آجرهای لگو) و پیداشون کنیم و بفهمیمشون و بچینیمشون کنار همدیگه.

دقت کنین! این قطعات رو باید بفهمیم! یک آفت بزرگ که من دارم همه می بینم (بخصوص توی فروم های لینوکسی) کپی پیست است. چیزی که نمی فهمین رو کپی پیست نکنین. چیزها رو پیدا کنین، بفهمین، یاد بگیرین و کپی پیست کنین و تغییر بدین. مثلا من برای کد بالا یک سرچ ساده کردم به دنبال java script to count secconds و روی اولین گزینه کردم و رسیدم به این کد قشنگ:

<table border="0">
<tr>
<td align="center"><font face="Arial"><strong>You
have
visited my page for:</strong></font></td>
<td align="center"><form name="d">
<p><input type="text" size="8"
name="d2"></p>
</form>
</td>
<td align="center"><font
face="Arial"><strong>seconds!</strong></font></td>
</tr>
</table>

<script>
<!–
/*By George Chiang. (JK’s ultimate JavaScript tutorial and free JavaScripts site!)
http://www.javascriptkit.com
Credit MUST stay intact for use*/
var milisec=0
var seconds=0
document.d.d2.value=’0′
function display(){
if (milisec>=9){
milisec=0
seconds+=1
}
else
milisec+=1
document.d.d2.value=seconds+"."+milisec
setTimeout("display()",100)
}
display()
//–>
</script>

دقیقا چیزی که من می خوام نیست.. پس کد رو می خونم. دو تا متغیر داره milisec و seconds. کافیه ثانیه رو تنظیم کنم رو چیزی که می خوام مثلا کد رو عوض کنم به seconds=1000 و توی خروجی هم کلا هزارم ثانیه رو نمایش ندم یعنی: document.d.d2.value=seconds و خلاص (: به همین سادگی. لگو بازی تموم شد می ریم خونه هامون (:

You have visited my page for (starting from 1000 for fun):

seconds!

نکته ۱. این کد کپی رایت داره! نگاهش کنین و ازش یاد بگیرین و خودتون بدون قسمت های اضافی (مثلا دهم ثانیه شمار) دوباره بنویسینش تا بشه مال خودتون و ترجیحا آزاد (با لیسانس جی پی ال ۲ یا ۳) منتشرش کنین (:
نکته ۲. از لگو پروگرمینگ که حرف زدیم جا داره یاد بکنیم از لغت مشابهش زبون برنامه نویسی لوگو (َLogo) که ماروین مینسکی بزرگ از بنیانگذارانش بود و برای آموزش برنامه نویسی به بچه ها طراحی شده بود و همسن های من برنامه نویسی رو باهاش یاد گرفتن (: