<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>OneHandedSolitaire &#8211; Set Side B</title>
	<atom:link href="https://setsideb.com/tag/onehandedsolitaire/feed/" rel="self" type="application/rss+xml" />
	<link>https://setsideb.com</link>
	<description>The Flipside of Gaming</description>
	<lastBuildDate>Mon, 16 Mar 2026 05:32:28 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://setsideb.com/wp-content/uploads/2022/04/cropped-mascot512-32x32.png</url>
	<title>OneHandedSolitaire &#8211; Set Side B</title>
	<link>https://setsideb.com</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Code Adventures: Simulating One Handed Solitaire</title>
		<link>https://setsideb.com/code-adventures-simulating-one-handed-solitaire/</link>
					<comments>https://setsideb.com/code-adventures-simulating-one-handed-solitaire/#comments</comments>
		
		<dc:creator><![CDATA[rodneylives]]></dc:creator>
		<pubDate>Mon, 16 Mar 2026 14:00:00 +0000</pubDate>
				<category><![CDATA[niche]]></category>
		<category><![CDATA[cardgames]]></category>
		<category><![CDATA[ChurchHatesTucker]]></category>
		<category><![CDATA[CodeAdventures]]></category>
		<category><![CDATA[GatherTogetherGames]]></category>
		<category><![CDATA[OneHandedSolitaire]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[solitaire]]></category>
		<guid isPermaLink="false">https://setsideb.com/?p=11812</guid>

					<description><![CDATA[My style in titling these things is to just present the subject on whatever it is I&#8217;m linking to in the title, so you might expect that this is about someone else doing that and me reporting on it. But no! This time it&#8217;s something I did myself! First, you have to know of a &#8230; <a href="https://setsideb.com/code-adventures-simulating-one-handed-solitaire/" class="more-link">Continue reading<span class="screen-reader-text"> "Code Adventures: Simulating One Handed Solitaire"</span></a>]]></description>
										<content:encoded><![CDATA[
<p>My style in titling these things is to just present the subject on whatever it is I&#8217;m linking to in the title, so you might expect that this is about someone else doing that and me reporting on it. But no! This time it&#8217;s something I did myself!</p>



<p>First, you have to know of a card game called One Handed Solitaire, <a href="https://www.metafilter.com/212541/More-productive-than-doomscrolling">as reported by Metafilter member ChurchHatesTucker here</a>. CHT&#8217;s been on a tear in presenting various card games lately, here&#8217;s the other recent posts they&#8217;ve made on solitaire card games, with a dungeon crawl flavor: <a href="https://avatus.itch.io/clear-the-dungeon">Clear the Dungeon</a>, <a href="https://www.metafilter.com/212303/I--Tomb-Raiderlikes">Tomb of the Four Kings</a>, <a href="https://www.metafilter.com/212217/I--Roguelikes">Scoundrel</a>.</p>



<p>One Handed Solitaire is very simple, and an example of a &#8220;zero player game.&#8221; There are no decisions to make; winning or losing is completely down to the initial state of the deck. Here are the rules in text:</p>



<p>You start with a shuffled deck of cards. Draw four to form your hand. Your hand is considered to be in sequence, you must keep them in the order drawn. Now:</p>



<ul class="wp-block-list">
<li>If the first and fourth cards are the same suit, discard the second and third cards from your hand out of play. This of course moves the fourth card to be the second card.</li>



<li>If the first and fourth cards are the same rank, discard the first four cards from your hand.</li>



<li> If neither of these things are true, draw another card from the deck to the front of your hand. This makes a new first card, and changes which the fourth card is.</li>



<li>When the deck runs out and you can no longer remove cards, the game is over. If you clear your hand and there&#8217;s still cards in the deck you&#8217;re not done, draw four more.</li>
</ul>



<p>Your score (lower is better) is how many cards are in your hand when you run out of deck and can no longer discard cards. The average score is about 13.32 cards left. If you get a score of zero, that is you discard all of the cards from your hand and the deck is empty, you win.</p>



<p><a href="https://www.youtube.com/watch?v=jayssGEYyq4">Here are the rules demonstrated by Gather Together Games</a> in a Youtube video (1¾ minutes):</p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-16-9 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="How To Play One Handed Solitaire" width="840" height="473" src="https://www.youtube.com/embed/jayssGEYyq4?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p>ChurchHatesTucker ran a simulation of 200,000 runs and found the win rate of the game is close to 0.7%. I ran my own simulation, in a Python script, and found that out as well. I&#8217;ll put my code at the end of this post. <em>No AI was used in its writing</em>, and <em>permission is not given to use it to train AIs</em>. In fact, that&#8217;s true of all the text in this blog.</p>



<p>My first attempt found a win rate of 0.94%, but that turns out to be because I left out the aces from the deck! I tried a run with only 20 cards in the deck the 2-6 of each suit, and the win rate became about 7.5%.</p>



<p>If you want to try yourself, here&#8217;s the Python code I used. If you have Python installed, just paste it into a text file, give it the extension .py, and run it. It assumes you&#8217;re running it in a Linux or other Unix-like system; if you&#8217;re on Windows, you might have to change the &#8220;shebang&#8221; line at the front to point to where your Python is.</p>



<pre class="wp-block-preformatted">#!/usr/bin/python<br>import random<br><br>def draw(deck):<br>    if len(deck) > 0:<br>        return deck.pop(0)<br>    else:<br>        return None<br><br>def gameend(deck, hand, verbose):<br>    score = len(hand)<br>    if verbose >= 1:<br>        print("Deck exhaused. Final score:",score)<br>        if score == 0:<br>            print("Win!")<br>    if verbose >= 2:<br>        print("Deck state:",deck)<br>        print("Hand state:",hand)<br>    return score<br><br>def play(verbose = 0):<br>    deck = ["2H","3H","4H","5H","6H","7H","8H","9H","TH","JH","QH","KH","AH",<br>            "2D","3D","4D","5D","6D","7D","8D","9D","TD","JD","QD","KD","AD",<br>            "2C","3C","4C","5C","6C","7C","8C","9C","TC","JC","QC","KC","AC",<br>            "2S","3S","4S","5S","6S","7S","8S","9S","TS","JS","QS","KS","AS"]<br>    hand = []<br>    random.shuffle(deck)<br>    for a in range(4):<br>        hand.append(draw(deck))<br>    if verbose >= 3:<br>        print("Game starting--")<br>    while True:<br>        if len(hand) &lt; 4:<br>            drawcard = draw(deck)<br>            if drawcard == None:<br>                return gameend(deck, hand, verbose)<br>            if verbose >= 2:<br>                print("Drew a",drawcard)<br>            hand.insert(0, drawcard)<br>            continue<br>        cardtop = hand[0]<br>        cardfourth = hand[3]<br>        if verbose >= 3:<br>            print("********: Deck length:",len(deck), "Hand length:",len(hand))<br>        if verbose >= 2:<br>            print("CARDS:", cardtop, cardfourth)<br>        # case 1: if the 1st and 4th cards match suit, discard the second and third cards<br>        if cardtop[1] == cardfourth[1]:<br>            d1 = hand.pop(1)<br>            d2 = hand.pop(1)<br>            if verbose >= 2:<br>                print("Discarded",d1,"and",d2)<br>            continue<br>        # case 2: if the 1st and 4th cards match rank, discard the top four<br>        if cardtop[0] == cardfourth[0]:<br>            d1 = hand.pop(0)<br>            d2 = hand.pop(0)<br>            d3 = hand.pop(0)<br>            d4 = hand.pop(0)<br>            if verbose >= 2:<br>                print("Discarded:",d1,d2,d3,d4)<br>            continue<br>        # case 3: if neither is true, draw a card<br>        drawcard = draw(deck)<br>        if drawcard == None:<br>            return gameend(deck, hand, verbose)<br>        else:<br>            if verbose >= 2:<br>                print("Drew a card")<br>            hand.insert(0, drawcard)<br>        # end of loop<br><br>if __name__ == "__main__":<br>    numgames = 10000000<br>    wins = 0<br>    scores = []<br>    scoresum = 0<br>    for count in range(numgames):<br>        score = play(verbose = 0)<br>        scores.append(score)<br>        scoresum += score<br>        if score == 0:<br>            wins += 1<br>            #print("A win on game #",count+1)<br>        if count % 500000 == 0:<br>            print("Played",count,"games...")<br>    print("Finished playing",numgames,"games")<br>    print("Wins:",wins)<br>    print("Win rate:",wins/numgames)<br>    print("Total score:",scoresum)<br>    print("Average score:",scoresum/numgames)<br>    print("Run compete.")<br></pre>
<div class="saboxplugin-wrap" itemtype="http://schema.org/Person" itemscope itemprop="author"><div class="saboxplugin-tab"><div class="saboxplugin-gravatar"><img alt='rodneylives' src='https://secure.gravatar.com/avatar/cb688ada8b517e838b06bdbcddb8d1ea3dd56de2e66848938e8c6568002a4fa9?s=100&#038;d=mm&#038;r=g' srcset='https://secure.gravatar.com/avatar/cb688ada8b517e838b06bdbcddb8d1ea3dd56de2e66848938e8c6568002a4fa9?s=200&#038;d=mm&#038;r=g 2x' class='avatar avatar-100 photo' height='100' width='100' itemprop="image"/></div><div class="saboxplugin-authorname"><a href="https://setsideb.com/author/rodneylives/" class="vcard author" rel="author"><span class="fn">rodneylives</span></a></div><div class="saboxplugin-desc"><div itemprop="description"></div></div><div class="clearfix"></div><div class="saboxplugin-socials "><a title="Twitter" target="_self" href="https://twitter.com/rodneylives" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-twitter" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 30 30"><path d="M26.37,26l-8.795-12.822l0.015,0.012L25.52,4h-2.65l-6.46,7.48L11.28,4H4.33l8.211,11.971L12.54,15.97L3.88,26h2.65 l7.182-8.322L19.42,26H26.37z M10.23,6l12.34,18h-2.1L8.12,6H10.23z" /></svg></span></a><a title="Instagram" target="_self" href="https://www.instagram.com/rodneysnotdead/" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-instagram" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 448 512"><path fill="currentColor" d="M224.1 141c-63.6 0-114.9 51.3-114.9 114.9s51.3 114.9 114.9 114.9S339 319.5 339 255.9 287.7 141 224.1 141zm0 189.6c-41.1 0-74.7-33.5-74.7-74.7s33.5-74.7 74.7-74.7 74.7 33.5 74.7 74.7-33.6 74.7-74.7 74.7zm146.4-194.3c0 14.9-12 26.8-26.8 26.8-14.9 0-26.8-12-26.8-26.8s12-26.8 26.8-26.8 26.8 12 26.8 26.8zm76.1 27.2c-1.7-35.9-9.9-67.7-36.2-93.9-26.2-26.2-58-34.4-93.9-36.2-37-2.1-147.9-2.1-184.9 0-35.8 1.7-67.6 9.9-93.9 36.1s-34.4 58-36.2 93.9c-2.1 37-2.1 147.9 0 184.9 1.7 35.9 9.9 67.7 36.2 93.9s58 34.4 93.9 36.2c37 2.1 147.9 2.1 184.9 0 35.9-1.7 67.7-9.9 93.9-36.2 26.2-26.2 34.4-58 36.2-93.9 2.1-37 2.1-147.8 0-184.8zM398.8 388c-7.8 19.6-22.9 34.7-42.6 42.6-29.5 11.7-99.5 9-132.1 9s-102.7 2.6-132.1-9c-19.6-7.8-34.7-22.9-42.6-42.6-11.7-29.5-9-99.5-9-132.1s-2.6-102.7 9-132.1c7.8-19.6 22.9-34.7 42.6-42.6 29.5-11.7 99.5-9 132.1-9s102.7-2.6 132.1 9c19.6 7.8 34.7 22.9 42.6 42.6 11.7 29.5 9 99.5 9 132.1s2.7 102.7-9 132.1z"></path></svg></span></a><a title="Html5" target="_self" href="https://www.metafilter.com/user/23306" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-html5" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 384 512"><path fill="currentColor" d="M0 32l34.9 395.8L191.5 480l157.6-52.2L384 32H0zm308.2 127.9H124.4l4.1 49.4h175.6l-13.6 148.4-97.9 27v.3h-1.1l-98.7-27.3-6-75.8h47.7L138 320l53.5 14.5 53.7-14.5 6-62.2H84.3L71.5 112.2h241.1l-4.4 47.7z"></path></svg></span></a><a title="Mastodont" target="_self" href="https://cybre.space/@rodneylives" rel="nofollow noopener" class="saboxplugin-icon-grey"><svg aria-hidden="true" class="sab-mastodont" role="img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 417 512"><path fill="currentColor" d="M417.8 179.1c0-97.2-63.7-125.7-63.7-125.7-62.5-28.7-228.5-28.4-290.4 0 0 0-63.7 28.5-63.7 125.7 0 115.7-6.6 259.4 105.6 289.1 40.5 10.7 75.3 13 103.3 11.4 50.8-2.8 79.3-18.1 79.3-18.1l-1.7-36.9s-36.3 11.4-77.1 10.1c-40.4-1.4-83-4.4-89.6-54-.6-4.4-.9-9-.9-13.9 85.6 20.9 158.6 9.1 178.7 6.7 56.1-6.7 105-41.3 111.2-72.9 9.8-49.8 9-121.5 9-121.5zm-75.1 125.2h-46.6V190.1c0-49.7-64-51.6-64 6.9v62.5h-46.3V197c0-58.5-64-56.6-64-6.9v114.2H75.1c0-122.1-5.2-147.9 18.4-175 25.9-28.9 79.8-30.8 103.8 6.1l11.6 19.5 11.6-19.5c24.1-37.1 78.1-34.8 103.8-6.1 23.7 27.3 18.4 53 18.4 175z"></path></svg></span></a></div></div></div>]]></content:encoded>
					
					<wfw:commentRss>https://setsideb.com/code-adventures-simulating-one-handed-solitaire/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>
