def redeem_processed(): if "username" not in session: return redirect(url_for("login")) # Make sure we have all the required fields if all(keys in ["email", "currency", "amount"] for keys in request.form.keys()): # Make sure we are withdrawing integers only if "." in str(request.form["amount"]): flash("Please withdraw WHOLE NUMBERS MAWDollars only") return redirect(url_for(".redeem")) requested_MAWDollars = int(request.form["amount"]) current_balance = get_balance(session["username"]) if current_balance < requested_MAWDollars: flash( f"You do not have enough MAWDollars. (Requested {request.form['amount']} MAWDollar(s). Have {current_balance} MAWDollar(s))" ) return redirect(url_for(".redeem")) else: update_balance( session["username"], get_balance(session["username"]) - requested_MAWDollars) amount_currency = MAWDollars_to_currency(requested_MAWDollars, request.form["currency"]) return render_template("payment/redeem_result.html", amount_MAWD=requested_MAWDollars, amount_currency=amount_currency, currency=request.form["currency"]) else: flash("Please fill out al fields") return redirect(url_for(".redeem"))
def pay_processed(): if "username" not in session: return redirect(url_for("login")) if "go_back" in request.form: if "current_game" in session: return redirect(url_for(session["current_game"])) else: return redirect(url_for("game")) # Make sure user filled out all categories if all(keys in ["card_number", "month", "year", "cvv", "pay_amount"] for keys in request.form.keys()): # All fields filled out update_balance( session["username"], get_balance(session["username"]) + int(request.form["pay_amount"])) return render_template("payment/result.html", pay_amount=request.form["pay_amount"]) else: flash("Please fill out all fields") return redirect(url_for(".pay"))
def bet(): if "username" not in session: return redirect(url_for("login")) print("Choosing amount to bet on") if "current_game" not in session: return redirect(url_for("game")) # If user leaves midgame to bet page, we do not want to double charge if session["paid"]: return redirect(url_for(session["current_game"])) if "add_funds" in request.args: print("User is adding funds:") return redirect(url_for("payment.pay")) elif "spending_amount" in request.args: print("User is spending: " + request.args["spending_amount"]) new_balance = database_query.get_balance(session["username"]) - int( request.args["spending_amount"]) if new_balance < 0: print("Not enough in user's balance") flash("Not enough money in your account, please add more") else: print("Entering " + session["current_game"]) database_query.update_balance(session["username"], new_balance) session["paid"] = True session["bet_amount"] = int(request.args["spending_amount"]) if session["current_game"] == "to21": return redirect(url_for("to21initilize")) return redirect(url_for(session["current_game"])) elif "go_back" in request.args: print("Did not pay. Leaving " + session["current_game"]) del session["current_game"] return redirect(url_for("game")) elif "instruction" in request.args: print("Request information for " + session["current_game"]) return redirect(url_for("instruction")) return render_template("bet.html", game=session["current_game"])
def to21results(): if "username" not in session: return redirect(url_for("login")) del session["current_game"] session["paid"] = False #VARIABLES deckid = help.getdeckid() userCurrentAmount = help.getUserAmt() userNumCards = help.getUserNumCards() userTemp = 0 dealerTemp = 0 additionalCards = 0 #dealer "ai" while help.getDealerAmt() < 18: cardData = help.drawCard(deckid) cardValue = help.getValue(cardData) cardImage = help.getImage(cardData) newVal = cardValue if newVal == 1: if (userCurrentAmount + 10) <= 21: newVal = 11 else: newVal = 1 session["dealerHand"].append(cardImage) newVal += help.getDealerAmt() numCards = help.getDealerNumCards() numCards += 1 command = "UPDATE gameinfo SET dealerTotal = '{}', dealerNumCards = '{}';".format( newVal, numCards) help.runsqlcommand(command) additionalCards += 1 additionalCards = str(additionalCards) dealerCurrentAmount = help.getDealerAmt() dealerNumCards = help.getDealerNumCards() #CALCULATE AUTOMATIC WINS AND LOSSES #if user and dealer exceed 21 if userCurrentAmount > 21 and dealerCurrentAmount > 21: message = "Y'all tied! Everyone keeps their MAWDollars." current_balance = database_query.get_balance(session["username"]) new_balance = current_balance + session["bet_amount"] database_query.update_balance(session["username"], new_balance) print("both parties over 21") return render_template("to21results.html", userCards=session["userHand"], dealerCards=session["dealerHand"], ac=additionalCards, message=message, UCA=userCurrentAmount, DCA=dealerCurrentAmount) #if dealer exceeds 21 if userCurrentAmount <= 21 and dealerCurrentAmount > 21: message = "You won and doubled your wager!" current_balance = database_query.get_balance(session["username"]) new_balance = current_balance + session["bet_amount"] + session[ "bet_amount"] database_query.update_balance(session["username"], new_balance) print("dealer over 21") return render_template("to21results.html", userCards=session["userHand"], dealerCards=session["dealerHand"], ac=additionalCards, message=message, UCA=userCurrentAmount, DCA=dealerCurrentAmount) #if user exceeds 21 if userCurrentAmount > 21 and dealerCurrentAmount <= 21: message = "You lost the game and your wager!" current_balance = database_query.get_balance(session["username"]) bet_amount = session["bet_amount"] new_balance = current_balance database_query.update_balance(session["username"], new_balance) print("user over 21") return render_template("to21results.html", userCards=session["userHand"], dealerCards=session["dealerHand"], ac=additionalCards, message=message, UCA=userCurrentAmount, DCA=dealerCurrentAmount) #CALCULATE IF BOTH PARTIES FALL UNDER 21 if userCurrentAmount < 21: userTemp = 21 - userCurrentAmount if dealerCurrentAmount < 21: dealerTemp = 21 - dealerCurrentAmount #simple tie if userTemp == dealerTemp: message = "Y'all tied! Everyone keeps their MAWDollars." current_balance = database_query.get_balance(session["username"]) bet_amount = session["bet_amount"] new_balance = current_balance + bet_amount database_query.update_balance(session["username"], new_balance) print("tie, same score") return render_template("to21results.html", userCards=session["userHand"], dealerCards=session["dealerHand"], ac=additionalCards, message=message, UCA=userCurrentAmount, DCA=dealerCurrentAmount) #user wins if userTemp < dealerTemp: message = "You won and doubled your wager!" current_balance = database_query.get_balance(session["username"]) bet_amount = session["bet_amount"] new_balance = current_balance + bet_amount + bet_amount database_query.update_balance(session["username"], new_balance) print("user wins") return render_template("to21results.html", userCards=session["userHand"], dealerCards=session["dealerHand"], ac=additionalCards, message=message, UCA=userCurrentAmount, DCA=dealerCurrentAmount) #dealer wins else: message = "You lost the game and your wager!" current_balance = database_query.get_balance(session["username"]) bet_amount = session["bet_amount"] new_balance = current_balance database_query.update_balance(session["username"], new_balance) print("dealer wins") return render_template("to21results.html", userCards=session["userHand"], dealerCards=session["dealerHand"], ac=additionalCards, message=message, UCA=userCurrentAmount, DCA=dealerCurrentAmount)
dealerCards=session["dealerHand"], ac=additionalCards, message=message, UCA=userCurrentAmount, DCA=dealerCurrentAmount) #dealer wins else: message = "You lost the game and your wager!" current_balance = database_query.get_balance(session["username"]) bet_amount = session["bet_amount"] new_balance = current_balance database_query.update_balance(session["username"], new_balance) print("dealer wins") return render_template("to21results.html", userCards=session["userHand"], dealerCards=session["dealerHand"], ac=additionalCards, message=message, UCA=userCurrentAmount, DCA=dealerCurrentAmount) if __name__ == "__main__": app.debug = True app.jinja_env.globals.update( get_balance=lambda: database_query.get_balance(session["username"])) app.run()
def pokemon_result(): # Must be logged in to play if "username" not in session: return redirect(url_for("login")) # Make sure the user is playing the pokemon game if "current_game" not in session or session["current_game"] != "pokemon_game.pokemon": # User did not select a game or user is playing another game return redirect(url_for(".pokemon")) # User must select a pokemon to reach this page if len(request.form) != 1 or "pokemon_selected" not in request.form: return redirect(url_for(".pokemon")) if ("game_state" not in session) or session["game_state"] != "selecting": return redirect(url_for(".pokemon")) session["game_state"] = "result" user_selected_pokemon = get_pokemon(request.form["pokemon_selected"]) # Make sure the pokemon selected is one that the user was given if user_selected_pokemon.name not in session["user_pokemons"]: print("Pokemon {} was not given to user".format(user_selected_pokemon.name)) del session["game_state"] session["paid"] = False session["bet_amount"] = 0 del session["computer_selected_pokemon"] del session["computer_pokemons"] del session["user_pokemons"] del session["current_game"] return "Nice try cheating, still took your money though" else: user_change_balance = user_balance_lost(user_selected_pokemon.name, session["computer_selected_pokemon"], session["bet_amount"]) user_current_balance = get_balance(session["username"]) if user_change_balance == 0: winner_message = "Tie!" balance_message = f"The {session['bet_amount']} MAWDollars you bet was returned" new_balance = user_current_balance + session["bet_amount"] elif user_change_balance > 0: winner_message = "You won!" # If user won, he/she gets back what was bet and what was won new_balance = user_current_balance + session["bet_amount"] + user_change_balance balance_message = f"You won {user_change_balance}" else: winner_message = "You lost" # If user lost, he/she lost what was bet and what was lost new_balance = user_current_balance + user_change_balance balance_message = f"You lost {-user_change_balance}" print("User old balance: {}\nUser new Balance: {}".format(user_current_balance, new_balance)) update_balance(session["username"], new_balance) computer_slected_pokemon = get_pokemon(session["computer_selected_pokemon"]) computer_pokemons = [get_pokemon(name) for name in session["computer_pokemons"]] user_pokemons = [get_pokemon(name) for name in session["user_pokemons"]] del session["game_state"] session["paid"] = False session["bet_amount"] = 0 del session["computer_selected_pokemon"] del session["computer_pokemons"] del session["user_pokemons"] del session["current_game"] return render_template("pokemon/result.html", computer_pokemons=computer_pokemons, computer_selected_pokemon=computer_slected_pokemon, user_pokemons=user_pokemons, user_selected_pokemon=user_selected_pokemon, winner_message=winner_message, balance_message=balance_message)
def rickandmorty_result(): # print(session["correct_ans"]) # print(request.form["answer"]) # Must be logged in to play if "username" not in session: return redirect(url_for("login")) # Make sure the user is playing the pokemon game if "current_game" not in session or session[ "current_game"] != "rickandmorty_game.rickandmorty": # User did not select a game or user is playing another game return redirect(url_for(".rickandmorty")) if ("game_state" not in session) or session["game_state"] != "selecting": return redirect(url_for(".rickandmorty")) if len(request.form) != 3: return redirect(url_for(".rickandmorty")) session["game_state"] = "result" user_ans_1 = request.form["answer"] user_ans_2 = request.form["answer1"] user_ans_3 = request.form["answer2"] user_ans_list = [user_ans_1, user_ans_2, user_ans_3] user_change_balance = user_balance_lost_rickandmorty( user_ans_list, session["correct_ans"], session["bet_amount"]) user_current_balance = get_balance(session["username"]) bet_amt = session["bet_amount"] half_bet_amt = session["bet_amount"] * .5 if user_change_balance == session["bet_amount"]: winner_message = "You broke even!" balance_message = f"The {session['bet_amount']} MAWDollars you bet was returned" new_balance = user_current_balance + session["bet_amount"] elif user_change_balance > session["bet_amount"]: winner_message = "You won!" # If user won, he/she gets back what was bet and what was won new_balance = user_current_balance + user_change_balance balance_message = f"You won {user_change_balance} MAWDollars" elif user_change_balance == 0: winner_message = "You lost" new_balance = user_current_balance + user_change_balance balance_message = f"You lost {bet_amt} MAWDollars" else: winner_message = "You lost" # If user lost, he/she lost what was bet and what was lost new_balance = user_current_balance + user_change_balance balance_message = f"You lost {half_bet_amt} MAWDollars" print("User old balance: {}\nUser new Balance: {}".format( user_current_balance, new_balance)) update_balance(session["username"], new_balance) correct_answers = session["correct_ans"] character_images = [ get_character_image(name) for name in session["correct_ans"] ] del session["game_state"] session["paid"] = False session["bet_amount"] = 0 del session["correct_ans"] del session["correct_ans_index"] del session["wrong_ans"] del session["current_game"] return render_template("rickandmorty/result.html", winner_message=winner_message, balance_message=balance_message, correct_ans=correct_answers, images=character_images)