World Library  
Flag as Inappropriate
Email this Article

Microsoft Solitaire

Article Id: WHEBN0009291622
Reproduction Date:

Title: Microsoft Solitaire  
Author: World Heritage Encyclopedia
Language: English
Subject: .NET Framework, Remote Differential Compression, Transactional NTFS, Active Directory Explorer, Windows Shell namespace
Collection:
Publisher: World Heritage Encyclopedia
Publication
Date:
 

Microsoft Solitaire

Solitaire
A component of Microsoft Windows
Solitaire in Windows 7
Details
Included with Windows 3.0 up to Windows 7, Windows 10
Related components
FreeCell, Hearts, Spider Solitaire

Solitaire, also known as Microsoft Solitaire[1] (including in the About box in some versions), is a computer game included with Microsoft Windows, based on a card game of the same name, also known as Klondike.

History

Microsoft has included the game as part of the Windows operating system since Windows 3.0, starting from 1990.[2] The game was developed in 1989 by then intern Wes Cherry,[3] who famously received no royalties from his work. The card deck itself was designed by Macintosh pioneer Susan Kare.[4]

Microsoft intended Windows Solitaire "to soothe people intimidated by the operating system", and at a time where many users were still unfamiliar with graphical user interfaces, it proved useful in familiarizing them with the use of a mouse, such as the drag-and-drop technique required for moving cards.[2]

Lost business productivity by employees playing Solitaire has become a common concern since it became standard on Microsoft Windows.[5] In 2006, a New York City worker was fired after Mayor Michael Bloomberg saw the Solitaire game on the man's office computer.[6]

In October 2012, along with the release of the Windows 8 operating system, Microsoft released a new version of Solitaire called Microsoft Solitaire Collection. This version, designed by Microsoft Studios and developed by Arkadium, is advertisement supported, and introduced many new features to the game.

Microsoft Solitaire celebrated its 25th anniversary on May 18, 2015. To celebrate this event, Microsoft hosted a Solitaire tournament on the Microsoft campus and broadcast the main event on Twitch.[7] Jimmy Fallon discussed this event on The Tonight Show and created a parody video joking about how Microsoft was trying to make Solitaire sound cooler than it really is.

As of July, 2015 Microsoft Solitaire Collection comes pre-installed on Windows 10. On most Windows 10 devices, the app can be found on the start menu. On others, it can be found in the list of All Apps.

Features

Since Windows 3.0, Solitaire allows selecting the design on the back of the cards, choosing whether one or three cards are drawn from the deck at a time, switching between Vegas scoring and Standard scoring, and disabling scoring entirely. The game can also be timed for additional points if the game is won. There is a cheat that will allow drawing one card at a time when 'draw three' is set.

In Windows 2000 and later versions of Solitaire, right-clicking on open spaces automatically moves available cards to the four foundations in the upper right-hand corner, as in Freecell. If the mouse pointer is on a card, a right click will move only that card to its foundation, provided that it is a possible move. Left double-clicking will also move the card to the proper foundation.

Until the Windows XP version, the card backs were the original works designed by Susan Kare, and many were animated.

The Windows Vista and Windows 7 versions of the game save statistics on the number and percentage of games won, and allow users to save incomplete games and to choose cards with different face styles.

The Windows 8 and Windows 10 versions of the game add many new features including 5 basic game modes (Klondike, Spider, FreeCell, Pyramid, and TriPeaks), Daily Challenges, a Star Club (more challenges), Xbox Live achievements, leaderboards, and the ability to save your progress in the cloud.

Despite Solitaire being included for free for 25 years,[8] it was not included in Windows 8 or Windows 8.1.[9] Microsoft produced a new adware version[10] called Microsoft Solitaire Collection that users download though the Windows Store. The 5 basic game modes contain non-intrusive display ads at the end of each game, and there are new features added in Windows 8 (Daily Challenges and Star Club) where users will see interstitial video ads roughly every 15 minutes, but only between games. Users can optionally pay $1.49/month or $10/year to get the Premium Edition of the game, which removes all advertisements, gives double coins for completing Daily Challenges, and gives some bonuses in the basic TriPeaks and Pyramid game modes. [11] Microsoft personalizes the ads by tracking what the user browses online and which apps they use.[12][13] The software, designed by Microsoft Studios and developed by Arkadium, includes Klondike (classic Solitaire), Spider, FreeCell, Pyramid, and TriPeaks game modes, as well as daily challenges and other features.

Gizmodo characterised the change as a way to "nickel and dime" users, writing that "something which used to come on your PC for free is now corrupted by ad buys."[14] PC Gamer wrote: "The ads in question aren't small banners that appear at the bottom of the screen while you play. They run over the full Solitaire window, some for 15 seconds and some for 30 seconds, and while they don't seem to pop up very often ... they can't be aborted."[15] The Telegraph wrote that users are in "disbelief" that they would have to pay to play a game without being "interrupted by a slew of adverts."[16] Rock, Paper, Shotgun said that the changes are a "particularly heartbreaking sign of the times" and that some users would find it "profoundly sinister" that "a large corporation is gathering and storing vast amounts of data on your computing habits, and not simply what you do in a browser."[13]

References


-- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p-------------------------------------------------------------------------------- -- Module:Hatnote -- -- -- -- This module produces hatnote links and links to related articles. It -- -- implements the and meta-templates and includes -- -- helper functions for other Lua hatnote modules. --


local libraryUtil = require('libraryUtil') local checkType = libraryUtil.checkType local mArguments -- lazily initialise Module:Arguments local yesno -- lazily initialise Module:Yesno

local p = {}


-- Helper functions


local function getArgs(frame) -- Fetches the arguments from the parent frame. Whitespace is trimmed and -- blanks are removed. mArguments = require('Module:Arguments') return mArguments.getArgs(frame, {parentOnly = true}) end

local function removeInitialColon(s) -- Removes the initial colon from a string, if present. return s:match('^:?(.*)') end

function p.findNamespaceId(link, removeColon) -- Finds the namespace id (namespace number) of a link or a pagename. This -- function will not work if the link is enclosed in double brackets. Colons -- are trimmed from the start of the link by default. To skip colon -- trimming, set the removeColon parameter to true. checkType('findNamespaceId', 1, link, 'string') checkType('findNamespaceId', 2, removeColon, 'boolean', true) if removeColon ~= false then link = removeInitialColon(link) end local namespace = link:match('^(.-):') if namespace then local nsTable = mw.site.namespaces[namespace] if nsTable then return nsTable.id end end return 0 end

function p.formatPages(...) -- Formats a list of pages using formatLink and returns it as an array. Nil -- values are not allowed. local pages = {...} local ret = {} for i, page in ipairs(pages) do ret[i] = p._formatLink(page) end return ret end

function p.formatPageTables(...) -- Takes a list of page/display tables and returns it as a list of -- formatted links. Nil values are not allowed. local pages = {...} local links = {} for i, t in ipairs(pages) do checkType('formatPageTables', i, t, 'table') local link = t[1] local display = t[2] links[i] = p._formatLink(link, display) end return links end

function p.makeWikitextError(msg, helpLink, addTrackingCategory) -- Formats an error message to be returned to wikitext. If -- addTrackingCategory is not false after being returned from -- Module:Yesno, and if we are not on a talk page, a tracking category -- is added. checkType('makeWikitextError', 1, msg, 'string') checkType('makeWikitextError', 2, helpLink, 'string', true) yesno = require('Module:Yesno') local title = mw.title.getCurrentTitle() -- Make the help link text. local helpText if helpLink then helpText = ' (help)' else helpText = end -- Make the category text. local category if not title.isTalkPage and yesno(addTrackingCategory) ~= false then category = 'Hatnote templates with errors' category = string.format( '%s:%s', mw.site.namespaces[14].name, category ) else category = end return string.format( '%s', msg, helpText, category ) end


-- Format link -- -- Makes a wikilink from the given link and display values. Links are escaped -- with colons if necessary, and links to sections are detected and displayed -- with " § " as a separator rather than the standard MediaWiki "#". Used in -- the template.


function p.formatLink(frame) local args = getArgs(frame) local link = args[1] local display = args[2] if not link then return p.makeWikitextError( 'no link specified', 'Template:Format hatnote link#Errors', args.category ) end return p._formatLink(link, display) end

function p._formatLink(link, display) -- Find whether we need to use the colon trick or not. We need to use the -- colon trick for categories and files, as otherwise category links -- categorise the page and file links display the file. checkType('_formatLink', 1, link, 'string') checkType('_formatLink', 2, display, 'string', true) link = removeInitialColon(link) local namespace = p.findNamespaceId(link, false) local colon if namespace == 6 or namespace == 14 then colon = ':' else colon = end -- Find whether a faux display value has been added with the | magic -- word. if not display then local prePipe, postPipe = link:match('^(.-)|(.*)$') link = prePipe or link display = postPipe end -- Find the display value. if not display then local page, section = link:match('^(.-)#(.*)$') if page then display = page .. ' § ' .. section end end -- Assemble the link. if display then return string.format('%s', colon, link, display) else return string.format('%s%s', colon, link) end end


-- Hatnote -- -- Produces standard hatnote text. Implements the template.


function p.hatnote(frame) local args = getArgs(frame) local s = args[1] local options = {} if not s then return p.makeWikitextError( 'no text specified', 'Template:Hatnote#Errors', args.category ) end options.extraclasses = args.extraclasses options.selfref = args.selfref return p._hatnote(s, options) end

function p._hatnote(s, options) checkType('_hatnote', 1, s, 'string') checkType('_hatnote', 2, options, 'table', true) local classes = {'hatnote'} local extraclasses = options.extraclasses local selfref = options.selfref if type(extraclasses) == 'string' then classes[#classes + 1] = extraclasses end if selfref then classes[#classes + 1] = 'selfref' end return string.format( '
%s
', table.concat(classes, ' '), s )

end

return p
  1. ^
  2. ^ a b
  3. ^
  4. ^
  5. ^
  6. ^
  7. ^
  8. ^
  9. ^
  10. ^
  11. ^
  12. ^
  13. ^ a b
  14. ^
  15. ^
  16. ^

External links

  • Solitaire at MobyGames
  • Microsoft Solitaire Collection at Windows.com
  • Kortspil at DMOZ
  • Official Facebook page
This article was sourced from Creative Commons Attribution-ShareAlike License; additional terms may apply. World Heritage Encyclopedia content is assembled from numerous content providers, Open Access Publishing, and in compliance with The Fair Access to Science and Technology Research Act (FASTR), Wikimedia Foundation, Inc., Public Library of Science, The Encyclopedia of Life, Open Book Publishers (OBP), PubMed, U.S. National Library of Medicine, National Center for Biotechnology Information, U.S. National Library of Medicine, National Institutes of Health (NIH), U.S. Department of Health & Human Services, and USA.gov, which sources content from all federal, state, local, tribal, and territorial government publication portals (.gov, .mil, .edu). Funding for USA.gov and content contributors is made possible from the U.S. Congress, E-Government Act of 2002.
 
Crowd sourced content that is contributed to World Heritage Encyclopedia is peer reviewed and edited by our editorial staff to ensure quality scholarly research articles.
 
By using this site, you agree to the Terms of Use and Privacy Policy. World Heritage Encyclopedia™ is a registered trademark of the World Public Library Association, a non-profit organization.
 


Copyright © World Library Foundation. All rights reserved. eBooks from Project Gutenberg are sponsored by the World Library Foundation,
a 501c(4) Member's Support Non-Profit Organization, and is NOT affiliated with any governmental agency or department.