Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import flask
- import json
- import math
- from flask import request, jsonify, render_template
- app = flask.Flask(__name__) # creating an instance of the Flask class
- app.config['SEND_FILE_MAX_AGE_DEFAULT'] = 0
- dungeon1 = [
- "#######",
- "#.....#",
- "#.###.#",
- "#.#G#.#",
- "#.#.#.#",
- "#.#...#",
- "#@#####"]
- dungeon2 = [
- "##########",
- "#.....####",
- "#.###x##.#",
- "#.#G#.##x#",
- "#.#.#....#",
- "#x..#x##x#",
- "#####.####",
- "##.......#",
- "#.x#.###x#",
- "####@#####"]
- gameOn = False
- playerDir = "up"
- playerDir2 = "up"
- playerPos = [6,1]
- playerPos2 = [9,4]
- playerHP = 5
- def movePos(pos,dir):
- if dir == "up":
- return [pos[0]-1,pos[1]]
- if dir == "left":
- return [pos[0],pos[1]-1]
- if dir == "right":
- return [pos[0],pos[1]+1]
- if dir == "down":
- return [pos[0]+1,pos[1]]
- def initGame():
- global playerDir
- global playerDir2
- global playerPos
- global playerPos2
- global playerHP
- global gameOn
- gameOn = True
- playerDir = "up"
- playerDir2 = "up"
- playerPos = [6,1]
- playerPos2 = [9,4]
- playerHP = 5
- def initGameHard():
- global playerDir
- global playerDir2
- global playerPos
- global playerPos2
- global playerHP
- global gameOn
- gameOn = True
- playerDir = "up"
- playerDir2 = "up"
- playerPos = [9,4]
- playerHP = 5
- def play(dungeon,move):
- global playerDir
- global playerPos
- global playerHP
- global gameOn
- steppables = [".","@","G","x"]
- if move == "forward":
- newPos = movePos(playerPos,playerDir)
- if newPos[0] < 0 or newPos[1] < 0 or newPos[0] >= len(dungeon) or newPos[1] >= len(dungeon[0]):
- return "You give up trying to find the treasure and leave the maze."
- if dungeon[newPos[0]][newPos[1]] in steppables:
- playerPos = newPos
- if dungeon[playerPos[0]][playerPos[1]] == "G":
- gameOn = False
- return "You found the treasure!"
- elif dungeon[playerPos[0]][playerPos[1]] == "x" and playerHP > 0:
- playerHP -= 1
- if playerHP == 0:
- gameOn = False
- return "You died."
- return "You step on a trap!"
- elif move == "left":
- if playerDir == "up":
- playerDir = "left"
- elif playerDir == "left":
- playerDir = "down"
- elif playerDir == "down":
- playerDir = "right"
- elif playerDir == "right":
- playerDir = "up"
- elif move == "right":
- if playerDir == "up":
- playerDir = "right"
- elif playerDir == "left":
- playerDir = "up"
- elif playerDir == "down":
- playerDir = "left"
- elif playerDir == "right":
- playerDir = "down"
- else:
- "Error."
- nextPos = movePos(playerPos,playerDir)
- if nextPos[0] < 0 or nextPos[1] < 0 or nextPos[0] >= len(dungeon) or nextPos[1] >= len(dungeon[0]):
- return "You see the exit to the dungeon."
- if dungeon[nextPos[0]][nextPos[1]] == "." or dungeon[nextPos[0]][nextPos[1]] == "@" or dungeon[nextPos[0]][nextPos[1]] == "x":
- return "You see a corridor."
- if dungeon[nextPos[0]][nextPos[1]] == "#":
- return "You see a wall."
- if dungeon[nextPos[0]][nextPos[1]] == "G":
- return "You see the treasure."
- return "Error."
- @app.route('/calculator')
- def calc():
- return render_template("index.html")
- @app.route('/game')
- def game():
- return render_template("game.html")
- @app.route('/api/start')
- def start():
- initGame()
- return jsonify({"Message": "You find yourself in a dungeon. You remember coming here to look for a hidden treasure in the maze."})
- @app.route('/api/startHard')
- def startHard():
- initGameHard()
- return jsonify({"Message": "You find yourself in a dungeon. You remember coming here to look for a hidden treasure in the maze.",
- "Hitpoints":playerHP})
- @app.route('/api/play', methods = ['POST'])
- def playTurn():
- global dungeon1
- global gameOn
- if not gameOn:
- return jsonify({"Message":"Error."})
- dungeon = dungeon1
- print(request)
- data = request.get_json()
- print(data)
- move = data['move']
- result = play(dungeon,move)
- return jsonify({"Message":result})
- @app.route('/api/playHard', methods = ['POST'])
- def playTurnHard():
- global dungeon2
- global playerHP
- global gameOn
- if not gameOn:
- return jsonify({"Message":"The game is not started."})
- dungeon = dungeon2
- data = request.get_json()
- move = data['move']
- result = play(dungeon,move)
- return jsonify({"Message":result,"Hitpoints":playerHP, "pos":playerPos})
- if __name__ == '__main__':
- app.run(debug=True, host='0.0.0.0', port= 8080)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement