From 088b4942c5de743b4d8816829e1a8a367b6f8545 Mon Sep 17 00:00:00 2001 From: Justin Date: Wed, 13 Mar 2024 23:48:01 -0400 Subject: [PATCH 1/6] Add history moves --- game.py | 37 +++++++++++++++++++++++++++++++++++++ 1 file changed, 37 insertions(+) diff --git a/game.py b/game.py index af2a738..e4bf202 100644 --- a/game.py +++ b/game.py @@ -31,6 +31,7 @@ def __init__(self, win, color, player1, player2): self.screen = pygame.display.set_mode((1000, 700)) self.player1 = player1 self.player2 = player2 + self.history_moves= [] def check_turn_timeout(self): """ @@ -82,6 +83,19 @@ def display_player_names(self, player1, player2): self.screen.blit(text_surface, (715, 350)) self.screen.blit(text_surface2, (715, 400)) + def display_history_moves(self): + """ + The display history moves function displays the last 10 moves on the screen. + """ + text = "Last 10 Players Moves: " + text_surface = self.font.render(text, True, self.text_color) + self.screen.blit(text_surface, (715, 450)) + move_location_starter = 470 + for i in range(min(10, len(self.history_moves))): # Ensure you don't go out of bounds + moves = str(i+1) + ". " + self.history_moves[i] # Add a space after the dot for better formatting + moves_surface = self.font.render(moves, True, self.text_color) + self.screen.blit(moves_surface, (715, move_location_starter + i * 20)) # Adjust y-coordinate + def update(self): """ The update function updates the board to show the current board and features. @@ -92,6 +106,7 @@ def update(self): self.display_turn() self.display_piece_count() self.display_player_names(self.player1, self.player2) + self.display_history_moves() pygame.display.update() def winner(self): @@ -126,11 +141,33 @@ def move(self, row, col): The move function moves a piece to a given row and column and changes the turn. """ piece = self.board.get_piece(row, col) + current_row = self.selected.row+1 + current_column = self.selected.col+1 + current_red_king= self.board.red_kings + current_white_king= self.board.white_kings if self.selected and piece == 0 and (row, col) in self.valid_moves: self.board.move(self.selected, row, col) + if(self.turn == RED): + move = f"Red[{current_row}:{current_column}] to [{row + 1}:{col + 1}]" + if self.board.red_kings>current_red_king: + self.history_moves.insert(0, move) + move = "Red King" + else: + move = f"White[{current_row}:{current_column}] to [{row + 1}:{col + 1}]" + if self.board.white_kings>current_white_king: + self.history_moves.insert(0, move) + move = "White King" + skipped = self.valid_moves.get((row, col)) if skipped: self.board.remove(skipped) + if(self.turn == RED): + self.history_moves.insert(0, move) + move = "Red jump White" + else: + self.history_moves.insert(0, move) + move = "White jump Red" + self.history_moves.insert(0, move) self.change_turn() self.turn_start_time = pygame.time.get_ticks() # Reset the turn timer return True From 91e453e1d1d434cd1a06ccf7d5553f63eda7bc1a Mon Sep 17 00:00:00 2001 From: Justin Date: Thu, 14 Mar 2024 00:10:44 -0400 Subject: [PATCH 2/6] Add double jump move to history --- game.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/game.py b/game.py index e4bf202..a019050 100644 --- a/game.py +++ b/game.py @@ -89,12 +89,12 @@ def display_history_moves(self): """ text = "Last 10 Players Moves: " text_surface = self.font.render(text, True, self.text_color) - self.screen.blit(text_surface, (715, 450)) + self.screen.blit(text_surface, (695, 450)) move_location_starter = 470 for i in range(min(10, len(self.history_moves))): # Ensure you don't go out of bounds moves = str(i+1) + ". " + self.history_moves[i] # Add a space after the dot for better formatting moves_surface = self.font.render(moves, True, self.text_color) - self.screen.blit(moves_surface, (715, move_location_starter + i * 20)) # Adjust y-coordinate + self.screen.blit(moves_surface, (695, move_location_starter + i * 20)) # Adjust y-coordinate def update(self): """ @@ -163,10 +163,17 @@ def move(self, row, col): self.board.remove(skipped) if(self.turn == RED): self.history_moves.insert(0, move) - move = "Red jump White" + if(len(skipped)>1): + move = "Red DoubleJump White" + else: + move = "Red jump White" else: self.history_moves.insert(0, move) - move = "White jump Red" + if(len(skipped)>1): + move = "White DoubleJump Red" + else: + move = "White jump Red" + self.history_moves.insert(0, move) self.change_turn() self.turn_start_time = pygame.time.get_ticks() # Reset the turn timer From 807f46518f0eb68a39bf99cedf18f00395cf1aec Mon Sep 17 00:00:00 2001 From: Justin Date: Thu, 14 Mar 2024 12:12:26 -0400 Subject: [PATCH 3/6] change it to x and y coordinate --- game.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/game.py b/game.py index a019050..a4c2a04 100644 --- a/game.py +++ b/game.py @@ -148,12 +148,12 @@ def move(self, row, col): if self.selected and piece == 0 and (row, col) in self.valid_moves: self.board.move(self.selected, row, col) if(self.turn == RED): - move = f"Red[{current_row}:{current_column}] to [{row + 1}:{col + 1}]" + move = f"Red[{current_column},{9-current_row}] to [{col + 1},{9-(row + 1)}]" if self.board.red_kings>current_red_king: self.history_moves.insert(0, move) move = "Red King" else: - move = f"White[{current_row}:{current_column}] to [{row + 1}:{col + 1}]" + move = f"White[{current_column},{9-current_row}] to [{col + 1},{9-(row + 1)}]" if self.board.white_kings>current_white_king: self.history_moves.insert(0, move) move = "White King" From 2b2a60bda1f4d2eba9df30ad066f31982ef59523 Mon Sep 17 00:00:00 2001 From: tul24693 Date: Thu, 14 Mar 2024 15:14:25 -0400 Subject: [PATCH 4/6] Adjust and Create Buttons Adjust height of Buttons Create News Button --- __pycache__/Main_Board.cpython-311.pyc | Bin 9227 -> 12006 bytes __pycache__/MusicClass.cpython-311.pyc | Bin 0 -> 2999 bytes __pycache__/Player.cpython-311.pyc | Bin 5305 -> 5318 bytes __pycache__/ScoreManager.cpython-311.pyc | Bin 0 -> 3839 bytes __pycache__/SecondMenu.cpython-311.pyc | Bin 11601 -> 16967 bytes __pycache__/SharedObjects.cpython-311.pyc | Bin 0 -> 868 bytes __pycache__/computer.cpython-311.pyc | Bin 3256 -> 4037 bytes __pycache__/constants.cpython-311.pyc | Bin 788 -> 862 bytes __pycache__/game.cpython-311.pyc | Bin 4107 -> 12806 bytes __pycache__/pieces.cpython-311.pyc | Bin 2561 -> 3465 bytes main.py | 64 ++++++++++++++++------ pics/twitter_icon.png | Bin 0 -> 2302 bytes 12 files changed, 48 insertions(+), 16 deletions(-) create mode 100644 __pycache__/MusicClass.cpython-311.pyc create mode 100644 __pycache__/ScoreManager.cpython-311.pyc create mode 100644 __pycache__/SharedObjects.cpython-311.pyc create mode 100644 pics/twitter_icon.png diff --git a/__pycache__/Main_Board.cpython-311.pyc b/__pycache__/Main_Board.cpython-311.pyc index a4f5bc8df557344a8f41a3ad5083ced19622cf2a..865fbb6952fc7ada553e7f99e8e7736dea49a38f 100644 GIT binary patch delta 4093 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 literal 0 HcmV?d00001 diff --git a/__pycache__/Player.cpython-311.pyc b/__pycache__/Player.cpython-311.pyc index 07376768fade9eb89afbcf7fd311a8ab57c4bad9..556a00820d302dee891ca7e8f31c6d4980cf0408 100644 GIT binary patch delta 2319 zcmb7FUx*t;7@yhQ{M#hg^LjaY?OEsQ6^Xq&j>Gdov?A1=MUBN?t%T69*_kBUCc9yF z(`!Q^_fVt{qLdZ-AVLMHl!`C+B)$lO@4krS$@(I}mq-<)FZKIoFS%T81t;V;yWjWC z%7iH#kKq5`y1KW=YN5hn}m}h;go9)TBKYrX@nHDqAutK1C4Rq ziiPv$G~>o?O2}RKN23@Aqr~v-RuYZoL|kY>uWGkppS$oMGfjmL^}}6M*R)4=N;{;O z(a1XCv1^3KA6cB`+8L5hbUrpuH>@i{F1N0j8+E~=H+Ir#2v+wR+-JeA)NWY5&o=9h zU1yHZr0`pw>pO2%z_{v3*0fx!=D0Prrlt1vm)S-gY^%E)TCCRaDprHFeIc1|d$13y zTYkN1wU*5=Nnbp?3NGFxg23&;&2d`Pxps{d4W8o0H5#6$GhJYB_TmxU&KD+wF~&b) zI>zz8C@wO~<;?cnz;axm+IH>00moS2F~@ZR$7(no!7LWJw8+{mzGekNxw+}MYI(!+ z{b-|_2*xgexmHswD}J^f&QDF#mGCoqq)V@o@+g)n7<#9q%!aPu(IYZrM52&HT$oq6 zAnbr`Izb%>;*H{Yijlh6=w#ed;%SAv-bj#5!NiN zuB^ULisA%G)=QSl=vY|P_8;1hr#ua?MFvSSJAd8yF#B_E1|~D?LQX>kg}-U1*7P6) zMmvKW9q@$5I#77Q#83*7NFGNyPw-?Y^keDNRoVd)Zt`^aslIkd+5CG|Rr@Lv{;qGr ziP=yX$8?iVgrTuE{{(x!4|i3o`o?;fo`GtIgq-ZWwR77DM z(^kC8%yU)h__h?n-HlzL&)~eg-rs^rP7a}uA?@D_&&8JKawtT|(_Y+$pa|JNfUmmD zg`dZ&G!-V}bM#<%G+v-)7{nJR=RoZ*LGRfjeT#Y3e@xw@ z$#C1e(M@&SJ)U8X?_{9Lw_(jNQ0&RiNGrXj@=H}b7Mm17TVjPla~a!b*W-;I=}!Z{ zlby4t+)Lp``rVmA{~?ULrV?2}J|}0xZ__n?7%b(p0KLhIWnZjGukG@()3jcjJ$Sh7`WAZ;yR|Xk- zU~c=n%tvr#;oQ`67aOYHxwz+^pi^L@z$P)eqDU6`t`yKYhrNYWt}tH&!LW&{?h*vj zskE`*c#t4F%>+sH@w-vDLuC@?eK4a#J_?cVuTLF0_&z+}-v^*7Y&r*}mAno=IZkI(oCkqiN5Gmdd=1xOi^BO delta 2241 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 literal 0 HcmV?d00001 diff --git a/__pycache__/SecondMenu.cpython-311.pyc b/__pycache__/SecondMenu.cpython-311.pyc index e45cdb072880b719242fd7a4e24aa903bd57dfbb..009ca305641a653fad4637e8225a54987d9240a3 100644 GIT binary patch literal 16967 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 QEDpbv;(xtPswBhz1!R7R4*&oF delta 4524 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 diff --git a/__pycache__/SharedObjects.cpython-311.pyc b/__pycache__/SharedObjects.cpython-311.pyc new file mode 100644 index 0000000000000000000000000000000000000000..811e08b619eebcf9d329f713979ba543b00a2cc6 GIT binary patch literal 868 zcmZXS&u`N(6vv;F{vxbfNBILhRRUF_Wn>#5goXr@-~vNzT&hS>>UeF|{HW{%v7L(4 zJKVTd9EK2A{*ZR6v?*6k+$#096Lv?&+BlB=z90KJe(&Xbv8aJ)_qL|gQviNTku>$6 zG5sZsuV6z1Y-B4g@|1>xq^-JYLsfvPhnd9bL>NC40Z6W86FIorl@K{EdbGgKd_#?# zI9H*$6C}h)b)As6kFYcYWBFJ?X@jN?cL@fB_XeOkF@3tC|+4u ze^V_Smpr-i{yr0~59(fbV~*%4vXLU2DYBI!4^!k(iaeI2dLz!8rX3K|jI~)1FJuf% zmORdNk6M;Tmmzq~eFlVvFC6Oc+UJBC2x!%vA*qc3*9H6CMu7C4W zu`hs>`To)wte(Q^2+Ct951}mREv8K1|JYj=>~`hLv%&VLtdGn35K8AzI)k-SSQ|lQ M43%NhSy9~SFQI$yt^fc4 literal 0 HcmV?d00001 diff --git a/__pycache__/computer.cpython-311.pyc b/__pycache__/computer.cpython-311.pyc index 063504548907ac3716ffdc328155ef5fb704e6eb..4cd23cf8a953beee78b8d1416c0152af472ae742 100644 GIT binary patch delta 1305 zcmah|J#W)M81^}FVq6jeW#GFf1|(2EN>vylmeTUkp->4BQWPm%?5l0Ceb(KjC6Q1W z5CalOl?TLxV1R**GBB_*@CO(e_zjU*Sde%xiLJIm;v~Pmd++^t?s@J$AN@L0eqSnC z8jR|NU-bCYR{6;0Ram{$9Id4}$k787>Mb3qc`nGca`4Xw`Os(?VWCw3zwtzC6`cZD z(|6&%&CZ3B>XOfuQ8585)s#r+)jQi3HM>z}2Sh7(J zwmoV;pj_1PUD%g2!reahq>M$g(Xd@e>2>Q+wjrtQZNO6cAsoVi=A4CqW{q+h*%W3m zYi61MPHe39rN^S$;-qP9VcFV>7}B?XUYX9l1AachHy)4jj-FgZi^co^L~)GdF{0Cj zJuxQ4{LW&E5Hphyy}4-)zFQcEVmO>ou-1!g>9a_Ys2EQD|D~piN#tOU2pkhmLJFe5 zlnGx|t73=7(yM|F4?APltN5Nua3OR@Mm+b=qEHb}yun6zyxiyx!}!S2?>+ZCRV0 ztEGC^=4R*S+i4HDjl2YfM`k}v#2FCcu{N|cvy}YEoi~OB%{;VS&Obq9(8-P>{IC}g z31p6trwpfVfywSOjW3=$&4|-o1Tey#@fnlEXjjfD6boPgg{c|V_8;R7atAc)?NSNX zIv6z&I3pF@&=&ll(D;=oY!Co%giGbQbtw5xm2u5)e1h0$VD)S1##}q;7!1lU% zQoo&tw`>enG8hgg8+$P*-+w{GKD8&JCa1> z!|YBc`98IJ>N0GrcOssF8Rif|L)}36p{7hZY3{$Ud;*;wYMHrYqJu*%Gl$D+nHg-N M6KZ#_;m4r-U&_0T-~a#s delta 505 zcmX>qzeAF5IWI340}%YZoRRvOVufa(O9Vd~g`>LS_M{fd}?#!Q~f zvL_-r*(xTqIJKxaCOtJjFC)f3FV&?evn(~nCAB!aB)=fWEios@$iT=r#@RDi!Pv;s zOhH#6I6tkVJh3QM0jMZ5JufDpC_gJTxkT5%NH;knH8~q-+~kR@VtkxHTZ)x{j&5MM z!Ok;zJF6k{19rj9Z&_Oy8T}?-Vvpfd0;#YE5C z%X7;zu`vJxg~f031YYUMYk1rE%s@(dAWDS9Cp+==GICA6$rm8v2owVaRdEB5_`uA_ t$oPS4vOB-2r#Pe12L?D{#L6i6fdNkNaf7&ULW-491|*A46iERM1pt^@cc=gW diff --git a/__pycache__/constants.cpython-311.pyc b/__pycache__/constants.cpython-311.pyc index ffc1ec22d90ccd6abcf86138375259a1157077a5..b79f0a8c1de31f004e7e084968e67c93ab452c46 100644 GIT binary patch delta 432 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 oF}9kItMRYMydrgTbwPd#c3r`6zegFUf literal 4107 zcmb7HO>7&-6`tkpQp+ESZ1iJ^`Xlw@n09TrlpIuU5+spiN3Jcmq3pmc3xeUUB}x>j z%u+vQsnmxYSVKUBAb`|DEqDlA8Eyd|ddQ`R7U+G+ZXjX-6$XkPd}HCB0u<pZ{EE3&6~&HwzfJ6lz;zqLHV15kiTQ2UW8iZTNNXt=^ZzVq$})3NYOWID(h&Rg+hI`&>BPUS>R4Eu1k#>*+F z>=1=SIGIFjGWRKo@Uji4AoD;)R3u`TMW8LR9jGL?0CmU`P^atw>XMzHmdg;X$Cs4^ z->?kU@qJlftK_*niCM#W8?@?rfB~RoZ8h6su|fZ$#q}6!PpuZrsGFH&nJdg$&~LBL zPoi8)noPpv2{#**41PVCHpE0Gm7#{DDk&wARb+~chWHVhi=yI&kX@x|!?hMqCFR(1 zW=&CpydePped>mB+6qKPPQTy(O)POWdPh~L8l6`%>4oU+v@%7LYf5xVQJ1ormFTs2 zDiyjM8jDWOg#BZoi8uTg{o&00?0TFkeqc(@r=vfjnMF|M;^olA#DbDoV&cHCmsTDa zQY@BCC$q6wt`%*4souoBt8W2$NGk1J1z}67bo$`qtaSImr}eONuqb@#EOlPcJ1=1W zVaFNxI4ZsU1wog(HTJv&0VH8r7aErT{s4^~^aQf7Qf%a_cOr-7!)9M`Fjho)Cko85 zym)+0qgNL#pB62DHVS(Tji*)z9;q;)F6anK)B_(wkZF9Kxy|TM7c%Ry_*y)fihq<+ zOwZEqAeVjR!93X3XpxiZN-F-qu&=Jj@vQQMqp!iZiu?A{cA&HuNY2GPVe&AB8R!K+ zNbW7?XP!r%U13iuNda97Xi@-r52Qd@3KU25p-@R0)1@&@8atHQw%QJ){<73xk_L5Y zP^&+*6Qniy1nrAItFlU@NVyc$1T-qsxSHu*fS_Os{!0?h)m zEtJ*!@C)(f*la}IqNP>Q!r8aa+7$AF%q_8b^!s^XQLOWWGz*1GOb2={FF=H;Gc>RF zN}T3}W|YHhsXkq{h2bKAXe!K76hC(@=%8&-F$4@ghTV)*rtci{N;bBVR1yjcL)43W z9_(xgR}9oakzv>1X=dHvA?O))s;H}}tRb@bDsB)Wn7;<>05ogfHy89lhx$t(;C+{8 z>#Zsg9A_(?Jv;Y4zqhLvCrh2@^v-jIYnAq%DzUYmt@uZ_g)dqw-i{sD=dRt!VtdIu zs(VK@@91-H#~026??~A@QVj18m%NvB@1=rRae24jeRQ>Ob$4{{!hXl^ddj|#<_lH& z0)?rqTb04#z1+dzM0s%HtI^WnJNn=|g(=CAG8a;J^1c6C?O>0=t zw3wiB9AYf^TEK1OYz___N!yM?@Y-Ckh2f13!9)f|hAHZYCgO+z)0J3=r{|RzUY9kr z(GlbyMe;hbwx~l&%Bl^`F+IR7(xV>99KD+(s_U_c)t^KiQe91koyT>*6c%{pycb(nm_rt}U-W4ib zuXwtugloM}TP#ra28yqjyytcAdChws1Rc2h%I?0Bdq8&&XzY33-o1V0xu?C5HBrY9 z0UBe0JkUhlpP>R_kDDSt{mG^+Z;JxgCci0Uk*ijY5}Q*3S_8VWR**pdHeQT5z(8YL z=5nxB4%W!?js2(d-3PBf766CvnuQ}-N z#f{S44efgmw4ZI3+@I*~Pc-&a#UuIOa_cUDK0AbEl~6Ma97yXn%UUKRq!udLvJFQM zqP@k725#g(K4xYwf_dC9y0e^=;tD4&?DNo>^D!>HD7l1 zYOdbH?tTcbGX?nlqr10WJ-K~UnZ;7nqWLnfCls6+B#tE#2D_wKLY-@4+Ts1g+V7!m zn7M*(m{Dj_&&lJ2*kcR7X)fIS58{+8;&@Oy$^^}73}*}^%BzrQ#te5X z_VH>wWscAekjU~#iWwKh1auo4F^(8Hxm7^*2BsTED8zE)GwDWJIH%(iLgs-!&dxN$QA9sJrxqrnxCrhHV68jB>%*|f4yRWY4#s|>>l(0 diff --git a/__pycache__/pieces.cpython-311.pyc b/__pycache__/pieces.cpython-311.pyc index 174e8c4ffec3c162cae5dcb051011e666cdcfe01..83c758d298074874b44e5846411f0de3c0251a13 100644 GIT binary patch delta 1587 zcma)5O>Y}T7@pY=e{89fwuzE{1dY@n`V*#%d>hpL7CN7jb#IbOW7|B1EP@ras{TYlh?4h!6vB;!>lpm9uk9pC9x zi60a0#rrIZ{cSkB!#D|PM0fpYSH|qCd#z#T4SaR@&D`+EbAw07w%jrhTTe~NL`xVU zi@=wY6UFlXuCEaqxx`^nLj5QvJKe}he2_#EM*PT6d>Z(Dk5D4j3~I!ofzu6W;wg-SRe|JDA7l3v%>rWXX~Rmu5J37uR>ztZW4inBh! zDN8R4KI$gu>pd?X)qJ8I#%bDYRxz)@{d_((jSJI@f^SOlfydd?Pu?~3>ZzTFjy)+sGN?BeAk~dI(4Frz2g>rf1%;7_m3&Pjf zO8UIGHho!$J}*V9u2?Uf$H&sRv^aQLY`0zJwA=g~>~kVuMu6xfenx;u0e>Cfd&FnO z_>_R+2+A;sKL$9+|1wQCOBoVSLQ^LW8oyPh4jP$Zne!RSVcs;~+{zH3f{J0D&QK1o zluR3E=m^dfMEr}OR0%=VB42`^^n>zQypV?FrP=#1&2)@0Xu<|)0 delta 707 zcmZvX&ubGw6vt;~chWSQ9a|eUHEB$>f>BaxsuitXVo9)v7)V7~_TZ8ko7nu2NwDC> z6}%KYSmxj#P*94;{0VwisGvdc;!V7)Ab1j-x5XgTS?0sr?|bk2-fX3wB-kt4jv;-1 ze`tt3bDJfLSM}cu#1Y3W)W!~O6Nj`7$H1VGmg$%Tl@T|dB5uAU2))*K|2UMB8p_e_ zcbAS|2wennFh>sI*fBV9Oz2WGIBn^&@z1o{6m_9)lbtxyf>9|+@KVo>)jMAOihHXk zWY1j}-A=>3*%2$U`B1nkqPNlSK5$E3t5sMiEV|ck)Uu0(%S+jOw${DZ-}I!&>Z0a) z$F0ileNpe{7Yg}$L)164ol2W?%+gbO*ED=IoI0wi=0{5}uuCf6!udWevILYYg(Y7m z(`t`;6R;zxtmUv|T9?ymD{_`4q0SELhKc0hP2?+v$8de+F)gcK(PxB>Q#htRS#yu&j20ziB&;VV0pKNJfIOqI zi{ufArvPJr0YR^&;g7x{oAAp+cE~RW<`_)|XoSOrE(d6YD5lc^0xXA&Q0m|S{X=Fz z|3U0;0<&`w^*)}$8TCDWj@{KlU|@`cD8lpVyq#1fn_bLcZE_GlK>PWhMCkqpheDln diff --git a/main.py b/main.py index d7bbf32..09a72b6 100644 --- a/main.py +++ b/main.py @@ -116,16 +116,16 @@ def menu_buttons(): startgame_icon = pygame.image.load('pics/start_icon.png') # Draw the icon next to the text with the specified size startgame_icon_resized = pygame.transform.scale(startgame_icon, icon_size) - startgame_icon_rect = startgame_icon_resized.get_rect(topleft=(Width // 2 - 150 + 10, Height // 3 + (button_height - icon_size[1] - 50) // 2)) + startgame_icon_rect = startgame_icon_resized.get_rect(topleft=(Width // 2 - 150 + 10, Height // 3 + (button_height - icon_size[1] - 50) // 2 - 75)) color = (128, 128, 128) # grey cursor_color = (100, 100, 100) # darker grey - position = (Width // 2-150, Height // 3-25) + position = (Width // 2-150, Height // 3-25-75) size = (300, 50) # width, height button_font = pygame.font.Font(None, 32) button_text = button_font.render("Start Game", True, (255, 255, 255)) # Button text and color - button_text_rect = button_text.get_rect(center=(Width // 2, Height // 3)) + button_text_rect = button_text.get_rect(center=(Width // 2, Height // 3-75)) # Create button on screen using position and size parameters pygame.draw.rect(screen, color, pygame.Rect(position, size)) @@ -146,15 +146,15 @@ def menu_buttons(): # Settings Button settings_icon = pygame.image.load('pics/settings_icon.png') - position = (Width // 2 - 150, Height // 3 + button_height + spacing) + position = (Width // 2 - 150, Height // 3 + button_height + spacing - 75) size = (300, button_height) # width, height button_text = button_font.render("Settings", True, (255, 255, 255)) # Button text and color - button_text_rect = button_text.get_rect(center=(Width // 2, Height // 3 + button_height + spacing + button_height // 2)) + button_text_rect = button_text.get_rect(center=(Width // 2, Height // 3 + button_height + spacing + button_height // 2 - 75)) # Draw the icon next to the text with the specified size settings_icon_resized = pygame.transform.scale(settings_icon, icon_size) - settings_icon_rect = settings_icon_resized.get_rect(topleft=(Width // 2 - 150 + 10, Height // 3 + button_height + spacing + (button_height - icon_size[1]) // 2)) + settings_icon_rect = settings_icon_resized.get_rect(topleft=(Width // 2 - 150 + 10, Height // 3 + button_height + spacing + (button_height - icon_size[1]) // 2 - 75)) # Create button on screen using position and size parameters pygame.draw.rect(screen, color, pygame.Rect(position, size)) @@ -177,18 +177,18 @@ def menu_buttons(): color = (128, 128, 128) # grey cursor_color = (100, 100, 100) # darker grey - position = (Width // 2-150, Height // 3 + 135) + position = (Width // 2-150, Height // 3 + 135 - 75) size = (300, 50) # width, height button_font = pygame.font.Font(None, 32) button_text = button_font.render("Tutorial", True, (255, 255, 255)) # Button text and color - button_text_rect = button_text.get_rect(center=(Width // 2, Height // 3+160)) + button_text_rect = button_text.get_rect(center=(Width // 2, Height // 3+160-75)) pygame.draw.rect(screen, color, pygame.Rect(position, size)) screen.blit(button_text, button_text_rect) # Draw the icon next to the text with the specified size tutorial_icon_resized = pygame.transform.scale(tutorial_icon, icon_size) - tutorial_icon_rect = tutorial_icon_resized.get_rect(topleft=(Width // 2 - 150 + 10, Height // 3 + 135 + (button_height - icon_size[1]) // 2)) + tutorial_icon_rect = tutorial_icon_resized.get_rect(topleft=(Width // 2 - 150 + 10, Height // 3 + 135 + (button_height - icon_size[1]) // 2-75)) pygame.draw.rect(screen, color, pygame.Rect(position, size)) screen.blit(button_text, button_text_rect) @@ -209,19 +209,19 @@ def menu_buttons(): color = (128, 128, 128) # grey cursor_color = (100, 100, 100) # darker grey - position = (Width // 2 - 150, Height // 3 + 210) # Adjust the vertical position as needed + position = (Width // 2 - 150, Height // 3 + 210-75) # Adjust the vertical position as needed size = (300, 50) # width, height button_font = pygame.font.Font(None, 32) button_text = button_font.render("View Rankings", True, (255, 255, 255)) # Button text and color - button_text_rect = button_text.get_rect(center=(Width // 2, Height // 3 + 235)) # Adjust the vertical position as needed + button_text_rect = button_text.get_rect(center=(Width // 2, Height // 3 + 235-75)) # Adjust the vertical position as needed pygame.draw.rect(screen, color, pygame.Rect(position, size)) screen.blit(button_text, button_text_rect) # Draw the icon next to the text with the specified size leaderboard_icon_resized = pygame.transform.scale(leaderboard_icon, icon_size) leaderboard_icon_rect = leaderboard_icon_resized.get_rect( - topleft=(Width // 2 - 150 + 10, Height // 3 + 210 + (button_height - icon_size[1]) // 2)) + topleft=(Width // 2 - 150 + 10, Height // 3 + 210 + (button_height - icon_size[1]) // 2-75)) pygame.draw.rect(screen, color, pygame.Rect(position, size)) screen.blit(button_text, button_text_rect) @@ -244,18 +244,18 @@ def menu_buttons(): color = (128, 128, 128) # grey cursor_color = (100, 100, 100) # darker grey - position = (Width // 2 - 150, Height // 3 + 285) # Adjust the vertical position as needed + position = (Width // 2 - 150, Height // 3 + 285-75) # Adjust the vertical position as needed size = (300, 50) # width, height button_font = pygame.font.Font(None, 32) button_text = button_font.render("Customize Board", True, (255, 255, 255)) # Button text and color - button_text_rect = button_text.get_rect(center=(Width // 2, Height // 3 + 310)) # Adjust the vertical position as needed + button_text_rect = button_text.get_rect(center=(Width // 2, Height // 3 + 310-75)) # Adjust the vertical position as needed pygame.draw.rect(screen, color, pygame.Rect(position, size)) screen.blit(button_text, button_text_rect) # Draw the icon next to the text with the specified size board_icon_resized = pygame.transform.scale(board_icon, icon_size) - board_icon_rect = board_icon_resized.get_rect(topleft=(Width // 2 - 150 + 10, Height // 3 + 285 + (button_height - icon_size[1]) // 2)) + board_icon_rect = board_icon_resized.get_rect(topleft=(Width // 2 - 150 + 10, Height // 3 + 285 + (button_height - icon_size[1]) // 2-75)) pygame.draw.rect(screen, color, pygame.Rect(position, size)) screen.blit(button_text, button_text_rect) @@ -270,8 +270,40 @@ def menu_buttons(): screen.blit(board_icon_resized, board_icon_rect.topleft) # Draw the icon after drawing the button screen.blit(button_text, button_text_rect) + + # Temple Twitter News Button + twitter_icon = pygame.image.load('pics/twitter_icon.png') + + color = (128, 128, 128) # grey + cursor_color = (100, 100, 100) # darker grey + position = (Width // 2 - 150, Height // 3 + 285) # Adjust the vertical position as needed + size = (300, 50) # width, height + + button_font = pygame.font.Font(None, 32) + button_text = button_font.render("Temple News", True, (255, 255, 255)) # Button text and color + button_text_rect = button_text.get_rect(center=(Width // 2, Height // 3 + 310)) # Adjust the vertical position as needed + pygame.draw.rect(screen, color, pygame.Rect(position, size)) + screen.blit(button_text, button_text_rect) + + # Draw the icon next to the text with the specified size + twitter_icon_resized = pygame.transform.scale(twitter_icon, icon_size) + twitter_icon_rect = twitter_icon_resized.get_rect(topleft=(Width // 2 - 150 + 10, Height // 3 + 285 + (button_height - icon_size[1]) // 2)) - return button_rect, button_rect_2, button_rect_3, button_rect_4, button_rect_5 + pygame.draw.rect(screen, color, pygame.Rect(position, size)) + screen.blit(button_text, button_text_rect) + + # Used to indicate if cursor is hovering over button. If so, button will be darker + mouse = pygame.mouse.get_pos() + button_rect_6 = pygame.Rect(position, size) + if button_rect_6.collidepoint(mouse): + pygame.draw.rect(screen, cursor_color, button_rect_6) # Change color when cursor hovered over + else: + pygame.draw.rect(screen, color, button_rect_6) # stay original color if cursor not hovering over + + screen.blit(twitter_icon_resized, twitter_icon_rect.topleft) # Draw the icon after drawing the button + screen.blit(button_text, button_text_rect) + + return button_rect, button_rect_2, button_rect_3, button_rect_4, button_rect_5, button_rect_6 def tutorial(): """ diff --git a/pics/twitter_icon.png b/pics/twitter_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..887e57527d37a40b51fc51c8ffbcdfe7a0cdf851 GIT binary patch literal 2302 zcmV(DfFuz! zTaO=<8dqL?`5VjUK`{%0uX9$%Y>pTu?ty1?z>Q)hH!A{OhB|N0^sy-4A^|5DPtW{9 z8HardZoldYtopUYxR5~XiHvWAra`*F$&)#KJv1r1~q(YAFX=f^v&h z`GP05kTD8vHn;--9)R!!g#`i@aNKMH+KE3{^C7kXRtSWUv!;@p zd!}Q`bSvD)f8G475Hc=;ZBW2&VEF@Hu&64bE?JYh+We<4{`r#s7m=5zq^!1c=2R8; z=_n2T%CRVrfJCr>!UG6ea6~YxYwqS;R%|W#`*~e*_F~6|04o$KaH>P%^ljdCuv`2= zi4_u!EK`wBP}i@HmQ$9`kTM#{ORb~net-oGf%vSY;;#9ddD!CbZxc42AYcmM;`E)y z4PO`?p~?z@M%Kwbuh=pBtWE4wo?Z3y-6?evr*Dc#()@)|3nVa`d*o#!vUOjA8c$%< zH}pKQ>y&E?-`)_Byt~#nvdJXyLF6eS#lPRDaYHBw6{y6o^sS1@!uM|*F7c1^2Y1{T!H}46@L6iNzPSUhfDxAVHZ>u(sUI@(f1o7@_IPEzyzqHZD%Pm zC$e=b3+q(a!QA|16&sm2eHFL`ra(1G=iPs4BHy$QN-!}^l*tN(9wjTPKNP_%e{8<(2?}_@<0duR zhEj&~OIPVg9wE>kooSNQd)Y*Vhkz=p+M= zZyP>_uKF~r7YvvTSeAKQU3E;FRdnEqozlk8(a6TO0U;2>))J$IZbcq}Ny4k@X!|*B6+C|v`;2Fz@TzK3jvu{&8Y=$%uDLr7WMK{=W4q`% z+@+bA-dhJI4EpWVCTxDlx$bQ)Lj&i}2UCU_s{*jORej^EN!_Tr)b&=Cu*t+>#?t|K zoS1W6W#?3vvxCV4Z&(bD>ATxRb<%t{cQA2)w<`;)Tj4Gh)h}-~-(=DNK&@($M; zqWbD?1^W`1A}G}{B8Z5i+Jw%@c@Hn@4{zq0p7J?kVkKr>3+8MRd1$R;iQr+xf%$=Ys(yF<5v z?VPpkE&SRv5w)Kw+`u-*@CwdM?~Wo6@+1tx1I zn5kll-WoLRs_3J(202|-bdXtth^nfkb=JTouZrBDH88%Z0xwwuWlD!qd^Pa_ za^@1{rRf0?djPp=`i0A$PHLL6NbG@pu}@JSNMet}&s`C>gU;Z3N{T3UTI4Fc^^8@V z$!H@z(SDm;hNqfB-Wd%KEYK2^TdZ<8eJ%cgvl~yWB*yIwhjfFJ4vsgDSmweTv5NRc z=xk4FepNx$uO-g>fpWpV0-2RgVM{(5vu!NOv^b5kxysp-fmK1>w#xolCv&#*;PY(p zLDibzL2(u6|N2>{HMtFtzi@hJX2~CU*K{aO?Q8eiJF*nMEq=-D>P(#E*|0RYuKvZN Y?^{2l_VH(4@WGHlnBlBT`#(Kv0POyNn*aa+ literal 0 HcmV?d00001 From 77e90e3f3d9c7bb206234b8aa77d77bb0acc9179 Mon Sep 17 00:00:00 2001 From: tul24693 Date: Mon, 18 Mar 2024 16:18:31 -0400 Subject: [PATCH 5/6] NewsButton function The "Temple News" Button now invokes the TempleNews() Function which takes you to a page which simply says Temple News at the top --- __pycache__/Main_Board.cpython-312.pyc | Bin 0 -> 11307 bytes __pycache__/MusicClass.cpython-312.pyc | Bin 0 -> 2908 bytes __pycache__/Player.cpython-312.pyc | Bin 0 -> 5007 bytes __pycache__/ScoreManager.cpython-312.pyc | Bin 0 -> 3514 bytes __pycache__/SecondMenu.cpython-312.pyc | Bin 0 -> 15549 bytes __pycache__/SharedObjects.cpython-312.pyc | Bin 0 -> 797 bytes __pycache__/computer.cpython-312.pyc | Bin 0 -> 3686 bytes __pycache__/constants.cpython-312.pyc | Bin 0 -> 848 bytes __pycache__/game.cpython-312.pyc | Bin 0 -> 12586 bytes __pycache__/pieces.cpython-312.pyc | Bin 0 -> 3344 bytes main.py | 33 ++++++++++++++++++++++ 11 files changed, 33 insertions(+) create mode 100644 __pycache__/Main_Board.cpython-312.pyc create mode 100644 __pycache__/MusicClass.cpython-312.pyc create mode 100644 __pycache__/Player.cpython-312.pyc create mode 100644 __pycache__/ScoreManager.cpython-312.pyc create mode 100644 __pycache__/SecondMenu.cpython-312.pyc create mode 100644 __pycache__/SharedObjects.cpython-312.pyc create mode 100644 __pycache__/computer.cpython-312.pyc create mode 100644 __pycache__/constants.cpython-312.pyc create mode 100644 __pycache__/game.cpython-312.pyc create mode 100644 __pycache__/pieces.cpython-312.pyc diff --git a/__pycache__/Main_Board.cpython-312.pyc b/__pycache__/Main_Board.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..59c3a9222b9f6662fc2d921501dac07c25739fdc GIT binary patch literal 11307 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 literal 0 HcmV?d00001 diff --git a/__pycache__/MusicClass.cpython-312.pyc b/__pycache__/MusicClass.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..bb9ffbbb9911c82db363c32ce437d036d7c68422 GIT binary patch literal 2908 zcmbtW&2QX96d!x-jkEDKOHvuT2+85)bf$2MHL%FTZC3C8ONS9-a5Ns z?2Wps9*R_nMncMgLns&EM5`X)gs6nXAHZoLQ7Y2|5?p#~6C_Yiyf@wtuj_JvQ8J!+ z^WMyx-~8Tt`%^ZXA_;?7O=B%*1>}K9Y&C(SGVORSb%<4E21x0*4ds2F*?Uh6tsl3u$7Z>Y5?NlAVi&2y_xZs$s(_{k1#3xBce8uFB zIqxzc76$@(1!~nf2S^Pu4~@>x70(#6#hDOh^oAqU575_QUJKHpZIJD=4bsbvOXd;_ z1}~nUeRuY~+2Vyj>ueRMOU@O>;e%WabdUK4tJ>l<^Kzhg%w6CEu)l{VQTlk!I$6Hx zG47S;!Q*OquF7V(v%<>>~NUc(*N2qAxe7rHTf1{bowJ5Uy>2% zc-4fg4w0;Ov_*`q_QhB)@gzoCZ#g-hdKt{EnKtAu=F^p$3k)rYoYuAqV=RohUQ}KB z{3f=$r#V)iVt$Zg#o?GxIHDaWxTy#Wj=3YqVAzD)2MW3tq+C|LEpfqIq#NbCg(5B* zBG#H?ak}@`kP{xJyKCf6jSLP)`8?6mCcad@9{OtN*34GnR15y-=?(3*`~9>(+|mwz zX>DjP#^h+ep*?pmcW^5=-O5dWd#sf^@k8qSnIF&HJ@?BiXItZEZz!AE7~ccO_eBcE zgNT$vFj$B8t3=}nWY~HtYbRGvezxz6@tfm654~_t-@P`sI=88h zKTHvQQlO1h4hlvU%9&vV8N*nr*>xAkx?y}+H{JHifMM7*%P=@5q>u;C;%EZ8+eB<7 zoaG8ivBR5r2cWx79?7z*ZKpN$RZzG9z`A7(N#4U8lrkW&Czd>7y>;kuv4Ox ziZl@@SkuDY51}4LlQ{9Q_G;+!DLx4@B&Jt@?qN!jq(^c}Qg(DA?fRAM{f(qQ)<4p> V$ViKfY>>Tw$p@v}Hi1s;_7Ao7mx%xX literal 0 HcmV?d00001 diff --git a/__pycache__/Player.cpython-312.pyc b/__pycache__/Player.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..83eec6b0c0edafcdb797d9a0683fc318b45b60b9 GIT binary patch literal 5007 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 I5Hi002hW&!c>n+a literal 0 HcmV?d00001 diff --git a/__pycache__/ScoreManager.cpython-312.pyc b/__pycache__/ScoreManager.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..1f9e36e1ecf2a6ec7ca844a665a39a6d82875b20 GIT binary patch literal 3514 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 literal 0 HcmV?d00001 diff --git a/__pycache__/SharedObjects.cpython-312.pyc b/__pycache__/SharedObjects.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..69f89f51419931140df11102ca0268338a4eb7f7 GIT binary patch literal 797 zcmaJIoK8Ajd~V|8enj>iBAr?Z zsUssRVuSuEEL4Dsj**G2r9wiTu+x?(oP-Da`@ZMT_IuACYBdw&xbo^ZjWmGoid+o+ z9GtwD;57u`K!5@*M3LrbNMSwH9bE&e_bL~r@w$Hwk&2IQ8OIdrO;2*g#-0uYrMJj2 z=k#SU$Tj(mAg?A zWFcMUbMgxHC&Y%Fj&y|3v8JQaFB8z!Z%{ij09AL4y_wyamm^Z%tL|10p?(1M&oKYf jfJg&WRmpME{6VDvpGM0O79X$|*`~ZFV>II`-O{ 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 literal 0 HcmV?d00001 diff --git a/__pycache__/game.cpython-312.pyc b/__pycache__/game.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ed4ede60607c63d245289c5fef832f417227b133 GIT binary patch literal 12586 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 Date: Tue, 19 Mar 2024 19:06:20 -0400 Subject: [PATCH 6/6] implementing news through redditwarp --- main.py | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/main.py b/main.py index e2cdbbe..94edefc 100644 --- a/main.py +++ b/main.py @@ -4,15 +4,20 @@ """ import pygame +import redditwarp.SYNC from SecondMenu import SecondMenu from constants import BLUE, YELLOW, RED, GREEN from ScoreManager import ScoreManager from SecondMenu import SecondMenu + pygame.init() pygame.mixer.init() # initialize pygame mixer for music +#create client for redditwarp +client = redditwarp.SYNC.Client() + # set up the drawing window Width, Height = 1000, 700 # updated size screen = pygame.display.set_mode([Width, Height]) @@ -319,6 +324,24 @@ def TempleNews(): News_rect = News_text.get_rect(center=(Width // 2, 50)) News_screen.blit(News_text, News_rect) + # Display posts + posts = client.p.subreddit.pull.hot("Temple", 5) + post_list = list(posts) + Post_Starting_Y = 100 # Starting Y position for the first post, adjusted for better spacing from the title + Posts_font = pygame.font.Font(None, 24) + + # Calculate spacing based on the screen height and number of posts + # This tries to evenly distribute the posts vertically + num_posts = len(post_list) + spacing = (Height - Post_Starting_Y - 100) // num_posts # Adjust the bottom padding as needed + + for subm in post_list: + Posts_text = Posts_font.render("{0.permalink}".format(subm), True, (255, 255, 255)) + # Use Post_Starting_Y for the Y coordinate directly, without subtracting from Height + Posts_rect = Posts_text.get_rect(center=(Width // 2, Post_Starting_Y)) + News_screen.blit(Posts_text, Posts_rect) + Post_Starting_Y += spacing # Increment Y position for the next post + # Exit button to return back to menu exit_button_font = pygame.font.Font(None, 32) exit_button_text = exit_button_font.render("Exit Temple News", True, (255, 255, 255))