Мне нужна небольшая помощь, чтобы кое-что исправить, я знаю, что это очень простой легкий вопрос, но это то, что меня немного сбивает с толку в SQL.
Этот SQL-запрос выдает ошибку «не выражение GROUP BY» в Oracle. Я понимаю, почему, поскольку я знаю, что как только я группирую по атрибуту кортежа, Нет настоящего руководства о том, как разумно организовать код. На ...
Я начал учиться создавать игры с помощью python / pygame, и, как будто в pygame легко быстро создать рабочую игру, нет настоящего руководства о том, как разумно организовать код.
На странице руководств по pygame я нашел 3 способа сделать это.
1- Никаких классов, для небольших проектов
2- Структура MVC типа ruby-on-rails, но без направляющих. структура, которая приводит к чему-то слишком сложному и непонятному (даже с OO-программированием и знанием рельсов)
3- C ++ - подобная структура следующим образом: (чистая и интуитивно понятная, но, возможно, не очень похожая на Python?)
import pygame
from pygame.locals import *
class MyGame:
def __init__(self):
self._running = True
self._surf_display = None
self.size = self.width, self.height = 150, 150
def on_init(self):
pygame.init()
self._display_surf = pygame.display.set_mode(self.size)
pygame.display.set_caption('MyGame')
#some more actions
pygame.display.flip()
self._running = True
def on_event(self, event):
if event.type == pygame.QUIT:
self._running = False
elif event.type == KEYDOWN:
if event.key == K_ESCAPE:
self._running = False
elif event.type == MOUSEBUTTONDOWN:
if event.button == 1:
print event.pos
def on_loop(self):
pass
def on_render(self):
pass
def on_cleanup(self):
pygame.quit()
def on_execute(self):
if self.on_init() == False:
self._running = False
while( self._running ):
for event in pygame.event.get():
self.on_event(event)
self.on_loop()
self.on_render()
self.on_cleanup()
if __name__ == "__main__" :
mygame = MyGame()
mygame.on_execute()
Я используется для создания игр SDL на C ++, и я использую эту точную структуру, но мне интересно, можно ли ее использовать как для небольших, так и для больших проектов или есть ли ' более чистый способ в pygame.
Например, я нашел игру, организованную следующим образом:
imports
def functionx
def functiony
class MyGameObject:
class AnotherObject:
class Game: #pygame init, event handler, win, lose...etc
while True: #event loop
display update
Она также выглядит очень хорошо организованной и простой в использовании.
Какую структуру я должен последовательно использовать во всех моих проектах, чтобы иметь чистый код, который можно использовать в маленьких и больших играх?