From a30e9b2556010c70045cfeb0e40096f914c42f16 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Thu, 9 Apr 2026 14:15:45 -0400 Subject: [PATCH] Changes from CAT session --- Project 1/Deck.py | 6 ++++++ Project 1/test.py | 2 ++ Project 2/Deck.py | 13 +++++++++++++ Project 2/__pycache__/Card.cpython-314.pyc | Bin 1773 -> 2382 bytes Project 2/__pycache__/Deck.cpython-314.pyc | Bin 2667 -> 3659 bytes .../__pycache__/Solitaire.cpython-314.pyc | Bin 4214 -> 4241 bytes Project 2/__pycache__/main.cpython-314.pyc | Bin 0 -> 781 bytes .../__pycache__/utilities.cpython-314.pyc | Bin 0 -> 1438 bytes Project 2/utilities.py | 2 ++ 9 files changed, 23 insertions(+) create mode 100644 Project 1/test.py create mode 100644 Project 2/__pycache__/main.cpython-314.pyc create mode 100644 Project 2/__pycache__/utilities.cpython-314.pyc diff --git a/Project 1/Deck.py b/Project 1/Deck.py index d2d5fd8..89d7a6d 100644 --- a/Project 1/Deck.py +++ b/Project 1/Deck.py @@ -27,12 +27,18 @@ class Deck: self._cards.append(Card(suit, value)) #creates a standard 52-card deck def shuffle(self): + """ + Shuffles the deck of cards using the Fisher-Yates algorithm. This algorithm iterates through the deck and swaps each card with a randomly selected card from the remaining unshuffled portion of the deck. After shuffling, it resets the next card index to 0. + """ for i in range(len(self._cards)): #iterates through each card in the deck j = random.randrange(i, len(self._cards)) #selects a random index from i to the end of the deck self._cards[i], self._cards[j] = self._cards[j], self._cards[i] #Shuffles the deck self._next_card = 0 #Resets the next card index after shuffling. def deal(self): + """ + Deals the next card from the deck. Returns None if there are no cards left to deal. + """ if self._next_card >= len(self._cards): return None #Returns None if there are no cards left to deal. card = self._cards[self._next_card] diff --git a/Project 1/test.py b/Project 1/test.py new file mode 100644 index 0000000..88bef15 --- /dev/null +++ b/Project 1/test.py @@ -0,0 +1,2 @@ +for i in range (0, 10): + print(i) \ No newline at end of file diff --git a/Project 2/Deck.py b/Project 2/Deck.py index f63a50e..8302cec 100644 --- a/Project 2/Deck.py +++ b/Project 2/Deck.py @@ -26,12 +26,18 @@ class Deck: self._cards.append(Card(suit, value)) #creates a standard 52-card deck def shuffle(self): + """ + Shuffles the deck of cards using the Fisher-Yates algorithm. This algorithm iterates through the deck and swaps each card with a randomly selected card from the remaining unshuffled portion of the deck. After shuffling, it resets the next card index to 0. + """ for i in range(len(self._cards)): #iterates through each card in the deck j = random.randrange(i, len(self._cards)) #selects a random index from i to the end of the deck self._cards[i], self._cards[j] = self._cards[j], self._cards[i] #Shuffles the deck self._next_card = 0 #Resets the next card index after shuffling. def deal(self): + """ + Deals the next card from the deck. Returns None if there are no cards left to deal. + """ if self._next_card >= len(self._cards): return None #Returns None if there are no cards left to deal. card = self._cards[self._next_card] @@ -41,6 +47,13 @@ class Deck: def number_of_cards(self) -> int: return len(self._cards) - self._next_card #Returns the number of remaining cards in the deck. + def __repr__(self) -> str: + """ + Returns a string representation of the entire deck, + with one card per line. + """ + return "\n".join(str(card) for card in self._cards) + if __name__ == "__main__": deck = Deck() deck.shuffle() #Calls the shuffle method to randomize the deck. diff --git a/Project 2/__pycache__/Card.cpython-314.pyc b/Project 2/__pycache__/Card.cpython-314.pyc index a5c9f2be5a8f1a1cbfed3bd84559a01a952603d7..6881390279dd6ea0263cc05cf5ab6ca4e7519aa9 100644 GIT binary patch delta 885 zcmZ{h&1(}u6u{r?SCZXqw5e^tR#}@ic5Q8H`~Zv4LlqIElvM&kHLS^Ex1^i0J5>}l z!HWnzSQgYn4;Bwzig@%S{sT%Vlu8g0^eUtjOfQ0OhDI#v9DeiW_h#qq%=@l?NG667 zx(Ybf-n@4g5H7gcOvcmWbR-Wo{&HWNs90 z6mBBiM7W7^6XPbzjmnM2P0Wf@H4jv?#`QFqiH0;``=vWM)pF*2CvZF(7`8EAwr{)M z4Wo!TlCSx3m*`Z=;10^MP3mek!1K)SVYc?Rgwyu;v({%R3$y(Pw6%Cl{^?e zk;Wq?X^5^z!*@bo)xZ}E_93=w&;muyY%;8feDe2Tq9`ERL&87=h;F^bpa#>Voye2v z-}_GNM2B~hrGo&ykcTPu_3lxHJo$%);Xk&ecb8GxslUqLHU3iutL#3}f;9LY097!h zhUx~c7f{#?(Zc|+@4)A~Mkrk;*1jXjrNYAf1$=TJR9^hr-Wlg;H|Lr<^i=`ZaK>zxDj z_`s$NiGKe4eiBccG~?lC`DBDuEmewPhte(h!(qR2;arSWJcHPNh($LAL5{W*LGEn= zqNNgfe-jWa>S0k&D@x>17LB%4Z1oS;@9>3U9y*1Guzm)t>rIgm(n=m6nJqx@U-<$Fq= delta 375 zcmW-d&q@MO6o=25f8H^*kSNF&S_BP|V@5(mE2Ub5#6<3jMjKEwr)F-8Xkohw+{9h< z5)tj&^aMRXj}Qey(6sE#y>LE$=YzvJ-1qEvIMI0TLk zaODWOIt4y7U=EQKiwO(WTL)F{Cl1Nl3$_NjN5F4dAAeoCj;{L#w*M zNegLdTmWJLFDje%LFfgc-Sqlh_pH;mYhHND{d0S}!*?#5`CY%|_Uu}9zg%9o_X5A` zwRnC-yrG4P_{1mTqjHaiD5yi?vpPUi6tyAoRU2SRZ0IkEEG}9^+X-bZdQy8g;7%3?% J{Qx0|-9Md=QeOZ7 diff --git a/Project 2/__pycache__/Deck.cpython-314.pyc b/Project 2/__pycache__/Deck.cpython-314.pyc index a094663a22d5f597067dc4573210e627953d5af3..d667d5f47cbe04a3f083e9fcebb36a4bebb6c45d 100644 GIT binary patch delta 1324 zcmZ8hO>7%Q82x7bx89_|HBRHCp&4qC)R5Y3QcA(5v{DpmMMS{_OHpX8#U97o+Ph|U ztR{_wErf)6Le*S?gj9|M4j}cy4elUR)B}LAbr~%{mDoBkfzy%-e6?yzj|> z#(o?hdTHpG0XUxi^sAK}xHl9(`3KJ0a0Bur2SUBI9JxjWnShh`-snXOxNRcgItY>n zq1}kcYve^*fLW3cjzCS%hY%w|&+8&w0Ab|A2}l|b+T;TgJD;vPb(Vgg**DF)WvAb? z#94XVH%w;al<#?RT;_ZgGWg(IUxu_yLI8|+s?AEJ##}0@jFwsH7IiALWb(30o33TA zdF%6*TV?$0iYbt2*47+uiE2GXm#fyHIkg1i9z|5S(_E|mSJSl1)V*ysT*}N+)vMp4 zx3LH{DaTExUfZB9tFe+`WpA5SxKsBEa8@@hTS;l!ZeMMgHXJT2$5vwZg{SD%3JRco z4)Ui_5arBeqJKM^t&4tb%Pup0oeGDZOBu53zaAM!*WH@enZI?2j>y%(hh$K80!tc6 z$c8^I=YlIMN$t+N#vC(iM++W^RSu?To{1*6UApMlj9Q*V&Zvox?d+LbV-=wUl(8CW zxF5_$UQimYdK$Vq3`XSR;0D>2rO+x#%kM*XhquXM(#I!}!Q%=>5w>Mfzl8f+`jk8q zdToKvs72E8xq>G(eo^sWL2xyM(``=G!X*W-A}F#OLwM4L9s~l}zZ86y@LuwVz-Vi5 zcOJLfnARnX%h8e7MxX#os`il)feU*p7xuoxl=|+xW$b%nQdFqA%2`7-$rk3}j^f-x zzgo)BX~T<(GE*g!Hn7Vz%VsH~LyXd4S$;fo7N1>p!_zQ8cNnjOVvVWw$e?;fl|4#H;_#Cp^&@~_u`*h>(#xL>Am*ShvuQngWGmoChJk&Eh zfeg&UL2ee41M+A6%0L>|`RfXDG8WFAN3Xy=gYe`Nthl3v0~dErgaYF`Q9Tgr#YkYL z3kba+=Hwq07Wr{_mMqBc!l#1$TJpE>*tGf=Q--^@5V}4>$ZizK(C;wZ)%?WYGo}b; M4WXMSa?E)9Uw&d$$^ZZW delta 453 zcmX>t^IC*Yn~#@^0SI!ZR%gbsOyrZ0dW3Dm78UC!rRHTN z=4R&UyQCIpm*f}dyJwbolqMTQ=({)v8yQ*Z2NdOJr6!js7*5t_R%B$I9LSu; z$gz0`vo#}Y5fjkP$v;_R`2>KB;w-T9?g)xaPGhTM=lHx2#GmZTE%VZ$c|(rFLYd4rpOvM)y^qvqt}9MO!jla)C;#f$WSQku*~ zYCx(;0z^oH1STKkv;eC3#i`D($%GL1)8v{woyURA0Hn}*@*^HkbrvAASPn@1Xa@$) zCnio-vrl3ytTLZ?SXo8B^D(j-ePaL;lVf;|8Eq#|;FWWMXa?$7$xx&WGDrbP+~Tmw v%}*)KNwq8T0CE|DxHuU|d|+l|WW3G5dzV4Sr5VB)j2VNN#Tjxqf>?m0KnWXEj1?@#1{Pxns%HnP=a6QYEXX)t#7sXU zKQ~oBDK#%EF*h?$-#xQLck%^BQAVT5<5Cc{U3%O=e^ip1h3t8>7_bxh&31jEa*V zvMpwmn%v6%kWp)MI!8AnrxwtO#c@Dlav!_;W+kpHMn;Rtz1&+Foi;o3$TI<{WIhW< zA8wE`Zy@ob9q6A=OiZj&A2^s;IXftit!@v8s>qu6&gCq_oKj|?F4g9p=OUja=361+~< delta 316 zcmbQJ_)URNn~#@^0SKN?uFjNTo5;7-F9XO+WN2WBWhh|`VklvXV=iG9W5{O+Viad6 zVF_XalB{72#*9JC;tV+)K`cO0po9%9!U`5)1B)0dOqOPxZ|0;QTAW%`te=#c zmz9{CnWyiPTAW>yU!d=vS>jQeq~MdEoS38U;v8&bWT_uel%JKFT%uq&`3a*oBgN*A2LdAPUYxk1X3S4XEHLXOz!61%Ba2B zkw=~hNG0-FFd8!h{ZniNB!095ef5cniB;+o2NSE&cMfh=(GLtj;=2?lhy^4*iLnAD n_$EK)Pm{C+YWcv-$jEq?LG(L|F{9c?pr_S7WHC<85YPkwmmN?l diff --git a/Project 2/__pycache__/main.cpython-314.pyc b/Project 2/__pycache__/main.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..08bdcaa22c2413d6a2f4ed60f00d27031a84d175 GIT binary patch literal 781 zcmYjN&rj2E6o23T*bmmRu^3P!t_u<~9W*RU#AE}BxJfXC6jMFGYT4>2*}B@+5Kt3N zW@-q#Xm;eNH;?#7n0Qb!8xAIVP*3RM-PgJWUh+P#-}gT6$ER2N!+n58z5k%CQvl!G zN6+x>S!W8v4irHo^Kc7nh=WKCflXE^k)FB-P{tV}uu2k;>9!z)8TCBL{&aIm;slrL zRn1m3Q!RB_UI-%6=$&5(?iK@9h*v=<5|L!OcSIq7AHX0hF59!-HiMF=CAOD6iM{%z zZtDM?5>8EpPgn*>M5I!_lS~m@RTbPb0t;DyyCfAlRV}AZ?K0>Uf3GG12O=#IL`I@T zHVmRK?aOr4#9?6#AP5&g^p8R^V7j`r0X$CofvX%MY=`-ZQd2E{v##?wew&_1KXAy{ zVv=!KQ_(A`=}LD3MpfA=AkkqBQ`2oMGn<-jIjq<1Fm7=ChH92n-L@F);nAE)VZB~c zg*8>*P->bk6f}GMcDGU;W$*gavC7VwRHAT}Wj4g+8Kge7j4e&&Nt@1hN8{PZniaf7#e90 zoqzRY-}*dwxluUc2AX%8`BtKJvvqZU{GI=Re)IHT_G4`Nkelg5AeQLhDwHbA?gg^E zn4~@N-YsrgM~$-l7R)H}%zlrYt<}qqs_L|P2A}RkYdf|Rr-{`H3sk!nIC619$RTOINHEE^I5l;&tffu8L0`Om z3M9SkA%_qM_!1C3^=KCg{Y#38++sE+w=+9C zG&le#qu>7I+d9A>q;y4z0Xw{dAcO+g>?Yh`f=v@vZYnnvp-jVRu+>ShwMi&jLPbqS zEg>}xwZ2IZ`hERF$amsSgPlx6wtt`WEQ<`cTCE9J__b<)s&>WYr6NNgEfNivit1qs zK?o~QP?nwol+gA8++`cgX0~Fhww6=Uu&wV?-jQC!Fu{|7vLA@ADCGSp!9CI7)kyWL zVw>Kacu?aNR|NE;kD^a=8?}m;TlcCD-HKn$UH8Q&w`)bWocrv`=L-wxb9Z>{p;r{C zg)RlXqWbI0w-5LbwhqJK4kV(d=VvYwPtMVj1B3&S(*7!^FxqhI+$i#1k72f7_?Eill zp1|vIl8l>(W7=g_k~O)VBu9_BMIvjl`Glxj+$u_~mj|Aef{hzf_XPrKka<}8vfCg9 zNK?ze97XNOTDP^(W3%I)e8+Q~ZlqX|6kpgU@A5LX&RCB|?iCw6@E>{GOp-6_%EWa| z;(1P+tZN1VQru^5Do?-pec0MFtj&=ZOS==n%*qPtd#p;qe28~fu^vQvPO@B-l+@yw|~)3}0F z+(LMpG@q?DSt~j92GPAux0O5@qxDwuRL|D#*9Q~f)xS(Irt7D02}@VEE)74o-PQ# literal 0 HcmV?d00001 diff --git a/Project 2/utilities.py b/Project 2/utilities.py index ce7923e..fe6cd15 100644 --- a/Project 2/utilities.py +++ b/Project 2/utilities.py @@ -41,3 +41,5 @@ def test_sum_cards(): ] assert sum_cards_iter(cards) == 21 assert sum_cards_recursive(cards) == 21 + +test_sum_cards() \ No newline at end of file