میترا رحیمی

تاریخ انتشار: ۱۳۹۵-۰۴-۱۸

طراحی بازی با ریاضی با css3

اگه شما یه سایت تفریحی داشته باشید و یا یه سایت آموزشی داشته باشید، ترجیح میدید قابلیت هایی رو در سایتتون قرار بدید تا بازدیدکننده ها سرگرم بشن و تو سایتتون زمان بیشتری و سپری کنند…

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

در این مقاله قصد دارم طراحی یه بازی ساده رو بهتون آموزش بدم که فقط با خصوصیت های جدید در css3 و  html5 پیاده سازی شده و جی کوئری یا زبان های دیگه دخالتی در طراحی این بازی ندارند.

css3

طراحی سایت معقوله ی گستره ای هست ، در این آموزش شمارو با خصوصیات و  selector های جدید آشنا میکنم. بعد از خوندن این مقاله حتی شاید بگید اصلا فکرش و نمیکردم css3 همچین توانایی داشته باشه 🙂

قبل از شروع آموزش بهتره دموی بازی رو ببینید . برای مشاهده دمو کلیک کنید .

در این بازی چند عدد مثبت و منفی به شما نمایش داده میشه و شما باید اعداد رو باهم جمع و تفریق کنید تا نتیجه عدد ۷۲ بدست بیاد و بعد به شما متنی رو مبنی بر اینکه ” شما برنده شدید ” نمایش میده.

برای شروع کار کد html زیر رو مینویسیم:

اگر به کدهای بالا دقت کرده باشید برای  label ها از صفت  for استفاده کردیم ، از این صفت زمانی استفاده می کنیم که بخوایم یک label رو به یک  checkbox اختصاص بدیم ، به عبارتی زمانی که شما روی یک label کلیک می کنید ، ckeckbox مربوط به اون  label تیک میخوره و انتخاب میشه. از این روش میتونید برای استایل دهی های مختلف به checkbox ها و radio ها استفاده کنید.

حالا به چه صورت انجام میشه؟ ابتدا به هر  checkbox یه id اختصاص میدیم ، سپس مقدار id هر checkbox رو برای for لیبل مربوط به خودش قرار میدیم. به این صورت هر زمان که مثلا روی label با مقدار a کلیک کنیم checkbox با id=a انتخاب میشه.

در انتها یه span برای نمایش نتایج قرار دادیم ، ما براش کلاس sum رو در نظر گرفتیم شما هر نامی که دلتون میخواد براش قرار بدید.

حالا بهتره یه مقدار محیط بازی رو زیباتر کنیم، بنابراین به sectionمون استایل زیر رو میدیم:

یه استایل شیک هم به checkbox ها و  label ها میدیم :

ما میخوایم checkbox ها از دید کاربر مخفی بشه و کاربر فقط label رو با اعداد ببینه بنابریان استایل زیر رو به checkbox میدیم:

حالا به label ها استایل زیر رو اختصاص میدیم:

استایل ها کاملا واضحه پس توضیح نمیدم ، استایل بعدی باز مربوط میشه به label ها و چک باکس ها همراه باهم :

در استایل بالا گفتیم هر وقت که چک باکسی انتخاب شد، label مربوط به اون چک باکس استایل بالارو به خودش بگیره.

حالا به span یی که قراره نتیجه رو در اون مشاهده کنیم استایل میدیم:

تا اینجا ما فقط محیط بازی و زیبا کردیم ف حالا باید عملیات رو تعریف کنیم .

حالا باید بگیم زمانی که روی چک باکس ها کلیک شد مقادیر label مربوط به اون چک باکس در span نمایش داده بشه ، در اینجا از خصوصیت جدید  counter-increment  استفاده می کنیم:

در کد بالا ما با استفاده از counter-increment برای هر checkbox انتخاب شده یک نام و یک عدد در نظر میگیریم ، دقت داشته باشید این اعداد با اعداد نمایشی در html برابر هست.

حالا میخوایم بگیم که هروقت روی چک باکس کلیک کردیم عدد مربوطه در span نمایش داده بشه ، برای اینکار از کد زیر استفاده می کنیم:

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

در این بازی اگر ما اعداد +۶۴ و +۱۶ و -۸ رو همزمان باهم انتخاب کنیم عدد ۷۲ بدست میاد که نتیجه ی برد بازی ماست. پس میگیم در صورتی که چک باکس های a و b و f تیک خورده بودند، در span که کلاس sum رو براش در نظر گرفتیم ، متن ” شما برنده شدید ” رو نمایش بده ، برای این کار استایل زیر رو در نظر میگیریم:

در کد بالا شما selector های جدید  :checkو  :not(checked) رو میبینید ، این انتخابگرها یعنی زمانی که چک باکس ” انتخاب شده بود ” یا ” انتخاب نشده بود” .

متن ” شما برنده شدید ” رو در  after کلاس sum یا همون span نمایش میدیم، به عبارتی نتیجه ی اعداد رو در  before یعنی قبل span و متن برنده شدن رو در  after یعنی بعد span نمایش میدیم.

خوب تبریک میگم شما تونستید با css3 یک بازی با ریاضی طراحی کنید 🙂 حالا با دانسته های خودتون میتونید این بازی رو زیباتر و جذاب تر کنید.

 

عضویت در خبرنامه سایت

با عضویت در خبرنامه می توانید از جدیدترین مقالات، اخبار و محصولات سایت در ایمیل خود با خبر شوید.

به جمع 9475 کاربر ما بپیوندید.

ایمیل خود را وارد کنید
loading در حال ارسال اطلاعات...