-
Notifications
You must be signed in to change notification settings - Fork 12
/
index.html
169 lines (169 loc) · 10 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
<!DOCTYPE html PUBLIC"-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<meta content="text/html;charset=utf-8" http-equiv="Content-Type">
<meta content="utf-8" http-equiv="encoding">
<script type="text/javascript" src="js/angular.min.js"></script>
<script type="text/javascript" src="js/angular-animate.min.js"></script>
<script type="text/javascript" src="js/exponential.js"></script>
<script type="text/javascript" src="js/decimal.min.js"></script>
<script type="text/javascript" src="js/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
<link rel="stylesheet" type="text/css" href="styles/main.css">
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-58136427-1', 'auto');
ga('send', 'pageview');
</script>
<html ng-app="incremental" ng-controller="IncCtrl">
<head>
<title ng-if="!sprintFinished && !player.preferences.logscale">{{Math.max(Math.floor((player.n.div(getGoal()))*1000)/10,0)}}%</title>
<title ng-if="!sprintFinished && player.preferences.logscale">{{Math.max(Math.floor((player.n.ln().div(getGoal().ln()))*1000)/10,0)}}%</title>
<title ng-if="sprintFinished">100%</title>
</head>
<body>
<div ng-if="loading">
<center>
<h2>Calculating offline progress {{offlineProgress}}%</h2>
</center>
</div>
<div ng-if="!loading">
<div class="title">$$\text{True}^\text{xponential}\scriptstyle \text{: On sequences of numbers for which } \\\scriptstyle \alpha^n \le a(n) \le \beta^n \text{ for some } 1 \le \alpha \le \beta \text{ and all large } n$$</div>
<div class="author">$$\text{angarg12}^{\dagger}\text{, GPLv2 license, version {{version}}}$$</div>
<div class="abstract" ng-click="player.preferences.abstractVisible = !player.preferences.abstractVisible"><b class="clickable">Abstract.</b> <span class="animate-show" ng-show="player.preferences.abstractVisible">Each instant <i>t</i>, <i>n</i> is multiplied by the value of your multiplier. Buy lemmas to increase your multiplier. Each second you get some flat <i>n</i>(<i>t</i>). Buying divides <i>n</i>(<i>t</i>) by a Lemma price. Text in <span class="clickable">red underline</span> is clickable. Get <i>n</i>(<i>t</i>) to the value of the Theorem to prove it. Start a new experiment to prestige. Rerun previous experiments to best your own time.</span></div>
<div class="main_text">
<div id="game">
<div class="section">1. State of the art</div>
<div class="line"><b>Axiom.</b> <i>n</i>(<i>t</i>) = <span ng-bind-html="trustedPrettifyNumber(player.n)"/></div>
<div class="line"><b>Axiom.</b> <i>r</i>(<i>t</i>) = <span ng-bind-html="trustedPrettifyNumber(player.multiplier)"/></div>
<div class="line" ng-if="isEndgame(currentPrestige) == false"><b>Axiom.</b> <i>n</i>(<i>t</i>+1) = <i>n</i>(<i>t</i>) × <i>r</i>(<i>t</i>)</div>
<div class="line" ng-if="isEndgame(currentPrestige)"><b>Axiom.</b> <i>n</i>(<i>t</i>+1) = <i>n</i>(<i>t</i>)<sup><i>r</i>(<i>t</i>)</sup></div>
<div class="line"><b>Axiom.</b> <i>t</i> = <span>{{getSprintTime()}}</span></div>
<div class="line"><b>Theorem<span ng-if="prestigeTier == 1"><sup>′</sup></span> {{currentPrestige}}.</b> <i>n</i>(<i>t</i>) $$\equiv$$ <span ng-bind-html="trustedPrettifyNumber(getGoal())"></span><span ng-if="sprintFinished" style="float:right">∎</span></div>
<div class="line"><b>Lemma.</b> <i>n</i>(<i>t</i>+1) = <i>n</i>(<i>t</i>) + <span ng-bind-html="trustedPrettifyNumber(getFlatIncome())"/></div>
<div class="progress-striped">
<div ng-if="!sprintFinished">
<div class="progress-bar" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="0" style="width:{{player.n.div(getGoal())*100}}%" ng-if="!player.preferences.logscale">
{{Math.max(Math.floor((player.n.div(getGoal()))*1000)/10,0)}}%
</div>
<div class="progress-bar-log" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="0" style="width:{{player.n.ln().div(getGoal().ln())*100}}%" ng-if="player.preferences.logscale">
{{Math.max(Math.floor((player.n.ln().div(getGoal().ln()))*1000)/10,0)}}%
</div>
</div>
<div ng-if="sprintFinished">
<div class="progress-bar-success" role="progressbar" aria-valuenow="0" aria-valuemin="0" aria-valuemax="0" style="width:100%">
100%
</div>
</div>
</div>
<div class="line">Use log scale <input type="checkbox" ng-model="player.preferences.logscale"></div>
</div>
<div id="buildings">
<div class="section">2. Contributions</div>
<br>
<div ng-repeat="upgrade in [] | range:player.multiplierUpgradeLevel.length" on-finish-render="ngRepeatFinished" ng-if="prestigeTier == 0">
<div class="line" id="multiplierUpgrade{{$index}}"
ng-click="buyMultiplierUpgrade($index)"
ng-disabled="isMultiplierDisabled($index)"
ng-class="isMultiplierDisabled($index) ? 'unclickable' : 'clickable'">
placeholder
</div>
<br>
</div>
<div ng-repeat="upgrade in [] | range:player.producerUpgradeLevel.length" on-finish-render="ngRepeatFinished" ng-if="prestigeTier == 1">
<div class="line" id="producerUpgrade{{$index}}"
ng-click="buyProducerUpgrade($index)"
ng-disabled="isProducerDisabled($index)"
ng-class="isProducerDisabled($index) ? 'unclickable' : 'clickable'">
placeholder
</div>
<br>
</div>
</div>
<div id="sprints" ng-if="player.maxPrestige >= 0">
<div class="section">3. Experimental results ({{player.sprintTimes.length+player.sprintSecondTimes.length}}/{{prestigeGoal.length+secondPrestigeGoal.length}})</div>
<br>
<table id="sprintsTable" class="table" align="center">
<thead>
<tr>
<td>
Theorem
</td>
<td>
Runtime
</td>
<td>
Rerun
</td>
</tr>
</thead>
<tbody>
<tr ng-repeat="sprint in player.sprintTimes track by $index">
<td width="20%">
{{$index}}
</td>
<td width="20%">
{{formatTime(sprint)}}
</td>
<td width="20%">
<span id="retry" ng-click="prestige($index, 0)" class="clickable">···</span>
</td>
</tr>
</tbody>
</table>
<table id="sprintsSecondTable" class="table" align="center" ng-if="player.maxSecondPrestige >= 0">
<thead>
<tr>
<td>
Theorem<sup>′</sup>
</td>
<td>
Runtime
</td>
<td>
Rerun
</td>
</tr>
</thead>
<tbody>
<tr ng-repeat="sprint in player.sprintSecondTimes track by $index">
<td width="20%">
{{$index}}
</td>
<td width="20%">
{{formatTime(sprint)}}
</td>
<td width="20%">
<span id="retry" ng-click="prestige($index, 1)" class="clickable">···</span>
</td>
</tr>
</tbody>
</table>
</div>
<div id="options">
<div class="section" ng-if="player.maxPrestige < 0">3. Conclusion</div>
<div class="section" ng-if="player.maxPrestige >= 0">4. Conclusion</div>
<div class="line clickable" id="prestige" ng-click="prestige(player.sprintTimes.length, 0)" ng-if="currentPrestige <= player.maxPrestige && player.sprintTimes.length < prestigeGoal.length">Start next experiment</div>
<div class="line clickable" id="prestige2" ng-click="prestige(player.sprintSecondTimes.length, 1)" ng-if="((prestigeTier == 0 && player.sprintTimes.length > 3) || (prestigeTier == 1 && currentPrestige <= player.maxSecondPrestige)) && player.sprintSecondTimes.length < secondPrestigeGoal.length">Start next experiment<sup>′</sup></div>
<div class="line clickable" id="reset" ng-click="reset(true)">Retire</div>
<div class="line" id="save"><span class="clickable" ng-click="save()">Save experiment</span> Last: {{lastSave}}</div>
</div>
<div id="acknowledgements">
<div class="section">Acknowledgements</div>
<div class="acknowledgements">Thanks to NoDownvotesPlease for the initial code, tangentialThinker (Derivative Clicker) for the save system, kawaritai (Swarm Simulator) for the progress bar, r/incremental_games/ for the comments, feedback and support.</div>
</div>
<div id="links">
<div class="section">Bibliography</div>
<div class="bibliography">[1] <i>Initial code</i>, <a href="http://jsfiddle.net/6a7yhyjv/">http://jsfiddle.net/6a7yhyjv/</a></div>
<div class="bibliography">[2] <i>AngularJS - Superheroic JavaScript MVW Framework</i>, <a href="https://angularjs.org/">https://angularjs.org/</a></div>
<div class="bibliography">[3] <i>decimal.js - An arbitrary-precision Decimal type for JavaScript</i>, <a href="https://github.com/MikeMcl/decimal.js/">https://github.com/MikeMcl/decimal.js/</a></div>
<div class="bibliography">[4] <i>MathJax - Beautiful math in all browsers</i>. A JavaScript display engine for mathematics that works in all browsers. <a href="http://www.mathjax.org/">http://www.mathjax.org/</a></div>
<div class="bibliography">[5] <i>Derivative Clicker</i>, <a href="http://gzgreg.github.io/DerivativeClicker/">http://gzgreg.github.io/DerivativeClicker/</a></div>
<div class="bibliography">[6] <i>Swarm Simulator</i>, <a href="https://swarmsim.github.io">https://swarmsim.github.io</a></div>
<div class="bibliography">[7] <i>/r/incremental_games/</i>, an incremental games community, <a href="http://www.reddit.com/r/incremental_games/">http://www.reddit.com/r/incremental_games/</a></div>
</div>
<div id="footer" class="footer">\(\dagger\) <a href="changelog.txt" target="_newtab">Changelog</a> | <a href="https://github.com/angarg12/TrueExponential" target="_newtab">Github</a></div>
</div>
</div>
</body>
</html>