[PYTHON] Une technologie qui soutient les créateurs de caca ~ La transition d'état rêve-t-elle de caca?

Naissance d'un fabricant de caca

J'ai créé un jeu par navigateur appelé "Poop Maker".

ホーム - うんちメーカー no unchi.png

C'est un jeu qui rivalise pour la longueur de la merde et qui a une fonction de classement en ligne. Les techniques utilisées sont Django, Vue, etc. Cette fois, je voudrais écrire sur la technologie utilisée par ce fabricant de caca.

Le rôle principal est Vue

J'ai utilisé Vue comme cadre frontal. Vue est un framework orienté composant qui vous permet de définir des modules dans des unités appelées SFC (Single File Component). Par exemple, comme ↓.

python


<script>
export default {
  data () {
    return {
    }
  }
}
</script>

<template>
  <div class="">Hello, World!</div>
</template>

<style lang="scss" scoped>
</style>

SFC est un composant qui combine JavaScript, HTML et CSS dans un seul fichier, et vous pouvez développer efficacement en les combinant dans un seul fichier. Vous pouvez transmettre des données aux attributs à l'aide de composants tels que ↓.

python


<my-component :my-data="1" />

Les données transmises à l'attribut sont partagées par SFC avec une variable de l'objet appelée «props». Par exemple, si vous modifiez la valeur de mes-données dans ↑, ce changement sera reflété dans SFC en temps réel. En utilisant cette fonction props, vous pouvez facilement définir un composant avec un état.

Transition d'état des composants

Avec ce développement, j'ai pensé que le jeu était une masse de transitions d'états. La transition d'état est une technologie qui change le comportement des modules, etc. en préparant une variable qui définit l'état et en changeant la valeur de cette variable l'une après l'autre.

Par exemple, si vous avez une variable comme ↓

python


const status = 'first'

Cette variable est référencée comme ↓.

python


switch (status) {
case 'first': /* TODO */ break
case 'running': /* TODO */ break 
case 'waiting': /* TODO */ break
}

La transition d'état peut être réalisée en écrivant le processus en fonction de l'état dans le "cas" de l'instruction "switch". Les variables qui ont des états changent pendant le traitement de chaque état.

En donnant aux "accessoires" du composant précédent un tel état, il est possible de faire effectuer au composant une transition d'état. Par exemple, comme ↓.

python


<my-component :status="myComponentStatus" />

Dans le composant, bouclez avec setInterval pour surveiller cet état.

python


mounted () {
  this.iid = setInterval(this.update, 16.66)
},

methods: {
  update () {
    switch (this.status) {
    case 'first': /* TODO */ break
    case 'running': /* TODO */ break
    case 'waiting': /* TODO */ break
    }
  },
},

Les objets créateurs de merde ont des états complexes, mais ils fonctionnent essentiellement avec de telles transitions d'état.

Utilité des transitions d'état dans le développement de jeux

J'ai appris les transitions d'état en analysant les chaînes de caractères, mais j'ai trouvé que ce développement peut également être appliqué aux jeux. Le jeu a des conditions complexes, mais il y a une forte probabilité que votre anus se perce si vous essayez de les gérer tous en même temps. Cependant, il sera plus facile de se développer en divisant et en gouvernant le comportement de l'ensemble du jeu en unités d'états.

L'utilité des transitions d'état dans le développement de jeux est certaine, et je pensais que ce que vous pouvez faire différera si vous ne le savez pas. Si vous ne le savez pas, vous finirez par faire un putain de jeu, mais si vous le savez, vous pouvez faire un putain de jeu comme un fabricant de caca.

Application aux modèles de conception

Il existe un célèbre modèle d'état GoF comme modèle de conception pour gérer l'état, mais je ne l'ai pas utilisé cette fois.

Je n'avais même pas besoin d'utiliser le générateur de merde car c'était une application assez petite, mais en fonction de la taille, il peut être nécessaire de vérifier l'utilisation de ces modèles de conception.

en conclusion

C'est un monde stressant, mais sortons beaucoup de créateurs de caca et rendons-le rafraîchissant.

c'est tout.

Recommended Posts

Une technologie qui soutient les créateurs de caca ~ La transition d'état rêve-t-elle de caca?
Technologie qui prend en charge Jupyter: Tralets (histoire d'essayer de déchiffrer)
Technologie prenant en charge le descripteur Python #pyconjp