`
seaboycs
  • 浏览: 127952 次
  • 性别: Icon_minigender_1
  • 来自: 南通
社区版块
存档分类
最新评论

最强大脑-星际迷航-JQuery 版本

阅读更多

最强大脑上小四鄙视星际迷航的项目,认为就是放大版的找茬。个人感觉项目难度还是非常高的。闲来无事,用jquery写了一个类似的小游戏。

 

使用JQuery + Bootstrap 的框架来搭建html,结构如下:

game

    --css

    --js

    --fonts

    --game.html

 

新建一个文件夹game。

http://d.bootcss.com/bootstrap-3.3.5-dist.zip 下载bootstrap,解压后把所有的文件夹(css, fonts, js)都copy到game目录下,再从http://code.jquery.com/jquery-1.12.0.js 下载jquery,并copy到game/js目录中,在game/css目录中新建game.css文件,在game/js中新建game.js, 在game目录中新建game.html。

 

然后用编辑工具打开上面的三个文件,贴上内容:

 

 game.css

body {
	background-color: gray;
}

#screens {
	height: 200px;
}

#leftScreen {
	position: relative;  
	height: 100%;
	background-color: black;
	border-right: 2px solid gray;
	padding: 0px;
}

#rightScreen {
	position: relative;  
	height: 100%;
	background-color: black;
	border-left: 2px solid gray;
	padding: 0px;
}

#controllers {
	height: 40px;
	line-height: 40px;
	background-color: green;
}

#controllers button {
	height: 40px;
}

@keyframes circle-show {  
    0% {  
        transform: scale(0);  
    }  
    25% {  
        transform: scale(0.25);  
    }  
    50% {  
        transform: scale(0.5);  
    }  
    75% {  
        transform: scale(0.75);  
    }  
    100% {  
        transform: scale(1);  
    } 
}  

@-webkit-keyframes circle-show {  
    0% {  
        -webkit-transform: scale(0);  
    }  
    25% {  
        -webkit-transform: scale(0.25);  
    }  
    50% {  
        -webkit-transform: scale(0.5);  
    }  
    75% {  
        -webkit-transform: scale(0.75);  
    } 
    100% {  
        -webkit-transform: scale(1);  
    } 
}  

.circle {
	position: absolute;      
    -webkit-animation: circle-show 3s;  
    -moz-animation: circle-show 3s;  
    animation: circle-show 3s;  
	width: 6px;
	height: 6px; 
	border-radius: 50%;
	background-color: white;
}

.circle-hidden {
	display:none;
}

.circle-find {
	background-color: red;
}

 

game.js

var LEVEL = {
	1 : {
		n : 10,
		t : 20
	},
	2 : {
		n : 20,
		t : 30
	},
	3 : {
		n : 50,
		t : 100
	},
	4 : {
		n : 200,
		t : 500
	},
	5 : {
		n : 500,
		t : 1000
	},
	6 : {
		n : 1000,
		t : 2000
	}
};
var FIND = 5;
var timer = false;
var data = {
	status : -1,
	level : 0,
	time : -1,
	pass:false,
	find : FIND
};
var HEIGHT = 0, WIDTH = 0;

var resizeWin = function() {
	var windowHeight = $(window).height();
	var screensHeight = windowHeight - 41;
	$("#screens").css('height', screensHeight);
	$("#screens").css('max-height', screensHeight);
	HEIGHT = $("#leftScreen").height();
	WIDTH = $("#leftScreen").width();
};

var start = function() {
	clean();
	data.status = 1;
	fillScreens();
	data.time = LEVEL[data.level].t;
	startTime();
};

var next = function() {
	if (!data.status || data.status == -1) {
		alert("客官请点隔壁的开始游戏按钮!");
		return;
	}
	if (data.status == -2) {
		alert("客官你当前关卡都伺候不好,还好意思找其他关卡!");
		return;
	}
	if (data.status == 9) {
		alert("客官,你太猛啦,没有关卡啦!");
		return;
	}
	if (data.pass) {
		data.status = 1;
		fillScreens();
		if (LEVEL[data.level]){
			data.time = LEVEL[data.level].t;
		}		
	} else {
		alert("客官别着急啊,本轮的关卡你还没有伺候好呢!");
	}
};

var clean = function() {
	data = {
		status : -1,
		level : 0,
		time : -1,
		pass:false,
		find : FIND
	};
	$("#leftScreen").empty();
	$("#rightScreen").empty();
};

var fillScreens = function() {
	if (data.level >= 6) {
		alert('更多关卡敬请期待!');
		data.level ++;
		data.status = 9;
		score();
		return;
	}
	data.level++;
	$("#rightScreen .circle").unbind('click');
	$("#level").text(data.level);
	$("#leftScreen").empty();
	$("#rightScreen").empty();
	var n = LEVEL[data.level].n;
	for (var i = 0; i < n; i++) {
		var circleLeft = createCircle();
		var circleRight = createCircle();
		var position = getPositions();
		circleLeft.css(position[0]);
		circleLeft.addClass("c" + i);
		circleLeft.attr("index", i);
		circleRight.css(position[1]);
		circleRight.addClass("c" + i);
		circleRight.attr("index", i);
		$("#leftScreen").append(circleLeft);
		$("#rightScreen").append(circleRight);
	}
	var map = {};
	for (var j = 0 ; j < 3; j++) {
		var rindex = -1;
		while(rindex == -1) {
			rindex = randomNumber(n);
			if (!map[rindex]){
				map[rindex] = {find:false};
				$("#leftScreen .c"+rindex).addClass('circle-hidden');
			} else {
				rindex = -1;
			}			
		}
	}
	data.points = map;
	$("#rightScreen .circle").bind('click', clickCircle);
};

var clickCircle = function() {
	var index = $(this).attr('index');
	var flag = false;
	for (var i in data.points){
		if (index == i) {
			if (!data.points[i].find) {
				flag = true;
				data.points[i].find = true;
				$("#rightScreen .c"+ index).addClass('circle-find');
				break;
			}
		}
	}
	if (!flag) {
		data.time = data.time - 5;
		data.time = data.time < 0 ? 0 : data.time;
	} else {
		checkAnswers();
	}
};

var createCircle = function() {
	return $("<div class='circle'></div>");
};

var getPositions = function() {
	var h = HEIGHT - 10 + 1, w = WIDTH - 10 + 1;
	var l = randomNumber(w);
	var t = randomNumber(h);
	return [ {
		left : l,
		top : t
	}, {
		left : WIDTH - 10 - l,
		top : t
	} ];
};

var randomNumber = function(i) {
	return Math.floor(Math.random() * i);
};

var startTime = function() {
	if (!timer){
		data.time = LEVEL[data.level].t;
		calTime();
		timer = true;
	}	
};

var calTime = function() {
	if (data.status == 1) {
		if (data.time > 0) {
			$('#time').text(data.time);
			data.time--;			
		} else {
			$('#time').text('0');
			data.status = -2;
			score();
		}
	} else if (data.status == 2){
		
	} else {
		$('#time').text('0');
	}
	setTimeout(calTime, 1000);
};

var checkAnswers = function() {
	var total = 0, finds = 0;
	for (var i in data.points){
		total ++;
		if (data.points[i].find) {			
			finds++;
		}
	}
	if (total == finds) {
		data.status = 2;
		data.pass = true;
		alert("恭喜客官,闯关成功,下面的关卡更强大哦!手动点下一关把!");
	}
};

var score = function() {
	var t = data.level - 1;
	alert("恭喜客官, 你总共征服了【" + t + "】个关卡!");
};

var find = function() {
	if (data.find > 0) {		
		var flag = false;
		for (var i in data.points){
			if (!data.points[i].find) {			
				data.points[i].find = true;
				$("#rightScreen .c"+ i).addClass('circle-find');
				flag = true;
				break;
			}
		}
		if (flag) {
			data.find --;
			$("#find .badge").text(data.find);
			checkAnswers();
		} else {
			alert("当前关卡已经没有可以提示的了,全找出来啦");
		}
	} else {
		alert("没有机会了!");
	}
	
};

$(document).ready(function() {
	resizeWin();
	$("#start").click(start);
	$("#next").click(next);
	$("#find").click(find);
	$("#find .badge").text(FIND);
});

$(window).resize(function() {
	resizeWin();
});

 game.html:

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>星际迷航</title>
<link href="css/bootstrap.css" rel="stylesheet">
<link href="css/game.css" rel="stylesheet">

<script src="js/jquery-1.12.0.js"></script>
<script src="js/bootstrap.js"></script>
<script src="js/game.js"></script>


</head>
<body>
<div class="container-fluid">
<div id = "controllers"  class="row">
		<div class="col-xs-12 col-sm-12 col-md-12 col-lg-12">
			<button id="start" class="btn btn-primary"><span class="glyphicon glyphicon-play"></span> 开始游戏</button>			
			<button id="next" class="btn btn-primary"><span class="glyphicon glyphicon-forward"></span> 下一关</button>						
			<button class="btn btn-primary"><span class="glyphicon glyphicon-tag"></span> 第 <span class="badge" id="level">0</span> 关</button>
			<button class="btn btn-primary"><span class="glyphicon glyphicon-time"></span> 剩余 <span class="badge"  id="time" >0</span> 秒</button>
			<button id="find" class="btn btn-warning"><span class="glyphicon glyphicon-search"></span> 提示<span class="badge">0</span></button>
		</div>
	</div>
	<div id="screens" class="row">
		<div id ="leftScreen" class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
			
		</div>
		
		<div id ="rightScreen" class="col-xs-6 col-sm-6 col-md-6 col-lg-6">
			
		</div>
	</div>
	
</div>
</body>
</html>

 

这样本地的就搭建好了,双击game.html,就可以打开游戏画面:

 

 

点击开始游戏,屏幕中会出现小白点,左边和右边是按中间的白线对称的,每一关左边的都比右边的少3个点,点击右边屏幕里面白点来找出多余的三个点,点错了会扣5秒钟。全部找齐后可以点击下一关。

 

 

  • 大小: 43.1 KB
  • 大小: 44.4 KB
3
5
分享到:
评论
1 楼 dieslrae 2016-01-19  
只能说郭敬明的身高和智商是成正比的

相关推荐

    参考资料-星际迷航商务汇报PPT模板.zip

    【星际迷航商务汇报PPT模板】是一款专为商务场合设计的演示文稿模板,它融合了科幻元素,特别是“星际迷航”这一经典主题,为商务报告带来独特的视觉体验和创新的展示方式。该模板适合用于公司战略规划、产品发布、...

    c++ 星际迷航源码

    星际迷航源码是计算机编程领域的一个特殊项目,它可能涉及到使用C++编程语言来创建一个与《星际迷航》这一科幻主题相关的软件或游戏。C++是一种强大的、面向对象的编程语言,常用于开发高性能的应用程序,如操作系统...

    星际迷航-星际科学主题生日会.pptx

    星际迷航-星际科学主题生日会.pptx

    scratch编程项目源代码文件案例素材-星际迷航.zip

    《星际迷航》是一款利用Scratch编程语言创作的游戏案例,其源代码文件为"星际迷航.sb3"。Scratch是麻省理工学院(MIT)的“终身幼儿园团队”开发的一款面向少儿的图形化编程工具,旨在培养孩子们的逻辑思维能力和创新...

    scratch3源码无人机终极-空间迷航

    scratch3源码无人机终极-空间迷航本资源系百度网盘分享地址

    星际迷航源码(PHP)

    《星际迷航源码(PHP)》是一款早期的网页游戏,其主要特点是通过PHP编程语言实现,为初学者提供了一次宝贵的源码学习机会。在深入探讨这款游戏的源码之前,我们首先要理解PHP的基本概念以及它在Web开发中的重要地位...

    Linux和《星际迷航之复仇女神》.pdf

    《Linux和《星际迷航之复仇女神》》这篇文档中主要讲述了Linux操作系统在影视特效制作中的应用,特别是通过一个名为Nuke的软件在《星际迷航之复仇女神》的后期制作中的使用。Nuke是一款强大的视觉特效合成软件,它...

    星际迷航 Blacknova

    星际迷航 Blacknova 是一款基于网络的策略游戏,深受玩家喜爱。它的源代码开放,允许玩家和开发者进行自定义和扩展,从而创造出独特的游戏体验。"汉化了一半"的描述意味着这款游戏的界面和文本已经部分本地化为中文...

    无人机终极-空间迷航-少儿编程scratch项目源代码文件案例素材.zip

    《无人机终极-空间迷航》是一个专为少儿设计的编程项目,旨在通过Scratch编程语言,激发孩子们对科技的兴趣,培养他们的逻辑思维能力和创新精神。该项目以“空间迷航”为主题,让孩子们在编程的过程中体验到探索未知...

    Star Trek Discovery《星际迷航发现号(2017)》第四季第十集完整中英文对照剧本 .pdf

    Star Trek Discovery《星际迷航发现号(2017)》第四季第十集完整中英文对照剧本 .pdf

    scratch3源码星际迷航

    scratch3源码星际迷航本资源系百度网盘分享地址

    星际迷航测验:测试您的星际迷航知识

    星际迷航测验 Github回购: : 部署: : 描述 该测验使用户可以在1分钟内完成一系列有关星际迷航的10个问题。 正确答案可得1分,并前进到以下问题。 错误的答案将带您进入以下问题-但也会使计时器加快10秒,并...

    影片《星际迷航:暗黑无界》观后感.pdf

    此外,《星际迷航:暗黑无界》中的哈里森(即可汗)具有超凡的能力,这是基因工程和生物增强的一个科幻版本。在现实中,基因编辑技术如CRISPR-Cas9已经允许科学家在实验室中修改生物体的基因,尽管目前主要用于治疗...

    scratch编程项目源代码文件案例素材-无人机终极--空间迷航.zip

    《Scratch编程项目:无人机终极--空间迷航》 Scratch是一款由麻省理工学院(MIT)媒体实验室“终身幼儿园团队”开发的图形化编程工具,专为青少年儿童设计,旨在培养他们的逻辑思维和创新能力。这个名为“无人机终极-...

    Scratch语言教程&案例&相关项目资源-太空迷航

    Scratch语言教程&案例&相关项目资源 Scratch是一门全新的程序设计语言,用其可以很容易的去创造交互式故事情节,动画,游戏,可以大大增加学生的学习兴趣。​其最大特点:使用者可以不认识英文单词,也可以不会使用...

    Timer-Trek:星际迷航主题计时器

    星际迷航主题计时器。 引擎盖下的 JavaScript,CSS 使其看起来像 LCARS(图书馆计算机访问和检索系统)。 这开始是编程训练营中的代码挑战,以使用 JavaScript 制作计时器。 额外的功劳是让它在计时器到时闪烁或...

    star-trek-ipsum:星际迷航主题lorem ipsum生成器

    《星际迷航Ipsum》是一款基于《星际迷航》(Star Trek)宇宙的占位符文本生成器。这个项目主要用于创建模拟《星际迷航》风格的随机文本,以供设计师和开发者在设计原型或者测试布局时使用。占位符文本通常用于填充...

    super-startrek:经典的《超级星际迷航》游戏(汤姆·阿尔米(Tom Almy)进行了少量添加)

    TOM ALMY的SST自述文件经典的超级星际迷航游戏《超级星际迷航》很可能是1970年代“星际迷航”中最好的游戏。 当然,它不使用图形,甚至不显示视频,但它仍然是一个有趣的游戏,特别是对于那些对我们没有像以前那样...

    电影星际迷航暗黑无界观后感.docx

    电影星际迷航暗黑无界观后感.docx

    trek_synopsis:一个浏览某些《星际迷航》系列剧情简介的网站(TOS,TNG,DS9,VOY)

    "trek_synopsis" 是一个专为《星际迷航》粉丝打造的网站,它提供了对特定系列——《星际迷航:原初系列》(TOS)、《星际迷航:下一代》(TNG)、《星际迷航:深空九号》(DS9)和《星际迷航:航海家号》(VOY)剧情...

Global site tag (gtag.js) - Google Analytics