Tengo un poco de experiencia en el desarrollo de videojuegos, así que tiendo a centrarme en el problema de definir “diversión” primero.
El éxito es divertido. Ganar es divertido. Pero esto es solo un comienzo: tiene que ser un éxito “ganado con esfuerzo” para que sea realmente divertido. Tienes que sentir que realmente trabajaste para ello. El éxito que simplemente se te entrega no es muy divertido.
Hay algunas estrategias para proporcionar de manera confiable el zumbido emocional que obtienes del éxito. Notarás que todo esto se aplica a la resolución de problemas de programación también por diversión, especialmente en un contexto educativo.
- ¿Cómo publicar un trabajo de investigación en informática? Quiero investigar en algoritmos. Por donde puedo empezar
- ¿Recomendaría ITU sobre Fast para alguien que quiera publicar en su licenciatura? ¿Qué hay de NUST?
- Tengo interés en la programación de computadoras, algoritmos y estructuras de datos. ¿Puedo publicar algún trabajo de investigación en estas áreas? En caso afirmativo, ¿qué debo hacer?
- ¿Cuáles son las tareas diarias de un investigador de inteligencia artificial?
- ¿Qué tipo de técnicas de visión por computadora que aún no se exploran para la conducción autónoma?
1. Dígales la respuesta sin que se den cuenta. Use señales psicológicas que los orienten en la dirección correcta, pero evite decirles directamente.
En los juegos, esto generalmente se hace usando formas que representan la acción (como una espiral para indicar que necesitas usar un ataque giratorio o ver a otro personaje cometer un error justo cuando llega el jugador). En los problemas de programación, puede elegir cuidadosamente el tema para insinuar el tipo correcto de algoritmo, o puede poner un problema fácil antes del problema más difícil, donde el método para resolver el fácil está relacionado con una solución correcta para el difícil .
2. Incremente gradualmente la dificultad. Desea dejar que la sensación de éxito se desarrolle gradualmente. Esto puede generar la confianza y la resistencia necesarias para abordar un problema realmente difícil. Los problemas difíciles tienen la mayor recompensa emocional, pero el jugador / programador necesita tener la confianza necesaria para seguir intentándolo.
3. Oculte las cosas realmente difíciles como “crédito extra”. La mayoría de los juegos tienen una línea de meta que les permite a las personas sentir que han “vencido el juego”. Casi cualquier persona de habilidad promedio puede alcanzar esa línea. Pero la mayoría de los juegos modernos también tienen muchos desafíos opcionales, que es donde sus jugadores / programadores más talentosos obtendrán la mayor emoción.
En realidad estás haciendo dos cosas importantes aquí. Primero, estás inoculando contra la frustración; Ya han ganado el juego, por lo que saben que son un ganador antes de intentar las cosas opcionales. En segundo lugar, estás mejorando la sensación de logro cuando y si logran resolver cualquiera de los extras, porque el jugador cree que esta área es muy difícil.
4. El tema importa. Es cierto que los videojuegos en realidad solo están manipulando una pila compleja de números, pero * se siente * como si estuvieras conquistando el mundo / salvando a la niña / destruyendo a los malos. Los problemas son más divertidos cuando no son estériles. Incluso algo tan simple como competir para resolver los problemas puede ayudar mucho. También puede asignar un tema a los algoritmos en torno a escenarios imaginarios (apropiados para la audiencia, por supuesto). Si su audiencia es lo suficientemente hábil, el resultado en sí puede ser divertido (generar gráficos geniales o sintetizar sonidos interesantes o reconocer la escritura a mano, por ejemplo).
Me doy cuenta de que esta respuesta no proporciona muchos algoritmos específicos que se pueden programar. Pero, sinceramente, casi cualquier algoritmo puede ser divertido de programar, siempre que sea un desafío adecuado y atrape la imaginación.