From cb00eb3d20154fc17dbb324a43fa964cc5a33298 Mon Sep 17 00:00:00 2001 From: ll <396463537@qq.com> Date: Sun, 15 Mar 2026 23:43:41 +0800 Subject: [PATCH] =?UTF-8?q?=E5=90=88=E5=B9=B62048=E5=92=8C=E8=B4=AA?= =?UTF-8?q?=E5=90=83=E8=9B=87=E5=B0=8F=E6=B8=B8=E6=88=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- GameCollection/1.png | Bin 0 -> 545 bytes GameCollection/2.png | Bin 0 -> 1040 bytes GameCollection/2048.png | Bin 0 -> 17562 bytes GameCollection/3.png | Bin 0 -> 1262 bytes GameCollection/4.png | Bin 0 -> 1241 bytes GameCollection/5.png | Bin 0 -> 1256 bytes GameCollection/6.png | Bin 0 -> 1253 bytes .../__pycache__/game_2048.cpython-314.pyc | Bin 0 -> 11253 bytes .../__pycache__/snack_pygame.cpython-314.pyc | Bin 0 -> 10769 bytes GameCollection/game2048_score.npy | Bin 0 -> 136 bytes GameCollection/game_2048.py | 259 +++++++++++++++++ GameCollection/game_launcher.py | 120 ++++++++ GameCollection/snack_pygame.py | 267 ++++++++++++++++++ ...7\350\203\275\346\250\241\345\235\227.png" | Bin 0 -> 9105 bytes "GameCollection/\346\215\225\350\216\267.PNG" | Bin 0 -> 7289 bytes .../\346\265\201\347\250\213\344\270\200.png" | Bin 0 -> 54932 bytes 16 files changed, 646 insertions(+) create mode 100644 GameCollection/1.png create mode 100644 GameCollection/2.png create mode 100644 GameCollection/2048.png create mode 100644 GameCollection/3.png create mode 100644 GameCollection/4.png create mode 100644 GameCollection/5.png create mode 100644 GameCollection/6.png create mode 100644 GameCollection/__pycache__/game_2048.cpython-314.pyc create mode 100644 GameCollection/__pycache__/snack_pygame.cpython-314.pyc create mode 100644 GameCollection/game2048_score.npy create mode 100644 GameCollection/game_2048.py create mode 100644 GameCollection/game_launcher.py create mode 100644 GameCollection/snack_pygame.py create mode 100644 "GameCollection/\345\212\237\350\203\275\346\250\241\345\235\227.png" create mode 100644 "GameCollection/\346\215\225\350\216\267.PNG" create mode 100644 "GameCollection/\346\265\201\347\250\213\344\270\200.png" diff --git a/GameCollection/1.png b/GameCollection/1.png new file mode 100644 index 0000000000000000000000000000000000000000..71ccde06e284515e6db417d2f2631977f0285794 GIT binary patch literal 545 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 KgNn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!u!z$3Dlfr0M`2s2LA z=92~rvX^-Jy0Smw5fx!ol`t;U1_~Jm_=LFr|NkGzBnff_h0?@`73d~^u5Q=@R;5I_Az{yW+-Rx<9_^1B0rd4e3~BLfwQ%H>-J<{+0^B{ z*WjG1!k+RcCtIH0JILr5w?g0WK669e@5)om&xIeHJ8^su=ku@g-@SJFRrS}?#z1|; zFaJ6A{Wd2L%T?{@5Pwz8xZxegl7F1-wJ#q&%YA*4``y%Eelp9xi*m25KXmlQ@wxkK z`tOK*@Txs?+sHq9$@_o8;$jx(T3IYUPKi$H+4O6oee~I1{de~4$b34dzd^n8>FM=< zo>|Hr*NR>te#}=%X{ECMk&4fin;3_g&roE9}0{;rcwOE~|uP zj+R+cT*rM53z{S$_y>UeD`vbabEWu7FPQP33cMV^kS3KCaM)xC-{pX-jD{eg0*2hn z0Xq^eFL>23t8J0QjLZ`Z=Datizc=7r#kV3epl?#90lKt4?El+cU+=$px)JEwSJAb`y#DHSp-fjy zQu=1IJzbHx!r`=uPxNgQ5mkqDDWl`*QYQW9OhO(6UpB}+uw}dN;e{+Ge4L;C@M(T_ zab_D+O`g=Uz1hngr!vgVJRr9#O{yy?!I)Q4!j#vQ6KEyWM-v(gFJGvt^s~s4Iu(7` zhk4rX4Ve~G9B!M0^vwX-8IW+rM8<1DE-1j7i>{c|Ftnvfg>YV&*>>jROt!O&jd@uO zE+@c(80hHL|6gxc|FXh=ySmZw?dnq&-xdxv4VH?=@ zE2sKU>yxT&>P2$*=Uw>Sm*+oav7IsR%*V?Xu3}D-nj&q&`*nrC571k;mMtteW1?Z6 zA=S6I?zV|c%x#mJ0CwNY3+}AQwCMWw`>$pH00)|WTsW( V*6^aeWe!jSgQu&X%Q~loCIHE22iyPv literal 0 HcmV?d00001 diff --git a/GameCollection/4.png b/GameCollection/4.png new file mode 100644 index 0000000000000000000000000000000000000000..a161d559e15f9e33bb6b5eae5d6d6e72256cc2ea GIT binary patch literal 1241 zcmeAS@N?(olHy`uVBq!ia0vp^`+zu%gBeJ=?Y-jwq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!u!z$3Dlfr0M`2s2LA z=92~rvX^-Jy0Smw5fx#znrdBh4=7|D;1lBd|Nnm=lO*u5!G{N^L7*haFPK3<$;ibo zB(1D-=IY&N@4i>rSo94j$C%{p?!wT)D(k_(!0h7b;uunK>+S7>dAAJ&S{^Q35iliZ z>hFL4x0|Oe3G9}+=oqLG8(;KO%U_Cp!~cK}noFmc-FdTd`II20JuL!F`)~iTY!P7n z(6rlb&)Mxi>(lFcUjN!tFtz^aug~+jH`p`mkX;c!E3faPVQgXI&L<2uF~`3?KOU>U zb7F-k*Ll%i^`gjQ(Fe zT5jCKo&Py^AJCg-_n+PVBOfYN zV0>ASnTV(oPUj7`Exx!r#=-^#E zD=r)J>b58U`fAKuCDJ&B?Uj~--n9N#kLx9B^?6kVCR}ou%k-=$)1v(G(uZH#D}tm} zoL=xcD>GwX1)G<%ZPx{T-Yc3w+ng`=PHn3aSr{+1BKW}ia+|{Qy>l`zEam_P({#qt zs$~lwzp?Fy251c^bpM^-Rqd3Y1`5_me81K;9cQnP{Il8Q1$%vz)Qr_H8+I@?)foJL z`>wObm|2te%+!(tF>Ji;2Y0KVVy_R9nsNGNgB9!Zye%eIl-d4XI&gO)--_T11ZY=ow Q38;a=)78&qol`;+09E=8<^TWy literal 0 HcmV?d00001 diff --git a/GameCollection/5.png b/GameCollection/5.png new file mode 100644 index 0000000000000000000000000000000000000000..635a984f58f08dcde5fb2ac04d7427b0f0110a4e GIT binary patch literal 1256 zcmeAS@N?(olHy`uVBq!ia0vp^`+zu%gBeJ=?Y-jwq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!u!z$3Dlfr0M`2s2LA z=92~rvX^-Jy0Smw5fx#Rm6n-R1{5+5@CkAK|NlRbNfP+j;KKvdAW#zI7tA1_WaQ!( zl2+C^bM@}Cci*dQEcynNV@&dPcVXyYmGxj?U=H?laSW-r^>+5fzQ+nYuIruKCTx-Y z^FMw!zoE+R$qyH8S{>^4j$42Evt>#_mYW2N&ROQ~xcPi)@i|EjspOuAc^{ukBnK&I zy!*u|cmMJK**`SbzTUj})c;4fKF;Uaj?DDqR}L?|a?~;I{SkkCZC015 zmz^x;ZrEd?&e<_v_Up8-MbTpM!VGg6JkAv9^vo`h{m-wL;;^o%_NMszBlArdirE@k zbdEb&K9IEDQLy)`>)!H5?5rE?1O-_m1H?`x-rF{>>T5^9ySYCWHN7l8YUHZGowHD; zpteG9$CL|4_m+Npo;!27Zlb5=OR1cNF=rYyo;U1pxNvZ<`2X$KJum!`^o#LuNLavS zpl`G`_BY?L`C)gRVkN|bt61XlgF?^B{yw)l@8bW@6*c|uKicj){{08Yrzw{URy1$R zH0YbvcF6E@02lA9wpDx`V7}~wWe2$oFHh*q)Ogh}lkM?}%o~h(QdtY%KYlKEIpI|U zP^Cl%Sj=moAw*!2#EeXfhHaTE?o7xuD0T2X>}hD?dzf*H@8N^IGueXKub4=<`#Q6B zWLj|X#$NS*wLnv#XYsOy3};MaT95fS2eO|5DLBkma5xk`!{M-rkFm5l#gt{pmN)tPfkv}jr1casR)TR<}w{s`q1xEx@S26E6s zhCC@7Xy8_ZLc0Fn7ni-SCco^Q`}nf(v5PM`Z=$5!Ky<7LJugd;CW#iP_-&Z zbxLAMs#S7PDv)9@GBC8zH8j#SG7K>?ure^SGP2Y*u(UETcvtb~0g8s){FKbJO57Ue TtGdJhH86O(`njxgN@xNAep33` literal 0 HcmV?d00001 diff --git a/GameCollection/6.png b/GameCollection/6.png new file mode 100644 index 0000000000000000000000000000000000000000..5928583ab3c24395b390e90ba4ff8eb9a540d1fe GIT binary patch literal 1253 zcmeAS@N?(olHy`uVBq!ia0vp^`+zu%gBeJ=?Y-jwq*&4&eH|GXHuiJ>Nn{1`6_P!I zd>I(3)EF2VS{N990fib~Fff!FFfhDIU|_JC!N4G1FlSew4N!u!z$3Dlfr0M`2s2LA z=92~rvX^-Jy0Smw5#?hso1(5R1Qaq3@CkAK|NlRbNfP+j;KKvdAW#zI7tA1_WaQ!( zl2+C^bM@}Cci*dQEcynNV@&dPcVXyYmGxj?U=HwfaSW-r^>+5fyvGUxuJ0wplhxy% z{oh|EFY(5MQSV;K)}rZq6inSOUq0daSh=Cw@Ys%rY5lgxB$OXqseXU=?w9oUwE+h- z-~B3Zu7B}g_OHOTuQv^!#uw)Pea`fTpW%RW+;lGU-%ky{7ATe!PPkha^z7EJ#O;9% z;gykDbNnL8&UrHYS>IQAI_vy&%SG!M8~hlKxLZ!wGFN;le9qM&!#Vuaz$GAqIb= zHu}hQFh#$TVbG}-7iZdKG1cn$y1$jt&oa3qoH%w_MZcQU-=OiFVZXzLgO04F?+)$P zt$uyoj`7kOh8->@mS?(swC8{S^k;s}r#*XShuyuiF+|?3rJebyTIkgimSzK1HI{NR_DE(dr$w` zxZdQ+gacm8kBc%Fe12oL^qAtx^66~coLfu`&dKhdeD-vCr0Tn@%ncJ9yqTZBne`;* zl76wccXKOClvLFYfeS~UhVQR@`+X`{N5DBRXLfecD>a+hutPZajM@Hs?JB$J6zG&asdg;R^ z(S?yx8q*n1&8%zQ9U#@WmSc%Yz&Qpx{i$tY=KDVLz{3-iq}E&(-n4z^o}Udx)A%H& zH%gV~`X4Tw0Ssh~>6aPjraSZ=K6+Vr>f8(Y%hfr`moXdlzyGtZq-v4PvJJ}{3*4<1 ze73uwKc(%_45!S5n0;!R-y7=|nur`10Y;FHY`{C_zuzwfNPZ5J0_i6EUgR- iY~8s%Q8eV{r(~v8;@03JwfQSh1B0ilpUXO@geCw#mi7Sv literal 0 HcmV?d00001 diff --git a/GameCollection/__pycache__/game_2048.cpython-314.pyc b/GameCollection/__pycache__/game_2048.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..ec909e3283a132fc54573a646f875b8daf4dacb4 GIT binary patch literal 11253 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 literal 0 HcmV?d00001 diff --git a/GameCollection/__pycache__/snack_pygame.cpython-314.pyc b/GameCollection/__pycache__/snack_pygame.cpython-314.pyc new file mode 100644 index 0000000000000000000000000000000000000000..fc24cee3f23f2f366804f6833950b7f7dc6af415 GIT binary patch literal 10769 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 Y8Ysq)JfBh4t}yIJT@RHMQ%7d^Usl%(V*mgE literal 0 HcmV?d00001 diff --git a/GameCollection/game2048_score.npy b/GameCollection/game2048_score.npy new file mode 100644 index 0000000000000000000000000000000000000000..13550ac5d3591d8682028c20703839c694072790 GIT binary patch literal 136 zcmbR27wQ`j$;eQ~P_3SlTAW;@Zl$1ZlWC!@qoAIaUsO_*m=~X4l#&V(cT3DEP6dh= YXCxM+0{I%6ItsN46alUnMg}kd04tLlp8x;= literal 0 HcmV?d00001 diff --git a/GameCollection/game_2048.py b/GameCollection/game_2048.py new file mode 100644 index 0000000..126129f --- /dev/null +++ b/GameCollection/game_2048.py @@ -0,0 +1,259 @@ +import pygame +import numpy as np +import copy +import os +from pygame.locals import * + +BOARD_SIZE = 4 +TILE_SIZE = 100 +GRID_SIZE = 10 +WINDOW_WIDTH = BOARD_SIZE * TILE_SIZE + (BOARD_SIZE + 1) * GRID_SIZE +WINDOW_HEIGHT = WINDOW_WIDTH + 100 + +WHITE = (255, 255, 255) +BLACK = (0, 0, 0) +GRAY = (187, 173, 160) +LIGHT_GRAY = (205, 193, 180) + +COLORS = { + 0: (205, 193, 180), + 2: (238, 228, 218), + 4: (237, 224, 200), + 8: (242, 177, 121), + 16: (245, 149, 99), + 32: (246, 124, 95), + 64: (246, 94, 59), + 128: (237, 207, 114), + 256: (237, 204, 97), + 512: (237, 200, 80), + 1024: (237, 197, 63), + 2048: (237, 194, 46), +} + +score = 0 +win = 0 +FILENAME = 'game2048_score.npy' + +def init(): + if FILENAME not in os.listdir(): + np.save(FILENAME, 0) + init_board = choice(np.zeros((BOARD_SIZE, BOARD_SIZE), dtype=np.int64)) + return init_board + +def choice(board): + udict = {} + count = 0 + for i in range(BOARD_SIZE): + for j in range(BOARD_SIZE): + if not board[i, j]: + udict[count] = (i, j) + count += 1 + if count == 0: + return board + random_number = np.random.randint(0, count) + two_or_four = np.random.choice([2, 2, 2, 4]) + board[udict[random_number]] = two_or_four + return board + +def basic(board): + global score + global win + for i in range(BOARD_SIZE): + flag = 1 + while flag: + flag = 0 + j = BOARD_SIZE - 2 + while j >= 0: + if board[i, j] != 0: + if board[i, j + 1] == board[i, j]: + board[i, j + 1] = 2 * board[i, j] + if board[i, j + 1] == 2048: + win = 1 + board[i, j] = 0 + score += board[i, j + 1] + flag = 1 + elif board[i, j + 1] == 0: + temp = board[i, j] + board[i, j] = board[i, j + 1] + board[i, j + 1] = temp + flag = 1 + j -= 1 + return board + +def move_right(board): + return basic(board) + +def move_up(board): + board = board[::-1, ::-1].T + board = basic(board) + board = board[::-1, ::-1].T + return board + +def move_left(board): + board = board[::-1, ::-1] + board = basic(board) + board = board[::-1, ::-1] + return board + +def move_down(board): + board = board.T + board = basic(board) + board = board.T + return board + +def fail(board): + diff1 = board[:, 1:] - board[:, :-1] + diff2 = board[1:, :] - board[:-1, :] + inter = (diff1 != 0).all() and (diff2 != 0).all() + return inter + +def load_score(): + rank_score = np.load(FILENAME) + return rank_score + +def save_score(score): + rscore = load_score() + if score > rscore: + np.save(FILENAME, score) + +def draw_board(screen, board, rscore): + global score + screen.fill(GRAY) + font = pygame.font.SysFont('Arial', 36) + small_font = pygame.font.SysFont('Arial', 24) + + score_text = small_font.render(f"Score: {score}", True, BLACK) + screen.blit(score_text, (20, 20)) + + high_text = small_font.render(f"Best: {max(score, rscore)}", True, BLACK) + screen.blit(high_text, (WINDOW_WIDTH - 120, 20)) + + for i in range(BOARD_SIZE): + for j in range(BOARD_SIZE): + x = GRID_SIZE + j * (TILE_SIZE + GRID_SIZE) + y = 80 + GRID_SIZE + i * (TILE_SIZE + GRID_SIZE) + + value = board[i, j] + color = COLORS.get(value, (60, 58, 50)) + pygame.draw.rect(screen, color, (x, y, TILE_SIZE, TILE_SIZE)) + + if value != 0: + text_color = (119, 110, 101) if value <= 4 else (255, 255, 255) + text = font.render(str(value), True, text_color) + text_rect = text.get_rect(center=(x + TILE_SIZE // 2, y + TILE_SIZE // 2)) + screen.blit(text, text_rect) + +def main(return_to_menu=False): + global score, win + pygame.init() + os.chdir(os.path.dirname(os.path.abspath(__file__))) + screen = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT)) + pygame.display.set_caption('2048') + + board = init() + rscore = load_score() + score = 0 + win = 0 + + running = True + is_fail = False + font2 = pygame.font.SysFont('Arial', 48) + + while running: + draw_board(screen, board, rscore) + + if win: + text = font2.render("You Win!", True, (255, 0, 0)) + text_rect = text.get_rect(center=(WINDOW_WIDTH // 2, WINDOW_HEIGHT // 2)) + screen.blit(text, text_rect) + pygame.display.update() + + if is_fail: + text = font2.render("Game Over!", True, (255, 0, 0)) + text_rect = text.get_rect(center=(WINDOW_WIDTH // 2, WINDOW_HEIGHT // 2)) + screen.blit(text, text_rect) + pygame.display.update() + + for event in pygame.event.get(): + if event.type == QUIT: + save_score(score) + running = False + if return_to_menu: + return 'menu' + else: + pygame.quit() + return + elif event.type == KEYDOWN: + if win or is_fail: + if event.key == K_r: + save_score(score) + board = init() + score = 0 + win = 0 + is_fail = False + continue + elif event.key == K_q or event.key == K_ESCAPE: + save_score(score) + running = False + if return_to_menu: + return 'menu' + else: + pygame.quit() + return + elif event.key == K_TAB: + save_score(score) + if return_to_menu: + return 'snake' + continue + + change = False + tempboard = copy.deepcopy(board) + + if event.key == K_UP or event.key == K_w: + board = move_up(board) + elif event.key == K_DOWN or event.key == K_s: + board = move_down(board) + elif event.key == K_LEFT or event.key == K_a: + board = move_left(board) + elif event.key == K_RIGHT or event.key == K_d: + board = move_right(board) + elif event.key == K_r: + save_score(score) + board = init() + score = 0 + win = 0 + is_fail = False + continue + elif event.key == K_q or event.key == K_ESCAPE: + save_score(score) + running = False + if return_to_menu: + return 'menu' + else: + pygame.quit() + return + elif event.key == K_TAB: + save_score(score) + if return_to_menu: + return 'snake' + continue + + if not (board == tempboard).all(): + change = True + + if change: + board = choice(board) + + if (board != 0).all(): + is_fail = fail(board) + + pygame.display.update() + + save_score(score) + if return_to_menu: + return 'menu' + else: + pygame.quit() + +if __name__ == '__main__': + main() diff --git a/GameCollection/game_launcher.py b/GameCollection/game_launcher.py new file mode 100644 index 0000000..d600cc3 --- /dev/null +++ b/GameCollection/game_launcher.py @@ -0,0 +1,120 @@ +import pygame +import sys +import os +from pygame.locals import * + +os.chdir(os.path.dirname(os.path.abspath(__file__))) + +from game_2048 import main as game_2048_main +from snack_pygame import main as snake_main + +WINDOW_WIDTH = 800 +WINDOW_HEIGHT = 600 + +WHITE = (255, 255, 255) +BLACK = (0, 0, 0) +GRAY = (100, 100, 100) +LIGHT_GRAY = (150, 150, 150) +BLUE = (0, 100, 200) +LIGHT_BLUE = (0, 150, 255) + +pygame.init() + +screen = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT)) +pygame.display.set_caption('Game Collection') + +def draw_text(text, font, color, x, y, center=True): + img = font.render(text, True, color) + rect = img.get_rect() + if center: + rect.center = (x, y) + else: + rect.topleft = (x, y) + screen.blit(img, rect) + return rect + +def draw_button(text, x, y, width, height, color, hover_color, font, mouse_pos, mouse_click): + rect = pygame.Rect(x, y, width, height) + if rect.collidepoint(mouse_pos): + pygame.draw.rect(screen, hover_color, rect, border_radius=10) + if mouse_click: + return True + else: + pygame.draw.rect(screen, color, rect, border_radius=10) + draw_text(text, font, WHITE, x + width // 2, y + height // 2) + return False + +def main_menu(): + title_font = pygame.font.SysFont('Arial', 60, bold=True) + button_font = pygame.font.SysFont('Arial', 30) + small_font = pygame.font.SysFont('Arial', 20) + + clock = pygame.time.Clock() + + while True: + screen.fill((20, 20, 40)) + + mouse_pos = pygame.mouse.get_pos() + mouse_click = False + + for event in pygame.event.get(): + if event.type == QUIT: + pygame.quit() + sys.exit() + elif event.type == MOUSEBUTTONDOWN: + if event.button == 1: + mouse_click = True + + draw_text('Game Collection', title_font, WHITE, WINDOW_WIDTH // 2, 100) + + if draw_button('2048', 300, 200, 200, 60, BLUE, LIGHT_BLUE, button_font, mouse_pos, mouse_click): + return '2048' + + if draw_button('Snake', 300, 300, 200, 60, BLUE, LIGHT_BLUE, button_font, mouse_pos, mouse_click): + return 'snake' + + if draw_button('Exit', 300, 400, 200, 60, GRAY, LIGHT_GRAY, button_font, mouse_pos, mouse_click): + pygame.quit() + sys.exit() + + draw_text('Press TAB to switch games while playing', small_font, LIGHT_GRAY, WINDOW_WIDTH // 2, 550) + + pygame.display.update() + clock.tick(30) + +def run_game(game_name): + pygame.display.quit() + pygame.quit() + pygame.init() + + while True: + if game_name == '2048': + result = game_2048_main(return_to_menu=True) + elif game_name == 'snake': + result = snake_main(return_menu=True) + + if result == 'menu': + break + elif result == 'snake': + game_name = 'snake' + elif result == '2048': + game_name = '2048' + + pygame.display.quit() + pygame.quit() + pygame.init() + + pygame.display.quit() + pygame.quit() + pygame.init() + global screen + screen = pygame.display.set_mode((WINDOW_WIDTH, WINDOW_HEIGHT)) + pygame.display.set_caption('Game Collection') + +def main(): + while True: + game = main_menu() + run_game(game) + +if __name__ == '__main__': + main() diff --git a/GameCollection/snack_pygame.py b/GameCollection/snack_pygame.py new file mode 100644 index 0000000..91e1a21 --- /dev/null +++ b/GameCollection/snack_pygame.py @@ -0,0 +1,267 @@ +import pygame +import time +import numpy as np +# 此模块包含游戏所需的常量 +from pygame.locals import * + +# 设置棋盘的长宽 +BOARDWIDTH = 48 +BOARDHEIGHT = 28 +# 分数 +score = 0 + + +# 更多精彩关注微信公众号:python高效编程 +# 食物 +class Food(object): + def __init__(self): + self.item = (4, 5) + + # 画出食物 + def _draw(self, screen, i, j): + color = 255, 0, 255 + radius = 10 + width = 10 + # i:1---34 j:1---25 + position = 10 + 20 * i, 10 + 20 * j + # 画出半径为 10 的粉色实心圆 + pygame.draw.circle(screen, color, position, radius, width) + + # 随机产生食物 + def update(self, screen, enlarge, snack): + if enlarge: + self.item = np.random.randint(1, BOARDWIDTH - 2), np.random.randint(1, BOARDHEIGHT - 2) + while self.item in snack.item: + self.item = np.random.randint(1, BOARDWIDTH - 2), np.random.randint(1, BOARDHEIGHT - 2) + self._draw(screen, self.item[0], self.item[1]) + + +# 贪吃蛇 +class Snack(object): + def __init__(self): + # self.item = [(3, 25), (2, 25), (1, 25), (1,24), (1,23), + # (1,22), (1,21), (1,20), (1,19), (1,18), (1,17), (1,16)] + # x 水平方向 y 竖直方向 + # 初始方向竖直向上 + self.item = [(3, 25), (2, 25), (1, 25), (1, 24), ] + self.x = 0 + self.y = -1 + + def move(self, enlarge): + # enlarge 标记贪吃蛇有没有吃到食物 + if not enlarge: + # 吃到食物删除尾部元素 + self.item.pop() + # 新蛇头的坐标为旧蛇头坐标加上移动方向的位移 + head = (self.item[0][0] + self.x, self.item[0][1] + self.y) + # 将新的蛇头坐标插入在 list 最前面 + self.item.insert(0, head) + + def eat_food(self, food): + global score + # snack_x,snack_y 蛇头坐标 + # food_x, food_y 食物坐标 + snack_x, snack_y = self.item[0] + food_x, food_y = food.item + # 比较蛇头坐标与食物坐标 + if (food_x == snack_x) and (food_y == snack_y): + score += 100 + return 1 + else: + return 0 + + def toward(self, x, y): + # 改变蛇头朝向 + if self.x * x >= 0 and self.y * y >= 0: + self.x = x + self.y = y + + def get_head(self): + # 获取蛇头坐标 + return self.item[0] + + def draw(self, screen): + # 画出贪吃蛇 + # 蛇头为半径为 15 的红色实心圆 + radius = 15 + width = 15 + # i:1---34 j:1---25 + color = 255, 0, 0 + # position 为图形的坐标 + position = 10 + 20 * self.item[0][0], 10 + 20 * self.item[0][1] + pygame.draw.circle(screen, color, position, radius, width) + # 蛇身为半径为 10 的黄色实心圆 + radius = 10 + width = 10 + color = 255, 255, 0 + for i, j in self.item[1:]: + position = 10 + 20 * i, 10 + 20 * j + pygame.draw.circle(screen, color, position, radius, width) + + +# 初始界面 +def init_board(screen): + board_width = BOARDWIDTH + board_height = BOARDHEIGHT + color = 10, 255, 255 + width = 0 + # width:x, height:y + # 左右边框占用了 X: 0 35*20 + for i in range(board_width): + pos = i * 20, 0, 20, 20 + pygame.draw.rect(screen, color, pos, width) + pos = i * 20, (board_height - 1) * 20, 20, 20 + pygame.draw.rect(screen, color, pos, width) + # 上下边框占用了 Y: 0 26*20 + for i in range(board_height - 1): + pos = 0, 20 + i * 20, 20, 20 + pygame.draw.rect(screen, color, pos, width) + pos = (board_width - 1) * 20, 20 + i * 20, 20, 20 + pygame.draw.rect(screen, color, pos, width) + + +# 游戏失败 +def game_over(snack): + broad_x, broad_y = snack.get_head() + flag = 0 + old = len(snack.item) + new = len(set(snack.item)) + # 游戏失败的两种可能 + # 咬到自身 + if new < old: + flag = 1 + # 撞到边框 + if broad_x == 0 or broad_x == BOARDWIDTH - 1: + flag = 1 + if broad_y == 0 or broad_y == BOARDHEIGHT - 1: + flag = 1 + + if flag: + return True + else: + return False + + +# 打印字符 +def print_text(screen, font, x, y, text, color=(255, 0, 0)): + # 在屏幕上打印字符 + # text是需要打印的文本,color为字体颜色 + # (x,y)是文本在屏幕上的位置 + imgText = font.render(text, True, color) + screen.blit(imgText, (x, y)) + + +# 按键 +def press(keys, snack): + global score + # K_w 为 pygame.locals 中的常量 + # keys[K_w] 返回 True or False + # 上移 + if keys[K_w] or keys[K_UP]: + snack.toward(0, -1) + # 下移 + elif keys[K_s] or keys[K_DOWN]: + snack.toward(0, 1) + # 左移 + elif keys[K_a] or keys[K_LEFT]: + snack.toward(-1, 0) + # 右移 + elif keys[K_d] or keys[K_RIGHT]: + snack.toward(1, 0) + # 重置游戏 + elif keys[K_r]: + global return_to_menu + score = 0 + return 'reset' + # 退出游戏 + elif keys[K_ESCAPE]: + return 'quit' + # 切换游戏 + elif keys[K_TAB]: + return 'switch' + return None + + +return_to_menu = False + +def game_init(return_menu=False): + global return_to_menu + return_to_menu = return_menu + pygame.init() + screen = pygame.display.set_mode((BOARDWIDTH * 20, BOARDHEIGHT * 20)) + pygame.display.set_caption('Snake Game') + return screen + + +def game(screen): + global score, return_to_menu + snack = Snack() + food = Food() + font = pygame.font.SysFont('Arial', 20) + is_fail = False + while True: + for event in pygame.event.get(): + if event.type == QUIT: + if return_to_menu: + return 'menu' + else: + pygame.quit() + exit() + elif event.type == KEYDOWN: + if event.key == K_TAB: + if return_to_menu: + return '2048' + screen.fill((0, 0, 100)) + init_board(screen=screen) + keys = pygame.key.get_pressed() + result = press(keys, snack) + if result == 'reset': + return 'reset' + elif result == 'quit': + if return_to_menu: + return 'menu' + else: + pygame.quit() + exit() + elif result == 'switch': + if return_to_menu: + return '2048' + if is_fail: + font2 = pygame.font.Font(None, 40) + print_text(screen, font2, 400, 200, "GAME OVER", (255, 255, 255)) + if keys[K_r]: + return 'reset' + elif keys[K_ESCAPE]: + if return_to_menu: + return 'menu' + else: + pygame.quit() + exit() + if not is_fail: + enlarge = snack.eat_food(food) + text = "score: {}".format(score) + print_text(screen, font, 0, 0, text, (255, 255, 255)) + food.update(screen, enlarge, snack) + snack.move(enlarge) + is_fail = game_over(snack=snack) + snack.draw(screen) + pygame.display.update() + time.sleep(0.1) + + +def main(return_menu=False): + global score + while True: + score = 0 + screen = game_init(return_menu) + result = game(screen) + if result == 'menu': + return 'menu' + elif result == '2048': + return '2048' + elif result != 'reset': + break + + +if __name__ == '__main__': + main() diff --git "a/GameCollection/\345\212\237\350\203\275\346\250\241\345\235\227.png" "b/GameCollection/\345\212\237\350\203\275\346\250\241\345\235\227.png" new file mode 100644 index 0000000000000000000000000000000000000000..7de6639f73fd5b0b1256b7ee7d5cbc6c9c56a5b8 GIT binary patch literal 9105 zcmb_?XFObA*S1cGn$d!Yeh|@#USjkxGkWhOdKaRLU_^}?eGoNBv=A*q^ctd+HSObzN&m!!(qL3GWhOU|;vM zPG$Vnb*=S}{NmzuL&r-;9i7RG6$a3H0)8+&5EK080VWch&3(o^0DRd0Z#~@BN}iZM z9^Wpeu5xZWISKxvxDoG2bnZ*Xt0PK;K_B(4?`6FTQlREg-A`@v=}%A1nQm9@22u=? zsBc`6_54VAlY1vr!6FTw2gSd?WT(;LSCu)%&a*U;*6sQ(UI)aw5FO#`h>~MOeJhKs zr$x#`h2{;K+Pn%<8X8>c=br72>Jc}|)Nl{$h(bz)qO@LsZ4gFN#j~oYcg?X!wT+Z^ zSr*UywY(pPs)j#;+GpkiUXR!7A6|KsG>0D5MoRFmUj?|?Jo%6JJ3UTTC(3@7lmN|c1X&74e}Wn zL~Yzq_%D9?-enp-^sj)z!WoQe=JiXoe;?tK|!KC|`TKT2#QVb{Y0U z7MhWe5ERV(1Ao-W(2EGl_*ex$!y> z_q+#u`V3L`IkL`t_mE>L#O$f$Ga1z|IIBj6(|F7g#qMhL!CVAVM0@R&cg~dRUM$Yqen!@Z+L0uW~e2zoT3{vld$Gf))wu4GuqF4pq zI)1s`s7U>eVKs&kmnvp+ZR{hK3w{M_CJN^_v;zW-iZgxBOdGmpPb$hJPE!WBOyMz; z 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 literal 0 HcmV?d00001 diff --git "a/GameCollection/\346\215\225\350\216\267.PNG" "b/GameCollection/\346\215\225\350\216\267.PNG" new file mode 100644 index 0000000000000000000000000000000000000000..e2e3e5010362a2d727d985e95350f3296f676fbf GIT binary patch literal 7289 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 I@AB8b0Rt`=_y7O^ literal 0 HcmV?d00001 diff --git "a/GameCollection/\346\265\201\347\250\213\344\270\200.png" "b/GameCollection/\346\265\201\347\250\213\344\270\200.png" new file mode 100644 index 0000000000000000000000000000000000000000..d1343a85095307587477e9fcc640df8c331d1e58 GIT binary patch literal 54932 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

wx}zkc01K>QTN+C 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 literal 0 HcmV?d00001