Skip to content

Instantly share code, notes, and snippets.

@johnwheeler
Created August 24, 2016 22:38
Show Gist options
  • Save johnwheeler/5e8d884ffa1f9d7e348655f160f29b29 to your computer and use it in GitHub Desktop.
Save johnwheeler/5e8d884ffa1f9d7e348655f160f29b29 to your computer and use it in GitHub Desktop.
memory_game.py
import logging
from random import randint
from flask import Flask, render_template
from flask_ask import Ask, statement, question, session
app = Flask(__name__)
ask = Ask(app, "/")
logging.getLogger("flask_ask").setLevel(logging.DEBUG)
@ask.launch
def new_game():
welcome_msg = render_template('welcome')
return question(welcome_msg)
@ask.intent("YesIntent")
def next_round():
numbers = [randint(0, 9) for _ in range(3)]
round_msg = render_template('round', numbers=numbers)
session.attributes['numbers'] = numbers[::-1] # reverse
return question(round_msg)
@ask.intent("AnswerIntent", convert={'first': int, 'second': int, 'third': int})
def answer(first, second, third):
winning_numbers = session.attributes['numbers']
if [first, second, third] == winning_numbers:
score = session.attributes.get('score', 0)
session.attributes['score'] = score + 1
return next_round()
else:
return game_over()
@ask.intent("AMAZON.StopIntent")
def game_over():
score = session.attributes.get('score', 0)
game_over_msg = render_template('game_over', score=score)
return statement(game_over_msg)
@ask.session_ended
def session_ended():
return "", 200
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment