-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathfaq.html
271 lines (270 loc) · 15.7 KB
/
faq.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
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8"/>
<meta name="description" content="Free Solitaire Games in Material Design; Klondike, Freecell, Spider, Yukon"/>
<meta name="keywords" content="Solitaire, Patience, Klondike, Freecell, Yukon, Spider, Scorpion, Canfield"/>
<meta name="author" content="Gilbert Oddstream"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0"/>
<meta http-equiv="Cache-control" content="no-cache"/>
<title>Solitaire FAQ</title>
<link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet">
<link type="text/css" rel="stylesheet" href="css/materialize.min.css" media="screen"/>
<style>
.steelblue {
background-color: #4682b4;
}
</style>
</head>
<body>
<h1>Frequently Asked Questions</h1>
<ul class="collapsible">
<li>
<div class="collapsible-header"><i class="material-icons">star</i>What makes this different from the other solitaire implementations?</div>
<div class="collapsible-body"><span>
<p>This solitaire is all about <a href="https://en.wikipedia.org/wiki/Flow_(psychology)">flow</a>.
Anything that distracts from your interaction with the flow of the game has been either been tried and removed or not included.
Crucially, the games can be played by single-clicking the card you wish to move, and the software figures out where you want the card to go
(mostly to the foundation if possible, and if not, the biggest tableau). If you don't like where the card goes,
just try clicking it again or drag it.
</p>
<p>Also, I'm trying to make games authentic, by taking the rules from reputable sources
and implementing them exactly. For example, the tableau shuffling algorithm for Cruel and Perseverance
has been <a href="https://politaire.com/article/cruel.html" target="_blank">chosen carefully</a>,
Penguin works as the author intended,
Blockade refills empty tableaux from the stock,
Baker's Dozen shuffles kings to he bottom of each tableau and
Frog/Toad moves aces out of the reserve and only allows cards to be moved to certain places.
</p>
</span>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">photo</i>Why are the graphics so basic?</div>
<div class="collapsible-body"><span>
<p>Anything that distracts from your interaction with the flow of the game,
or the ability to scan a deck of cards,
has either been tried and removed, or not included.
This includes:
fancy card designs (front and back),
changing the screen/baize background,
animating card flips,
keeping an arbitrary score,
distracting graphics on the screen,
and forcing you to drag the cards to move them.</p>
<p>The user interface tries to stick to the Material Design guidelines, and so is minimal and tactile.
I looked at a lot of the other solitaire websites out there, and think how distracting some of them are.
Features seem to have been added because the developers thought they were cool;
they never seem to have stopped to
consider that just because they <em>could</em> implement a feature, that they <em>should</em>.</p>
</span>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">format_size</i>Sometimes the cards are really huge or really tiny</div>
<div class="collapsible-body"><span>
Resize your browser window.
<em>If the cards are big and you can't see the ones at the the bottom, try making your browser
window narrower.</em>
The cards and playing area will scale automatically.
</span>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">format_list_numbered</i>The rules for a variation are wrong</div>
<div class="collapsible-body"><span>
There's no ISO or ANSI or FIDE-like governing body for solitaire; so there's no standard set of rules.
Other implementations vary in how they interpret each variant.
For example, some variants of American Toad build the tableau down by suit, some by alternate color.
So, rather than just making this stuff up, I've tried to find a well researched set of rules for each variant and stick to them,
leaning heavily on Jan Wolter (RIP, and thanks for all the fish), David Parlett and Thomas Warfield.
Where possible, I've implemented the games from the book
"The Complete Book of Solitaire and Patience Games" by Albert Morehead and Geoffrey Mott-Smith.
</span>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">bookmark</i>Can I get to the individual games directly?</div>
<div class="collapsible-body"><span>Yes. Each game variant has it's own web page; just bookmark the game you like in your browser.
</span>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">data_usage</i>Can I play offline?</div>
<div class="collapsible-body"><span>Yes. There's no traffic between the game and the server once it's loaded.
Game scores are stored in your web browser, and optionally in your personal cloud storage, not on the game's server.
There's no login, no cookies apart from the Google Analytics stuff, and the software doesn't know who or where you are.
</span>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">cloud</i>Saving game progress</div>
<div class="collapsible-body">
<span>
<p>Your scores and progress in the game is normally saved in the web browser.
You can optionally save your game progress to your personal cloud storage, so you can transfer your progress to several different devices and browsers.
Currently, saving to Dropbox is implemented (Google Drive support is being worked on).</p>
<p>If you don't already have a Dropbox account, you can create a free one at <a href="https://www.dropbox/com" target="_blank" rel="noopener">Dropbox</a>.</p>
<p>The software will create a folder called <code>Apps</code> in your Dropbox storage area, and a folder called <code>Oddstream Solitaire</code> within that.
<strong>(This software only has access to that folder, and can't see or do anything with the rest of your stuff.)</strong>
Within that folder, this software will create a file called <code>gameState.json</code> that contains your progress in the games you have played.
You are free to make a backup copy of this file.</p>
<p>Start the process by clicking on the cloud icon in the <code>index.html</code> title bar.
Then click on the 'Get Access Token' button.
In the window that pops up, sign into Dropbox and then grant this software access.
An 'access token' will be returned.
Thereafter, click on the 'Sync' button to save/load your game state between Dropbox and the browser,
or set the sync selector to auto to have this happen automatically when the <code>index.html</code>
page is loaded or unloaded.
You can sever the connection to Dropbox by deleting the displayed access token (doing this won't delete any Dropbox files or folders).</p>
<p>The games only sync from the opening <code>index.html</code> page, not the individual game pages.</p>
</span>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">favorite</i>My favourite variation is not included</div>
<div class="collapsible-body"><span>Email me with the name of the variation, and why you like it so much.
I'm aiming for a well chosen collection of 100 variations. Easthaven and Agnes Sorel might be taken out because,
although well known, they're just about unwinnable. Unless someone can explain the virtue of that.
For some reason I don't like the games where you have to match pairs of cards that make a certain number, like 13 (Pyramid).
<a href="https://en.wikipedia.org/wiki/Accordion_(solitaire)">Accordian</a> is just about the stupidest thing I've ever seen.
</span>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">score</i>What about scores?</div>
<div class="collapsible-body"><span>Nope, the software doesn't keep an arbitary score. Too confusing.
Just the number of moves made, number of wins, and your winning streak (streaks are great).
A game isn't counted at all until you move a card.
Thereafter, if you ask for a new deal, or to replay the current deal, that counts as a loss.
</span>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">timer</i>What about a timer?</div>
<div class="collapsible-body"><span>Nope, there isn't one of those. Too stressful.
Solitaire is also called patience; it's hard to feel patient when you're pressured by a clock.
</span>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">keyboard</i>Keyboard or mouse shortcuts?</div>
<div class="collapsible-body"><span>
U to undo the last move<br/>
<br/>
A to show the number of available moves<br/>
R to show the rules for the current game<br/>
<br/>
E is the same as clicking on the waste (if there is one)<br/>
W is the same as clicking on the stock<br/>
<br/>
S to save the current game position<br/>
L to load a saved game position
</span></div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">casino</i>Is the game rigged?</div>
<div class="collapsible-body"><span>
No. The cards are shuffled randomly using a <a href="https://en.wikipedia.org/wiki/Fisher%E2%80%93Yates_shuffle">Fisher-Yates</a> shuffle
driven by a <a href="https://en.wikipedia.org/wiki/Lehmer_random_number_generator">Park-Miller</a> pseudo random number generator,
which is in itself seeded by a random number. This mechanism was tested and analysed to make sure it produced an even distribution of shuffled cards.
There are <a href="http://qi.com/infocloud/playing-cards">80658175170943878571660636856403766975289505440883277824000000000000</a>
possible deals of a pack of 52 playing cards; you're never going to play the same game twice, nor indeed play the same game
that anyone else ever has, or ever will.
</span>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">settings</i>Settings</div>
<div class="collapsible-body"><span>
<p><em>Animation speed</em> different browsers animate at different speeds, and folks differ in how fast they expect
the cards to move around.
It's fun to set the animation to it's slowest speed and see how many cards you can have animating at the same time.
</p>
<p><em>Highlight movable cards</em> if a card has an available move, then it will appear lighter than one that doesn't.
It makes moveable cards easier to see. Whether or not the move is useful is up to you.
</p>
<p><em>Allow single click to move a card</em> instead of having to drag the cards around.
</p>
<p><em>Auto collection</em> to encourage the software to move a card
from the tableau to a foundation when it is safe to do so.
The cards do not auto collect from any waste or reserve piles; that would make the games too easy.
</p>
</span>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">bug_report</i>I found a bug</div>
<div class="collapsible-body"><span>
Please email [email protected],
and mention that your user agent is <span id="user-agent"></span>.
</span>
<p>
There is a known bug where a card will not animate to it's destination.
If this happens, press 'S' (to save the current game) and then 'L' (to reload it).
If you can find a way to reproduce this bug, then please let me know.
</p>
<p>
<a href="https://twitter.com/messages/compose?recipient_id=&ref_src=twsrc%5Etfw" class="twitter-dm-button" data-screen-name="GOddstream" data-show-count="false">Message @GOddstream</a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</p>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">phone</i>The game is weird on my phone/tablet</div>
<div class="collapsible-body"><span>
The game is aimed at modern desktop browers
(Chrome, Edge and Firefox seem good, Internet Explorer is a complete non-starter).
<br/>
The app runs well on mobile Chrome in fullscreen. Do this by tapping the Menu button (three vertical dots) in the upper right-hand
corner of the screen (or tap the hardware menu button on those devices having one) and selecting Add to homescreen from the menu.
Tap the Add button in the pop up dialog. Then, from the home screen, tap the app icon to open in fullscreen mode.
<br/>
If you have an Android phone, you can download the mobile version from the <a hef="https://play.google.com/store/apps/details?id=com.oddstream.solitaire">Google Play Store</a>.
</span>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">attach_money</i>Is the game free?</div>
<div class="collapsible-body"><span>Yes, but please drop a coin in my <a href="https://paypal.me/oddstream">tip jar</a>
if you enjoy the games.</span>
</div>
</li>
<li>
<div class="collapsible-header"><i class="material-icons">info</i>About</div>
<div class="collapsible-body">
<span>
<p>Written as a general-purpose solitaire engine, capable of playing any variation, in vanilla ECMAScript 2017 (ES8).
The graphics are done in SVG (which would have been easier if there was better SVG support in browsers for z-indexing, drag-drop and events,
and more consistent modelling of touch, pointer and mouse events).
</p>
<p>Front-end CSS framework by <a href="https://materializecss.com/" target="_blank">Materialize</a>.
<a href="https://material.io/tools/icons/?style=baseline" target="_blank">Icons</a> and
<a href="https://fonts.google.com/specimen/Acme" target="_blank">Acme font</a> by Google.
</p>
<p>Original games by
<a href="https://unixpapa.com/" target="_blank">Jan Wolter</a>,
<a href="http://parlettgames.uk/" target="_blank">David Parlett</a>,
<a href="https://www.freecell.net/f/c/alfille.html" target="_blank">Paul Alfille</a>,
<a href="http://webstore.longwood.com/pmwiki.php/Guild/Home" target="_blank">Art Cabral</a>,
Albert Morehead, Geoffrey Mott-Smith,
Zach Gage and
<a href="http://www.goodsol.com/" target="_blank">Thomas Warfield</a>.
</p>
<p>Original Javascript, HTML and CSS Copyright © 2018-2020 Gilbert Oddstream. All rights reserved.
In continuous development, so if you fork it, your copy is already out of date.
</p>
<p>
<a href="https://twitter.com/messages/compose?recipient_id=&ref_src=twsrc%5Etfw" class="twitter-dm-button" data-screen-name="GOddstream" data-show-count="false">Message @GOddstream</a><script async src="https://platform.twitter.com/widgets.js" charset="utf-8"></script>
</p>
</span>
</div>
</li>
</ul>
<script type="text/javascript" src="js/materialize.min.js"></script>
<script type="text/javascript" >
M.AutoInit();
const ua = document.getElementById('user-agent');
if ( ua ) ua.innerHTML = navigator.userAgent;
</script>
</body>
</html>