لینکهای مفید برای شرکت در مسابقه:
در زمان مسابقه میتوانید سوالهای خود را از قسمت "سوال بپرسید" مطرح کنید.
در این سوال قصد داریم یک برنامه تست سرعت تایپ را پیادهسازی کنیم. ظاهر کلی برنامه به شکل زیر است:
پروژه اولیه را از این لینک دانلود کنید.
index.html
را در مرورگر خود باز کنید.در فایل typing-test.js
تعداد تابع وجود دارند که شما باید آنها را کامل کنید:
initializeTest
این تابع دو پارامتر را به عنوان ورودی دریافت میکند. timeLimit
زمان تست (در واحد ثانیه) و text
متن تست میباشد.
در این تابع باید مقدار اولیه زمان باقی مانده (timeLeft
) را در صفحه نمایش دهید. همچنین هر کاراکتر از متن را در یک تگ span قرار دهید و این تگها را به ترتیب داخل تگ div با آیدی type-text
قرار دهید. برای مثال اگر متن اولیه کلمه سلام باشد HTML رندر شده به صورت زیر باید باشد:
updateCharactersStatus
در این تابع باید وضعیت هر کاراکتر آپدیت کنید. هر کاراکتر میتواند سه وضعیت داشته باشد:
correct-char
را به آن بدهید.incorrect-char
را به آن بدهید. همچنین باید تعداد خطاهای کاربر (errors
) را نیز آپدیت کنید.
updateTimer
در این تابع در صورتی که زمان باقی مانده (timeLeft
) بزرگتر از صفر باشد، باید زمان باقی مانده (timeLeft
) و زمان گذشته شده (timeElapsed
) و مقدار کلمه بر دقیقه (wpm
) را آپدیت کنید. در غیر اینصورت تست تایپ باید تمام شود.
finishTest
در این تابع باید تایمری که ایجاد شده است را clear کنید. همچنین textarea را disable
کنید تا کاربر نتواند در آن تایپ کند.
updateAccuracy
در این تابع باید درصد دقت تایپ (accuracy
) را از طریق فرمول زیر محاسبه کنید و نمایش دهید:
همچنین باید عبارت بالا را به نزدیکترین عدد صحیح رند کنید.
updateErrors
در این تابع باید تعداد فعلی خطاهای کاربر را در صفحه نمایش دهید.
updateWpm
در این تابع باید مقدار کلمه بر دقیقه (wpm) را از طریق فرمول زیر محاسبه کنید و نمایش دهید:
همچنین باید عبارت بالا را به نزدیکترین عدد صحیح رند کنید.
typing-test.js
هستید.typing-test.js
را بدون zip کردن ارسال کنید یا کل پروژه را zip کرده و ارسال کنید.