From 339b537ad071d4a274780d17fe013bb31e2eb894 Mon Sep 17 00:00:00 2001 From: m5rcel { Marcel } Date: Sat, 4 Oct 2025 12:08:25 +0200 Subject: [PATCH] Update snake.m5r --- files/snake.m5r | 357 +++++++++++++++++++++--------------------------- 1 file changed, 159 insertions(+), 198 deletions(-) diff --git a/files/snake.m5r b/files/snake.m5r index 0b0c2d6..446bc56 100644 --- a/files/snake.m5r +++ b/files/snake.m5r @@ -1,234 +1,195 @@ ','','','','w','a','s','d']: + self._m.bind(_k,self._cD) + self._sB=_tk.Button(self._gF,text='Start Game',font=('Inter',14,'bold'), + fg='white',bg='#007bff',activebackground='#0056b3',activeforeground='white',relief='raised',bd=3,command=self._s_g) + self._sB.pack(pady=10) + self._r_g() - # Game state variables (Obfuscated) - self._sn = _c.deque() # snake - self._f = None # food - self._d = ''.join([chr(_c) for _c in [82,105,103,104,116]]) # Right - self._gO = False # game_over - self._gR = False # game_running - - # Bind keys (Obfuscated) - self._m.bind(''.join([chr(_c) for _c in [60,76,101,102,116,62]]), self._cD) # - self._m.bind(''.join([chr(_c) for _c in [60,82,105,103,104,116,62]]), self._cD) # - self._m.bind(''.join([chr(_c) for _c in [60,85,112,62]]), self._cD) # - self._m.bind(''.join([chr(_c) for _c in [60,68,111,119,110,62]]), self._cD) # - self._m.bind('w', self._cD) - self._m.bind('a', self._cD) - self._m.bind('s', self._cD) - self._m.bind('d', self._cD) - - # Start button (Obfuscated) - self._sB = _tk.Button(self._gF, text=''.join([chr(_c) for _c in [83,116,97,114,116,32,71,97,109,101]]), # Start Game - font=(''.join([chr(_c) for _c in [73,110,116,101,114]]), 14, ''.join([chr(_c) for _c in [98,111,108,100]])), # Inter, bold - fg=''.join([chr(_c) for _c in [119,104,105,116,101]]), bg=''.join([chr(_c) for _c in [35,48,48,55,98,102,102]]), # white, #007bff - activebackground=''.join([chr(_c) for _c in [35,48,48,53,54,98,51]]), activeforeground=''.join([chr(_c) for _c in [119,104,105,116,101]]), # #0056b3, white - relief=''.join([chr(_c) for _c in [114,97,105,115,101,100]]), bd=3, # raised - command=self._s_g) # start_game - self._sB.pack(pady=15) - - self._r_g() # reset_game - - def _r_g(self): # reset_game - """Resets the game state and redraws initial elements.""" + def _r_g(self): self._sn.clear() - for _i in range(_iSL): - self._sn.appendleft((_iSL - 1 - _i, 0)) + for _i in range(_iSL): self._sn.appendleft((_iSL-1-_i,0)) + self._d='Right' + self._s=0 + self._gO=False + self._sL.config(text=f"Score: {self._s}") + self._c.delete('all') + self._p_f() + self._d_e() + self._sB.config(text='Start Game',command=self._s_g) + self._gR=False - self._d = ''.join([chr(_c) for _c in [82,105,103,104,116]]) # Right - self._s = 0 - self._gO = False - self._sL.config(text=f"{''.join([chr(_c) for _c in [83,99,111,114,101]])}: {self._s}") # Score - self._c.delete(''.join([chr(_c) for _c in [97,108,108]])) # all - self._p_f() # place_food - self._d_e() # draw_elements - self._sB.config(text=''.join([chr(_c) for _c in [83,116,97,114,116,32,71,97,109,101]]), command=self._s_g) # Start Game, start_game - self._gR = False - - def _s_g(self): # start_game - """Starts the game loop.""" + def _s_g(self): if not self._gR: - self._gR = True - self._sB.config(text=''.join([chr(_c) for _c in [82,101,115,116,97,114,116,32,71,97,109,101]]), command=self._r_g) # Restart Game, reset_game - self._g_l() # game_loop + self._gR=True + self._sB.config(text='Restart Game',command=self._r_g) + self._g_l() - def _p_f(self): # place_food - """Places food at a random position, ensuring it doesn't overlap with the snake.""" - while True: - _x = _r.randint(0, _bW - 1) - _y = _r.randint(0, _bH - 1) - if (_x, _y) not in self._sn: - self._f = (_x, _y) + def _p_f(self): + while 1: + _x=_r.randint(0,_bW-1) + _y=_r.randint(0,_bH-1) + if (_x,_y) not in self._sn: + self._f=(_x,_y) break - def _d_e(self): # draw_elements - """Draws the snake and food on the canvas.""" - self._c.delete(''.join([chr(_c) for _c in [97,108,108]])) # all + def _d_e(self): + self._c.delete('all') + for _x in range(_bW): + for _y in range(_bH): + _cube(self._c,_x,_y,"#232b39") + if self._f: _food3d(self._c,*self._f) + for _i,(_x,_y) in enumerate(self._sn): + _cube(self._c,_x,_y,"#00ff00",_head=(_i==0)) - # Draw snake (Obfuscated colors) - for _x, _y in self._sn: - self._c.create_rectangle(_x * _cS, _y * _cS, - (_x + 1) * _cS, (_y + 1) * _cS, - fill=''.join([chr(_c) for _c in [35,48,48,102,102,48,48]]), outline=''.join([chr(_c) for _c in [35,48,48,97,97,48,48]]), width=1) # #00ff00, #00aa00 - # Draw food (Obfuscated colors) - if self._f: - _x, _y = self._f - self._c.create_oval(_x * _cS + _cS * 0.1, _y * _cS + _cS * 0.1, - (_x + 1) * _cS - _cS * 0.1, (_y + 1) * _cS - _cS * 0.1, - fill=''.join([chr(_c) for _c in [35,102,102,48,48,48,48]]), outline=''.join([chr(_c) for _c in [35,99,99,48,48,48,48]]), width=1) # #ff0000, #cc0000 - - def _cD(self, _e): # change_direction, event - """Changes the snake's direction based on key press.""" + def _cD(self,_e): if self._gO: return + _k=_e.keysym + if _k=='Left' and self._d!='Right':self._d='Left' + elif _k=='Right' and self._d!='Left':self._d='Right' + elif _k=='Up' and self._d!='Down':self._d='Up' + elif _k=='Down' and self._d!='Up':self._d='Down' + elif _k=='a' and self._d!='Right':self._d='Left' + elif _k=='d' and self._d!='Left':self._d='Right' + elif _k=='w' and self._d!='Down':self._d='Up' + elif _k=='s' and self._d!='Up':self._d='Down' - _k = _e.keysym # key - if _k == ''.join([chr(_c) for _c in [76,101,102,116]]) and self._d != ''.join([chr(_c) for _c in [82,105,103,104,116]]): # Left, Right - self._d = ''.join([chr(_c) for _c in [76,101,102,116]]) # Left - elif _k == ''.join([chr(_c) for _c in [82,105,103,104,116]]) and self._d != ''.join([chr(_c) for _c in [76,101,102,116]]): # Right, Left - self._d = ''.join([chr(_c) for _c in [82,105,103,104,116]]) # Right - elif _k == ''.join([chr(_c) for _c in [85,112]]) and self._d != ''.join([chr(_c) for _c in [68,111,119,110]]): # Up, Down - self._d = ''.join([chr(_c) for _c in [85,112]]) # Up - elif _k == ''.join([chr(_c) for _c in [68,111,119,110]]) and self._d != ''.join([chr(_c) for _c in [85,112]]): # Down, Up - self._d = ''.join([chr(_c) for _c in [68,111,119,110]]) # Down - elif _k == 'a' and self._d != ''.join([chr(_c) for _c in [82,105,103,104,116]]): # Right - self._d = ''.join([chr(_c) for _c in [76,101,102,116]]) # Left - elif _k == 'd' and self._d != ''.join([chr(_c) for _c in [76,101,102,116]]): # Left - self._d = ''.join([chr(_c) for _c in [82,105,103,104,116]]) # Right - elif _k == 'w' and self._d != ''.join([chr(_c) for _c in [68,111,119,110]]): # Down - self._d = ''.join([chr(_c) for _c in [85,112]]) # Up - elif _k == 's' and self._d != ''.join([chr(_c) for _c in [85,112]]): # Up - self._d = ''.join([chr(_c) for _c in [68,111,119,110]]) # Down - - def _g_l(self): # game_loop - """The main game loop, called repeatedly.""" + def _g_l(self): if self._gO or not self._gR: return - - _hX, _hY = self._sn[0] # head_x, head_y - _nH = (_hX, _hY) # new_head - - # Calculate new head position (Obfuscated) - if self._d == ''.join([chr(_c) for _c in [85,112]]): _nH = (_hX, _hY - 1) # Up - elif self._d == ''.join([chr(_c) for _c in [68,111,119,110]]): _nH = (_hX, _hY + 1) # Down - elif self._d == ''.join([chr(_c) for _c in [76,101,102,116]]): _nH = (_hX - 1, _hY) # Left - elif self._d == ''.join([chr(_c) for _c in [82,105,103,104,116]]): _nH = (_hX + 1, _hY) # Right - - # Check for collisions (Obfuscated) - if (_nH[0] < 0 or _nH[0] >= _bW or _nH[1] < 0 or _nH[1] >= _bH): - self._e_g() # end_game - return - - if _nH in self._sn: - self._e_g() # end_game - return - + _hX,_hY=self._sn[0] + if self._d=='Up':_nH=(_hX,_hY-1) + elif self._d=='Down':_nH=(_hX,_hY+1) + elif self._d=='Left':_nH=(_hX-1,_hY) + else:_nH=(_hX+1,_hY) + if (_nH[0]<0 or _nH[0]>=_bW or _nH[1]<0 or _nH[1]>=_bH) or _nH in self._sn: + self._e_g(); return self._sn.appendleft(_nH) + if _nH==self._f: + self._s+=1 + self._sL.config(text=f"Score: {self._s}") + self._p_f() + else: self._sn.pop() + self._d_e() + self._m.after(_gTI,self._g_l) - # Check if food was eaten (Obfuscated) - if _nH == self._f: - self._s += 1 - self._sL.config(text=f"{''.join([chr(_c) for _c in [83,99,111,114,101]])}: {self._s}") # Score - self._p_f() # place_food - else: - self._sn.pop() + def _e_g(self): + self._gO=True + self._gR=False + self._c.create_text(self._c.winfo_width()/2,self._c.winfo_height()/2, + text="GAME OVER!",font=('Inter',28,'bold'),fill='red') + print(f" Game Over! Final Score: {self._s}") - self._d_e() # draw_elements - self._m.after(_gTI, self._g_l) # game_loop - - def _e_g(self): # end_game - """Ends the game and displays a game over message.""" - self._gO = True - self._gR = False - self._c.create_text(self._c.winfo_width() / 2, self._c.winfo_height() / 2, - text=''.join([chr(_c) for _c in [71,65,77,69,32,79,86,69,82,33]]), # GAME OVER! - font=(''.join([chr(_c) for _c in [73,110,116,101,114]]), 30, ''.join([chr(_c) for _c in [98,111,108,100]])), # Inter, bold - fill=''.join([chr(_c) for _c in [114,101,100]])) # red - print(f"{''.join([chr(_c) for _c in [60,63,112,121,62]])} {''.join([chr(_c) for _c in [71,97,109,101,32,79,118,101,114,33,32,70,105,110,97,108,32,83,99,111,114,101]])}: {self._s}") # Game Over! Final Score - -# Main Tkinter window setup (Obfuscated) -if __name__ == '__main__': - _rt = _tk.Tk() # root - _gm = _SG(_rt) # game +if __name__=='__main__': + _rt=_tk.Tk() + _gm=_SG(_rt) _rt.mainloop() - -print(f"{''.join([chr(_c) for _c in [60,63,112,121,62]])} {''.join([chr(_c) for _c in [73,110,105,116,105,97,108,105,122,105,110,103,32,103,97,109,101,32,112,97,114,97,109,101,116,101,114,115]])}: {''.join([chr(_c) for _c in [66,111,97,114,100]])} {_bW}x{_bH}, {''.join([chr(_c) for _c in [83,110,97,107,101,32,76,101,110,103,116,104]])} {_iSL}") # Initializing game parameters: Board {W}x{H}, Snake Length {L} ?> - - microtime(true),''.join([chr(_e) for _e in [101,118,101,110,116]])=>${_c},''.join([chr(_e) for _e in [100,97,116,97]])=>${_d}];} -_b(''.join([chr(_e) for _e in [77,53,82,67,111,100,101,95,80,72,80,95,76,111,97,100,101,100]]),[''.join([chr(_e) for _e in [109,101,115,115,97,103,101]])=>''.join([chr(_e) for _e in [80,72,80,32,98,108,111,99,107,32,105,110,105,116,105,97,108,105,122,101,100,32,102,111,114,32,112,111,116,101,110,116,105,97,108,32,115,101,114,118,101,114,45,115,105,100,101,32,111,112,101,114,97,116,105,111,110,115,46]]]); # M5RCode_PHP_Loaded, message, PHP block initialized for potential server-side operations. +${_a}=array(); +function _b(${_c},${_d}){ + global ${_a}; + ${_a}[]=[''.join([chr(_e) for _e in [116,105,109,101,115,116,97,109,112]])=>microtime(true), + ''.join([chr(_e) for _e in [101,118,101,110,116]])=>${_c}, + ''.join([chr(_e) for _e in [100,97,116,97]])=>${_d}]; +} +_b(''.join([chr(_e) for _e in [77,53,82,67,111,100,101,95,80,72,80,95,76,111,97,100,101,100]]), + [''.join([chr(_e) for _e in [109,101,115,115,97,103,101]])=>''.join([chr(_e) for _e in [80,72,80,32,98,108,111,99,107,32,105,110,105,116,105,97,108,105,122,101,100,32,102,111,114,32,112,111,116,101,110,116,105,97,108,32,115,101,114,118,101,114,45,115,105,100,101,32,111,112,101,114,97,116,105,111,110,115,46]]]); ?> - + + +int main() { + std::cout << "M5RCode C++ Block Loaded." << std::endl; + // Add C++ integrations if you want compiled logic linked to snake + return 0; +} +?>