<commit_before><!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
	<title>8nums - DBFS</title>
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<link rel="stylesheet" type="text/css" href="./css/base.css">
	<link rel="stylesheet" type="text/css" href="./css/index_pcpage.css">
	<script type="text/javascript" src="./js/jquery/jquery-1.8.2.min.js"></script>
	<script type="text/javascript" src="./js/angular/angular.js"></script>
	<script type="text/javascript" src="./js/main.js" ></script>
</head>
<body class="zh_CN">
	<div id="wrap" ng-controller="mainPanel">
		<header class="header">
		8 Numbers - Demo
		</header>
		<div class="content clearfix">
			<div class="square-show">
				<section class="grid-container">
					<span class="grid" ng-repeat="g in ['',1,2,3,4,5,6,7,8]" ng-style="{'transform': 'translate('+filter.getWidth($index)*125+'px,'+filter.getHeight($index)*125+'px)'}"></span>
				</section>
				<section class="title-container">
					<span class="element" ng-repeat="ele in ['',1,2,3,4,5,6,7,8]" ng-style="{'transform': 'translate('+filter.getWidth(showPosition[$index])*125+'px,'+filter.getHeight(showPosition[$index])*125+'px)'}">{{ele}}</span>
				</section>
				<section class="message" ng-show="showMessage" ng-class="{'css3': animateMessage}">
					<p>{{hasSolution?'Completed !':'Sorry ...'}}</p>
					<div class="button-container">
						<div class="button" ng-click="event.reset()">reset</div>
					</div>
				</section>

			</div>
			<section class="step-list">
				<span class="step-total" ng-style="{'text-align': result.solve ? 'left' : 'center'}">{{ result.path.length ? ('Steps: '+result.path.length+'  Times: '+result.time+'ms  States: '+result.stateNum) : "Can\'t Reach"}}</span>
				<ul ng-if="result.solve">
					<li ng-repeat="p in result.path" ng-mouseover="$parent.event.pathView($event, $index)" ng-mouseleave="$parent.event.pathResume($event, $index)" ng-class="{'current': $index === $parent.sourceIndex}" ng-click="$parent.event.pathSelect($event, $index)"><dt>{{$index+1}}.</dt><dd>{{p}}&nbsp;&nbsp;{{event.calcDir(result.path, $index)}}</dd></li>
				</ul>
			</section>
			<div class="toolbar">
				<section class="tool-controller">
					<span class="tool-button" ng-click="event.random()" >random</span>
		<!-- 			<div class="tool-button" ng-click="event.solve()" >solve</div> -->
					<span class="tool-button" ng-click="event.reset()" >reset</span>
					<span class="tool-button" ng-click="event.auto()" >auto</span>
					<span class="tool-button" ng-click="event.next()" >next</span>
				</section>
				<section class="step-status">
					<span class="hasSolution" ng-class="{'success': hasSolution, 'fail': !hasSolution}">{{hasSolution?'has Solution':"hasn\'t Solution"}}
					<section class="left-source">
						<div class="element" ng-repeat="ele in ['',1,2,3,4,5,6,7,8]" ng-style="{'transform': 'translate('+filter.getWidth(sourcePosition[$index])*40+'px,'+filter.getHeight(sourcePosition[$index])*40+'px)'}">{{ele}}</div>
					</section>
					<section class="arrow">
						<div class="arrow-shaft"></div>
						<div class="arrow-point"></div>
					</section>
					<section class="right-target">
						<div class="element" ng-repeat="ele in ['',1,2,3,4,5,6,7,8]" ng-style="{'transform': 'translate('+filter.getWidth(targetPosition[$index])*40+'px,'+filter.getHeight(targetPosition[$index])*40+'px)'}">{{ele}}</div>
					</section>
					</span>
				</section>
			</div>
		</div>
		<div class="console">
			{{result}}
		</div>


	</div>
	<footer class="footer">
		<p>Copyright©2014 木林森林木</p>
	</footer>
<script>
angular.bootstrap(document, ['eightNumsApp']);
</script>
</body>
</html><commit_msg>add readme<commit_after><!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
	<title>8nums - DBFS</title>
	<meta http-equiv="X-UA-Compatible" content="IE=edge">
	<link rel="stylesheet" type="text/css" href="./css/base.css">
	<link rel="stylesheet" type="text/css" href="./css/index_pcpage.css">
	<script type="text/javascript" src="./js/jquery/jquery-1.8.2.min.js"></script>
	<script type="text/javascript" src="./js/angular/angular.js"></script>
	<script type="text/javascript" src="./js/main.js" ></script>
