From 64261170d5d97cbaa4f8f8edc00312ca8ecf3317 Mon Sep 17 00:00:00 2001 From: Hannah-Dagemark Date: Thu, 23 May 2024 16:16:02 +0200 Subject: [PATCH] Commit 23/05-24 --- Main.py | 44 +++++++++++++++--- Map/Images/sampledone.png | Bin 7236 -> 6834 bytes Map/MapManager.py | 5 ++ Map/__pycache__/MapManager.cpython-312.pyc | Bin 14735 -> 14903 bytes Map/__pycache__/TileTypes.cpython-312.pyc | Bin 4628 -> 4629 bytes Realms/RealmManager.py | 36 ++++++++++++++ .../__pycache__/RealmManager.cpython-312.pyc | Bin 0 -> 2532 bytes Realms/computer_names.txt | 10 ++++ Realms/template.realm | 0 .../__pycache__/ScriptUtils.cpython-312.pyc | Bin 164 -> 165 bytes 10 files changed, 89 insertions(+), 6 deletions(-) create mode 100644 Realms/__pycache__/RealmManager.cpython-312.pyc create mode 100644 Realms/computer_names.txt delete mode 100644 Realms/template.realm diff --git a/Main.py b/Main.py index 894b353..4dddbed 100644 --- a/Main.py +++ b/Main.py @@ -4,9 +4,11 @@ from threading import Thread sys.path.append('./Map') sys.path.append('./Script') +sys.path.append('./Realms') import ScriptUtils import MapManager +import RealmManager # pygame setup pygame.init() @@ -182,7 +184,7 @@ class uButtons: "blue": (0, 0, 255,) } - def addButton(self, name, x, y, width, height, colour_standby=(255,255,255), colour_hover=(200, 200, 200), onAction=print("Button pressed")): + def addButton(self, name, x, y, width, height, colour_standby=(255,255,255), colour_hover=(200, 200, 200), onAction=print("Button pressed"), delOnAction=False): if colour_standby != (255,255,255): if self.colours[colour_standby] != None: colour_standby = self.colours[colour_standby] @@ -202,6 +204,7 @@ class uButtons: "colour_standby": colour_standby, "colour_hover": colour_hover, "button_action": onAction, + "delOnAction": delOnAction, "isHover": False } self.buttons.append(button) @@ -213,6 +216,8 @@ class uButtons: if pos[0] > button["xPos"] and pos[0] < button["xPos"] + button["width"]: if pos[1] > button["yPos"] and pos[1] < button["yPos"] + button["height"]: button["isHover"] = True + elif button["isHover"] == True: + button["isHover"] = False elif button["isHover"] == True: button["isHover"] = False @@ -223,19 +228,44 @@ class uButtons: pygame.draw.rect(screen,(button["colour_standby"]),buttonRect) else: pygame.draw.rect(screen,(button["colour_hover"]),buttonRect) + + def pressed(self, pos): + for button in self.buttons: + if button["isHover"] == True: + if button["button_action"] != None: + exec(button["button_action"]) + if button["delOnAction"] == True: + self.buttons.remove(button) + uTexter.write("",(button["xPos"],button["yPos"])) + else: + print(f"No action found for button {button["text"]}") + +class uCommunicate: + + def claimState(): + if GameMap.paintedTile: + ip = GameRealms.getPlayer("p1") + pt = GameMap.paintedTile + print(f"Claiming {pt.Id} for {ip.name}") + + uButtoner = uButtons() uTexter = uText() +uCommunicator = uCommunicate() def prerenderGraphics(): uTexter.write("State",(1000,0)) - uButtoner.addButton("Claim",850,600,110,40,"darkgray","gray") + uButtoner.addButton("Start Game", 850, 500, 200, 50, "darkgray", "gray", "GameRealms.load(map)", True) + uButtoner.addButton("Claim",850,600,110,40,"darkgray","gray","uCommunicate.claimState()") + uButtoner.addButton("ReRender", 1000, 600, 180, 50, "gray", "blue","GameMap.re_load()") prerenderGraphics() - pygame.image.save(map, "./Map/Images/blackstripes.png") +GameRealms = RealmManager.RealmManager() + GameMap = MapManager.MapManager() GameMap.load(map) @@ -265,9 +295,11 @@ while running: if pygame.mouse.get_pressed()[0] == True: print(f"MB1 is true") pos = pygame.mouse.get_pos() - tile_pressed = GameMap.findTileAt(pos) - if tile_pressed != None: - GameMap.paintTileBorder(tile_pressed, map) + uButtoner.pressed(pos) + if pos[0] < 830 and pos[1] < 580: + tile_pressed = GameMap.findTileAt(pos) + if tile_pressed != None: + GameMap.paintTileBorder(tile_pressed, map) # fill the screen with a color to wipe away anything from last frame screen.fill("black") diff --git a/Map/Images/sampledone.png b/Map/Images/sampledone.png index 37d70912a446c87689147fdaf7b69f154b9ee37f..c58c3ca71cc2b8c36bfd7f0d72977e516dba7727 100644 GIT binary patch literal 6834 zcmeAS@N?(olHy`uVBq!ia0y~yV76jlU~=GK0*aiHZTY~!AXVw<;uumf=j~m?NlOfP z90G5C-@n;BGh-F+EZ+^Hd*-kGW3yz{tEODTN882Bo!b&6fGDl~<@fZr_V0{&4jTZ` z``LBHVlU&tQf-N1v%dZO{x#>C8Vt-9LblJhkSQ`c6_=S@QR{-JxJzs5!CA+?Onp zeXj{}0T5ZA`I!7-t;Kt&n`Zmei`ajcgj$)_bFnVg`cBP!h#MpGmX+%M+jSnIRma5c ziK6GE5Uba-R6K)TuF0OH;<v?E`4XFtEW z#@7c5%zXPwbM0oohq~yr@A-G`M>;ZI8bfuM`~Kds=Ly`~$J%W$e0a?i==Doq-~Z^VprLouPcBujVzAH1<`o4=t62zRanaB|uHdFBW`*m~EH=7wk z!A%p(Yg>Qj?1LD4SjXIUx4fY8qNV4dPQGXI_VK4l>CkYj)I2Tz(R9{n_T9 zd{8Id`SPaDrKe+>T{A>S<>f8?r@iMLg!pt%X3Ys_P&!5SA|wIF{@>UCA%q(mE7M;J zuFN=I%>{KWU-2J_D(!PH$E#hIKYAV>fs&7Z)wjjv-@6BoNldHTeEqA;Fh;oo<+D$TNmp(bxYatM*n_!{c}~lfufO(M&p;Nri<+GwEne zI$D#C)}(}6yQ4KJu%R;A+y(Y#Mw`39?&{Rh=I&^pbhJ;3)?pj%lY%k@fpMeJnsl@# zg^UZ1)}*5~>FDS#aDaGpbQgW-bF?NUq9(og{wRD}VxeTR%Mtt7ZAUNMko6M=&P6eJ My85}Sb4q9e0CKTbCjbBd literal 7236 zcmeHM|5H*~6ldDDcGPmTW>dFx)?8D|LNiRUWh>HXH5=R6Ny|tx+@!R0(FhlsGR@p% z7W#tUU}_83F=0zdC6g_+MkQFkBx90HMo^-mlHY*GTjV|3-FDo+;N5w@+i~ zd5jr+=Iwn0f0LH|O8-MTm~rBJxBMjQV_9aHP5I4-z=}JP$o3)Zs-VQMeEcbWn+U9% zz0cepRH~md!D4Pnncqf(QNP$7dI{u5N-?bIjZA51mMOLo?bKp@%v#M%aEOXl02Y(R zJ`8@fSLi)3H>Pn0FFVfZp{2y&8qozN7^W&6ASPSts9=U|T8@MiiE~YA&;{A%Lt}ql zLEXvnxg`_(5?GhRb)`OpxZ&GmmJgvy*C+A<6ZgBv+g@}dHCCM?2La3B-j$o-hn z7EV5IgJI+59GDQ~MT(6waDU^IERfYhB(2JcJ;R z1aC?X=ol|wV8i89+p?0FzqF0YonzK5zdvQTW@fV-Qe78XlgJ>wnN*KOz{<)WbqTpx zyEx>a`pb_|)(Qw#_=5ck*%}vLn3U@1RR@aRRzj1atD}o_G=+@(022ha{*bUfktKlv zQIQ{?K0K0(ue%WZU@>IYaMOQ7Xhx@2M?blCefvpnDnuBj5WLvC{D)Z}yaHAi?U*y+AgTFDhbRyH>JADXR4DSE9QZp~Ap?V=~sI&J%mEV&r2N=!L ztX%i-(u-Vr zThPd*_di)NlAF$DHX}%GYOS##xhb6GBDpD2LbADnGyo|fAtfZF(rYU!Bb8pX6sh#u sO5>!DD!qNf`<(0rZO0gLptr@jRr$K{IEC14{X2*v?AVPLY&&%JFOGa@^8f$< diff --git a/Map/MapManager.py b/Map/MapManager.py index 9da9ce5..f9d9aa8 100644 --- a/Map/MapManager.py +++ b/Map/MapManager.py @@ -157,6 +157,9 @@ class MapManager: tile.paint_pixels(mapObject, int(colour1),int(colour2),int(colour3)) tile.findBorder(mapObject) + def re_load(self): + print("To Be Implomented") + def findTileAt(self, pos): for x in self.tiles.keys(): tile = self.tiles[f"{x}"] @@ -192,6 +195,8 @@ class MapManager: self.paintedTile.paint_border_pixels(mapObject) self.paintedTile = None print("Cleared previous tile") + + def claimTileFor(self, tileID): class Tile: diff --git a/Map/__pycache__/MapManager.cpython-312.pyc b/Map/__pycache__/MapManager.cpython-312.pyc index d751afa0c4c59879de4338591544b20e6ce6fe0b..47a22283a93ce741da65648ac87c7bb948a15a78 100644 GIT binary patch delta 1021 zcmZvbT}V_x6vyvzUENk!OO$l8+>hLK{a8)PkBGipQls4pjKHkr=8m$ud+%lL`n5fn zrG8y%`P1`LBjv$1cJ%Q!JLqPHHb+uL$VB~)!`5G9GI?ts`% z!XoW#@es8$A}g_QN>1)pz>U_Lj`#Sjm<2YMX=YQ76md(FY&lFUjbSAuhlvy+0T)mk zce)QWgLf)!V4-Ht*;GpWAz2JWv%I3>6(t^!y4P&C(Kn6bqVUmRdYfT=Z?MsPK93FT z@Fc-q_QEm&BI~v8hdZ%J>pK9#uGwoL$foT_;884n=NRzGcwqxPVM~SIp__emSfPuh zIxX;w6*;RQjrpCs&1d+Yv>l-$dJtU*KfCA5x48LmP)HkaU$4DLTa3SDe+aJil@AjcmKtaP?fo^ zY9f@1LFp4~E%j|*3wC8AnapNN^WZaED4nhzK!;0+%ZNdaS)(E=T_G_NlqHv*Zs0+O z*nF9No5G!=+3Vr!#V}DqVqc@wCeJgQd&Z#sLlW&^Kiqp@fw{|lS!kjo9Ihm-ig;qL zmpkAadt5#a9qep{7Zzg=Di$H6{eScRWA;y*9b0HJe>3VwE=Hn-*$pX0MpabZaZ0CB+-7dEdZAJTzy SSwOBfq|^g=AR%a-w&icA?gb_#fXOj+u*A<8F;X+Mt75cx8;gTUTtES8Iz=jT<}Mm4voRd zGn^S<3^J}Tcv8sbBYTPL4CWYaMwsDYD2xar%CIx^QM-7>SftU`gzf*gzbp3U^2uUW eYR9QtZPx8025^5XWB%+Y?*{0C?`3+>Kll$7`_&Hs diff --git a/Map/__pycache__/TileTypes.cpython-312.pyc b/Map/__pycache__/TileTypes.cpython-312.pyc index b0bab43bf18d784819f0a64853b08a87c8843806..aa1fb08f40531da3d712e1996d4aa3e6b07b444d 100644 GIT binary patch delta 59 zcmbQDGF659G%qg~0}v$X`)}m#WL30xwu%WYPAw{q@kq?eOD)z*NlZ`8O)SceaY-%C NF3B(0yoEJ^2LSvS6A}Ob delta 58 zcmbQLGDU^^G%qg~0}u$e$!_HCWL2JPcF?(%_}L6anCIA MC{5bDl{J9}0Ol+bod5s; diff --git a/Realms/RealmManager.py b/Realms/RealmManager.py index e69de29..f3900c0 100644 --- a/Realms/RealmManager.py +++ b/Realms/RealmManager.py @@ -0,0 +1,36 @@ +import random + +class RealmManager: + + def load(self, mapObject, amount=6): + print("Loading Players...") + self.players = {} + self.amount = amount + temptext = open("./Realms/computer_names.txt", "r") + self.compnames = temptext.read() + print (self.compnames) + self.compnames = self.compnames.split("\n") + temptext.close() + for x in range(self.amount): + if x == 0: + self.players[0] = Player("p1") + self.players[x] = Player("c", x, self.compnames) + for x in self.players: + p = self.players[x] + print(f"Player {p.id}/{p.name} with colour {p.borderColour}") + + def getPlayer(self, detail): + if detail == "p1": + return self.players[0] + else: + print("oopsie") + + +class Player: + + def __init__(self, controller, id=0, names=None): + self.id = id + self.controller = controller + self.borderColour = (random.randint(10,240),random.randint(10,240),random.randint(10,240)) + if controller == "c": + self.name = names[random.randint(0,len(names)-1)] \ No newline at end of file diff --git a/Realms/__pycache__/RealmManager.cpython-312.pyc b/Realms/__pycache__/RealmManager.cpython-312.pyc new file mode 100644 index 0000000000000000000000000000000000000000..d26163c19f0795ac5e5f4c5cc4cfb886e5a01acc GIT binary patch literal 2532 zcmcIlO-vg{6rSd+hvVIk$UP#`)20- z&6~I1oA+aFZ8d>$FFZK<9Z$#~xUmN8jZx}`DMutC(Ks0*HgcRuwkaZUOEyzsh#EW| zctV+Ho1_8z8Y+aNrkY7NZAfVk>~lmWLsTL|Hi?($6dmHw^AJDD1q9voo-D=_?}$lp zOlDE8!bugZabFq+Z#kk-OD55!%{3)4k|B|@Bx8e}bvDr)WeeNZJ+5&XZXA7Y8%vve z@E};Ctur%Z+{mFNG3Tu~c9xIVKCh2EiMOmOPlA~0|E+7qM2Y6Mq;Qh;&nyqPjE8@- z(>diBca&y$4_IFlwsJ2yGs1Y&R-D#qo=8<7X}0!TGf1jI(z?a5R`cXuISbT?agqdT z!s&)HiYUdBWBzyJ;-t*fU@(||A=qVrQ|*c>iPVH9vq(}*$ZAl#qUn@v&}xQR)NQGQ zI*q0srm25}cBO0mAIG#y{-_dHCYV1^s|zU>OKQ3!WxChxVnUe!2Ct;#q|P&0l=Lb* z#yCM2)KomC=|VKFsIo3FF*zpdcJlz;7L#-y^>o)og-J3SFpde>bzYU@qk2_BObuQf zm!ld({OL|jPNXy$gTA8Elxhd2-xwRm2HqHcUxoV)pAeHtxS9lIm=M|J;gGCe)|Axn z0EQWwh+aAk*%>zTVNRPh8%#~=d>pcuc2|~i5LsAA>fboqWck~! zVzU>fn$^aZLhIoN>T=_oS!dC+Z^1X`o8JqPIxxs;cdy^PzT#{vdVC9Qb8WwQ4m|c8 z$V)Do%yEEUY+K1 zt{K}s-1v;C_s_w@1E{)Nz7Xtrn3y?F5Ro=3v@1$V zjmZHUb0Mz=2&}ONbh{*LVl1v=EPg-pA+Kso)=WU9o1gn}Wj+>`+6LqXDb~2B&)@1R zHn!w?XL=Xu%v%Ll`=5}F&O3u_FQ|kAbPaI@FS;{glu0C_S4ScVMVg4quy#cvA5MsI zgl#0k&@1Zza-SIHMo0|bHG|-NRmAQTDe?6Jq_UkCyrw29Md2$CE5RjvA}V?fb{Xh3 z(4lySqHq*Vt%1D(k14sJd%&;2&SA;m$H1=KRkU(H7{@Da8xoalRzLhdG)Fmzr5rgx zhBF}ZN{0K7(|8RbV2n%|Hj@B;7UTTLRU?BO+Rb!+QD7&b}+UTc_+fP?LZ zNw1D7NsTG-xXg4rJWi65&>c9#8^>BugNw^ah5&-(BLrCxiD4`lPn?QZ!biwNBY-BB zjA@Zby50n3&|)CE)FcolJwNyT&{r55E?oFv`LtN@Ud-|g{SYIjvY>NEF z3qqd>Toea5)`ePlc|&!Zj}2$9SuuUA8&ojosu##QM=AZC)IQ@|sP_p0@~qoI`<@aY HhWCE}p?db+ literal 0 HcmV?d00001 diff --git a/Realms/computer_names.txt b/Realms/computer_names.txt new file mode 100644 index 0000000..a5ed8ed --- /dev/null +++ b/Realms/computer_names.txt @@ -0,0 +1,10 @@ +Charles +Gustaf +Darwin +Alexander +Cleopatra +Elizabeth +Günther +Hans +Lisa +Alexandra \ No newline at end of file diff --git a/Realms/template.realm b/Realms/template.realm deleted file mode 100644 index e69de29..0000000 diff --git a/Script/__pycache__/ScriptUtils.cpython-312.pyc b/Script/__pycache__/ScriptUtils.cpython-312.pyc index 24c6d33af90715deb6a6753240486312865f4482..c3644de0faf98f9260a94f43c8662cae9db414e2 100644 GIT binary patch delta 56 zcmZ3&xRjCmG%qg~0}v$X`%mOHR&;T;iU}=FEh>)jNX*MiE!Im(Oi#^CEXs~?NiEJU K$uF1~=LP__>=Dxd delta 55 zcmZ3=xP+1WG%qg~0}z-N$xh@pR&aK)5NX*MijB&|NF3nBND=Cg~&n)pM JO_~_*1^}fH5o`be