«شرکت گوگل ابزارها و چیزهای بسیاری را در عرصه فناوری معرفی و منتشر میکند، ولی گاهی اوقات کاربران از یاد میبرند که ما انسانهای معمولی هستیم. من فکر میکنم دلیل اصلی وجود Doodleها این است که با ایجاد تغییرات در طول زمان به کاربران یادآوری کنیم که ما هنوز هم زندهایم.» این سخن «جنیفر هام»، یکی از اعضای تیم طراحی لوگو و یا doodle های گوگل است. اما گویا این تیم هدفی فراتر دارند و در ماههای اخیر، تکنیکهای خود را با جسارت تمام بر روی نخستین و شلوغترین موتور جستجوگر جهان پیاده میکنند. این لوگوها همواره اتفاقاتی جالبی را به یاد ما آورده است. اما آنها چیزی بیش از عکس و نقاشی و آزمایش هستند…
بازی Simon یکی از محبوبترین و در عین حال پیچیده ترین بازیهای زمان قدیم است. اکثر شما با دیدن تنها تصویری از این بازی کاملاً آن را بخاطر میآورید. حتی امکان اینکه تجربه بازی با آن را داشته باشید زیاد است. محبوبیت بازی به حدی است که آن را از حالت مجازی به حالت واقعی تبدیل کردهاند! (اینجا)
حال دلتان میخواهد تا خودتان این بازی را از صفر تجربه کنید؟!! پس با ما باشید …
ساخت بازی Simon با کمک HTML5 و JQuery
در ساخت این بازی ما نمیتوانیم مستقیماً از تصویر رنگی ثابتی استفاده کنیم چون نیاز به تغییر رنگ داریم. با کمک css (اینجا) میتوان چنین کاری انجام داد. ابتدا ما عناصر ثابت و بدون تغییرمان را طراحی میکنیم. در نهایت پس زمینه بازی ما تصویری مانند تصویر زیر خواهد بود:
کدهای پایه
اکنون نیاز به بدنه html برای بازی داریم.
- رنگ پس زمینه که با فعال شدن آن، تغییر رنگ میدهد.(قرمز، آبی، زرد، سبز)
- لینک کردن چهار گوشه بازی
- پیامهای هشدار که بازی به کاربر میدهد.
از جمله لایههای مورد نیاز ما هستند.
و برای قالب css خواهیم داشت :
position: relative;
left: 155px;
width: 200px;
height: 200px;
}
.box {
display: block;
float: left;
width: 100px;
height: 100px;
}
a.box {
position: absolute;
text-decoration: none;
background-image: url(“../img/bg_game.png”);
background-repeat: no-repeat;
}
a.box:focus {
outline: none;
}
.btnTL { background-position: top left; }
.btnTR { background-position: top right; }
.btnBL { background-position: bottom left; }
.btnBR { background-position: bottom right; }
.btnTL, .btnTR {
top: 0;
}
.btnBL, .btnBR {
bottom: 0;
}
.btnTL, .btnBL {
left: 0;
}
.btnTR, .btnBR {
right: 0;
}
#box-0 {
background: #c00000;
}
#box-1 {
background: #1506a3;
}
#box-2 {
background: #046606;
}
#box-3 {
background: #ea8f0c;
}
فرم جستجو
ابتدا یک کد جی کوئری کوچک داریم:
و بعد این کد جاوا اسکریپت :
$(“#search”).submit( function(event) { event.preventDefault(); googleRedirect(); } );
});
function googleRedirect() {
var query = $(“#query”).attr(‘value’);
var url = “http://www.google.com/#q=” + query + “&fp=1″;
window.location = url;
}
کوکی بگذاریم ؟ نه !
کوکی بهترین گزینه برای بسیاری از مسائل مرتبط با وب است. اما اینجا شاید گزینه خوبی نباشد. ما در اینجا اطلاعات را به صورت لوکال ذخیره میکنیم تا کاربران سایت شما هر قدر که میخواهند بازی کنند! و با این کار حجم کمی از اطلاعات به سرورتان ارسال خواهد شد. البته احتمالا این روش بر روی مرورگرهای اینترنت اکسپلورر ۷ و پایینتر از آن جواب نمیدهد.
var level = localStorage["level"]; //now var level is 15
localStorage.removeItem( “level” ); //remove it!
حالا نیاز به راهی داریم تا بازی اجرا شود.
الگوریتم اجرای تصادفی بازی
مهمترین چیز در بازی Simon اجرای تصادفی و شروع غیر قابل پیشبینی آن است. خوب! حالا ما بازی را برای ۵۰ مرحله و با ۴ رنگ میبندیم :
var chars = “0123″; // four colors!
var string_length = 50; //pretty hard, isn’t it?
var sequence = “”;
for (var i=0; i < string_length; i++) { //we’ll have from sequence[0] to sequence[49]
var rnum = Math.floor(Math.random() * chars.length);
sequence += chars.substring(rnum,rnum+1);
}
return sequence;
}
و اما اصل ماجرا :
$(function(){
//caching our elements for better performance
box0 = $(“#box-0″);
box1 = $(“#box-1″);
box2 = $(“#box-2″);
box3 = $(“#box-3″);
clickbox0 = $(“#box-click-0″);
clickbox1 = $(“#box-click-1″);
clickbox2 = $(“#box-click-2″);
clickbox3 = $(“#box-click-3″);
clickbox0.click(
function(event){
event.preventDefault();
clicked(0);
}
);
clickbox1.click(
function(event){
event.preventDefault();
clicked(1);
}
);
clickbox2.click(
function(event){
event.preventDefault();
clicked(2);
}
);
clickbox3.click(
function(event){
event.preventDefault();
clicked(3);
}
);
var minHover = 0.7;
var maxHover = 1;
var timeHover = 500;
clickbox0.hover(
function(){
box0.stop().animate({opacity: minHover}, timeHover);
}, function() {
box0.stop().animate({opacity: maxHover}, timeHover);
}
);
clickbox1.hover(
function(){
box1.stop().animate({opacity: minHover}, timeHover);
}, function() {
box1.stop().animate({opacity: maxHover}, timeHover);
}
);
clickbox2.hover(
function(){
box2.stop().animate({opacity: minHover}, timeHover);
}, function() {
box2.stop().animate({opacity: maxHover}, timeHover);
}
);
clickbox3.hover(
function(){
box3.stop().animate({opacity: minHover}, timeHover);
}, function() {
box3.stop().animate({opacity: maxHover}, timeHover);
}
);
});
شما برنده شدید. وارد مرحله بعد شوید!
زمانی که برنده میشوید بازی باید شما را به مرحله بعد ببرد :
function clicked( color ) {
// refresh my memory, how long have you gone so far?
var level = localStorage["level"]; // this is our current level
var clicks = localStorage["clicks"]; //this is our current item INSIDE one level
var speed = localStorage["speed"]; //to make it more fun, when you get right it goes faster
// blink it!
window['box' + color].stop().animate({ opacity: 0.3 }, (speed * 0.5) ).animate({ “opacity”: “1″ }, (speed * 0.3) ); //variable variables in js via window[varname]
// well, this time you’ve got it right?
if ( localStorage["sequence"][clicks] == color) {
//oh, yeah!
localStorage["clicks"]++;
//have you finished this level?
if ( level == clicks) {
nextLevel();
}
} else {
//oh, noes!
endGame();
}
}
شمامرتکب خطا شدید!
اما اگر بجای کلیک بر روی رنگ صحیح بر روی رنگ دیگری کلیک کردید بازی باید به شما پیامی بدهد :
//Oh, Yes
showBox(“#ohYes”, 1000);
// you deserve it, let’s move on
localStorage["level"]++;
levelCount.text(localStorage["level"]);
localStorage["clicks"] = 0;
//let’s show you how it’ll be
current = 0; //since it’s used just for animation, let’s leave it as global var
if ( localStorage["speed"] > 300 && (localStorage["level"] / 5) == 0 ) { //our maximum speed, and we’ll only acelerate it each 5 levels
localStorage["speed"] = localStorage["speed"] * 0.8;
}
setTimeout( function() { rightPath(); } , localStorage["speed"] );
}
اکنون شما میتوانید بازی را اجرا کنید. برای راحتی کار، میتوانید فایل کامل این بازی را از ایــنجا دریافت کنید و یا از اینــــجا به صورت آنلاین بازی کنید.
حداکثر امتیاز شما چقدر است؟!








نام : مهدی خاکسار
تاریخ تولد : 29 بهمن 1371
محل سکونت : تهران
درباره من : بیشتر فعالیتم بر روی طراحی و برنامه نویسی تحت وب و گسترش وب فارسی هست

نام : حسین هادی پور
تاریخ تولد : 1372
محل سکونت : یاسوج
درباره من : گرافیست 2 بعدی و سه بعدی

نام : میلاد داودآبادی
تاریخ تولد : 23 اردیبهشت 1371
محل سکونت : اراک
درباره من : طراح و برنامه نویس وب

نام : مجتبی جشنانی
درباره من : بیشتر فعالیتم بر روی سیستم مدیریتی دیتالایف انجین می باشد

نام : جواد عباسی
تاریخ تولد : 11 تیر 1366
محل سکونت : گرگان
درباره من : مهندس عمران ، گرافیک وب ، کد نویسی html & css، کورل و ایندیزاین ، اندکی 3d

نام : الهام ناظمی
محل سکونت : تهران
درباره من : مهندس نرم افزار


نام : مهدی فتحی
تاریخ تولد : 20 بهمن 1371
محل سکونت : تبریز
درباره من : فعالیتم بیشتر بر روی گرافیک و برنامه نویسی هست