</head>
<body class="zh_CN">
	<div id="wrap" ng-controller="mainPanel">
		<header class="header">
		8 Numbers - Demo
		</header>
		<div class="content clearfix">
			<div class="square-show">
				<section class="grid-container">
					<span class="grid" ng-repeat="g in ['',1,2,3,4,5,6,7,8]" ng-style="{'transform': 'translate('+filter.getWidth($index)*125+'px,'+filter.getHeight($index)*125+'px)'}"></span>
				</section>
				<section class="title-container">
					<span class="element" ng-repeat="ele in ['',1,2,3,4,5,6,7,8]" ng-style="{'transform': 'translate('+filter.getWidth(showPosition[$index])*125+'px,'+filter.getHeight(showPosition[$index])*125+'px)'}">{{ele}}</span>
				</section>
				<section class="message" ng-show="showMessage" ng-class="{'css3': animateMessage}">
					<p>{{hasSolution?'Completed !':'Sorry ...'}}</p>
					<div class="button-container">
						<div class="button" ng-click="event.reset()">reset</div>
					</div>
				</section>

			</div>
			<section class="step-list">
				<span class="step-total" ng-style="{'text-align': result.solve ? 'left' : 'center'}">{{ result.path.length ? ('Steps: '+result.path.length+'  Times: '+result.time+'ms  States: '+result.stateNum) : "Can\'t Reach"}}</span>
				<ul ng-if="result.solve">
					<li ng-repeat="p in result.path" ng-mouseover="$parent.event.pathView($event, $index)" ng-mouseleave="$parent.event.pathResume($event, $index)" ng-class="{'current': $index === $parent.sourceIndex}" ng-click="$parent.event.pathSelect($event, $index)"><dt>{{$index+1}}.</dt><dd>{{p}}&nbsp;&nbsp;{{event.calcDir(result.path, $index)}}</dd></li>
				</ul>
			</section>
			<div class="toolbar">
				<section class="tool-controller">
					<span class="tool-button" ng-click="event.random()" >random</span>
		<!-- 			<div class="tool-button" ng-click="event.solve()" >solve</div> -->
					<span class="tool-button" ng-click="event.reset()" >reset</span>
					<span class="tool-button" ng-click="event.auto()" >auto</span>
					<span class="tool-button" ng-click="event.next()" >next</span>
				</section>
				<section class="step-status">
					<span class="hasSolution" ng-class="{'success': hasSolution, 'fail': !hasSolution}">{{hasSolution?'has Solution':"hasn\'t Solution"}}
					<section class="left-source">
						<div class="element" ng-repeat="ele in ['',1,2,3,4,5,6,7,8]" ng-style="{'transform': 'translate('+filter.getWidth(sourcePosition[$index])*40+'px,'+filter.getHeight(sourcePosition[$index])*40+'px)'}">{{ele}}</div>
					</section>
					<section class="arrow">
						<div class="arrow-shaft"></div>
						<div class="arrow-point"></div>
					</section>
					<section class="right-target">
						<div class="element" ng-repeat="ele in ['',1,2,3,4,5,6,7,8]" ng-style="{'transform': 'translate('+filter.getWidth(targetPosition[$index])*40+'px,'+filter.getHeight(targetPosition[$index])*40+'px)'}">{{ele}}</div>
					</section>
					</span>
				</section>
			</div>
		</div>
		<div class="console">
			{{result}}
		</div>


	</div>
	<footer class="footer" style="text-align: left;text-indent: 62px;">
		<p><b>HTML+Javascript</b> 快速构建的 <b>"八数码问题"</b></p>
		<p>&nbsp;<b>&nbsp;状态存储</b> 使用每3个bit存储一个数字</p>
		<p>&nbsp;<b>&nbsp;搜索算法</b> 由源序列和目标序列开始 双向宽搜(Double BFS)</p>
		<p>&nbsp;<b>&nbsp;动画实现</b> 使用CSS3 transform/transition实现</p>
		<p>&nbsp;<b>&nbsp;交互实现</b> 使用AngularJS MVVM Framework进行数据绑定</p>
		<p style="text-align: right;margin-right: 65px;">Copyright©2014 木林森林木</p>
	</footer>
<script>
angular.bootstrap(document, ['eightNumsApp']);
</script>
</body>
</html>
{'fraction_non_alphanumeric': 0.2468866349980742, 'fraction_numerical': 0.017203748876620874, 'mean_word_length': 5.133858267716535, 'pattern_counts': {'":': 0, '<': 217, '<?xml version=': 0, '>': 217, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '4689570', 'n_tokens_mistral': 3250, 'n_tokens_neox': 2856, 'n_words': 422}