Beispiel #1
0
class PulpConsole(cmd.Cmd):

    def __init__(self):
        self.__my_pulp = Pulp()
        self.__my_league = None
        self.__my_input_validator = InputValidator()
        cmd.Cmd.__init__(self)
        self.prompt = 'Pulp > '

    def get_my_league(self):
        return self.__my_league

    def create_leader(self, argument):

        try:
            if self.__my_league.has_leader() is True:
                raise MyException("League already has a Leader.")
            elif self.__my_league.is_roster_full() is True:
                raise MyException("League roster is full.")
            else:
                argument = "Leader " + argument
                validator_output = \
                    self.__my_input_validator.process_input(argument)
                if validator_output is None:
                    raise MyException("")
        except MyException as err:
            print(err)
            print("No Leader created.")
        else:
            name = validator_output[0][1]
            skills_array = validator_output[1]
            abilities_array = validator_output[2]
            a_character = self.__my_league.add_character(
                "Leader", name,
                int(skills_array[0][0]), int(skills_array[0][1]),
                int(skills_array[1][0]), int(skills_array[1][1]),
                int(skills_array[2][0]), int(skills_array[2][1]),
                int(skills_array[3][0]), int(skills_array[3][1]),
                int(skills_array[4][0]), int(skills_array[4][1]),
                int(skills_array[5][0]), int(skills_array[5][1]),
                int(skills_array[6][0]), int(skills_array[6][1]))
            for ability in abilities_array:
                a_character.add_ability(ability)
            print("Leader created: " + a_character.get_name())

    def create_sidekick(self, argument):

        try:
            if self.__my_league.has_sidekick() is True:
                raise MyException("League already has a Sidekick.")
            elif self.__my_league.is_roster_full() is True:
                raise MyException("League roster is full.")
            else:
                argument = "Sidekick " + argument
                validator_output = \
                    self.__my_input_validator.process_input(argument)
                if validator_output is None:
                    raise MyException("")
        except MyException as err:
            print(err)
            print("No Sidekick created.")
        else:
            name = validator_output[0][1]
            skills_array = validator_output[1]
            abilities_array = validator_output[2]
            a_character = self.__my_league.add_character(
                "Sidekick", name,
                int(skills_array[0][0]), int(skills_array[0][1]),
                int(skills_array[1][0]), int(skills_array[1][1]),
                int(skills_array[2][0]), int(skills_array[2][1]),
                int(skills_array[3][0]), int(skills_array[3][1]),
                int(skills_array[4][0]), int(skills_array[4][1]),
                int(skills_array[5][0]), int(skills_array[5][1]),
                int(skills_array[6][0]), int(skills_array[6][1]))
            for ability in abilities_array:
                a_character.add_ability(ability)
            print("Sidekick created: " + a_character.get_name())

    def create_ally(self, argument):
        try:
            if self.__my_league.is_roster_full() is True:
                raise MyException("League roster is full.")
            else:
                argument = "Ally " + argument
                validator_output = \
                    self.__my_input_validator.process_input(argument)
                if validator_output is None:
                    raise MyException("")
        except MyException as err:
            print(err)
            print("No Ally created.")
        else:
            name = validator_output[0][1]
            skills_array = validator_output[1]
            abilities_array = validator_output[2]
            a_character = self.__my_league.add_character(
                "Ally", name,
                int(skills_array[0][0]), int(skills_array[0][1]),
                int(skills_array[1][0]), int(skills_array[1][1]),
                int(skills_array[2][0]), int(skills_array[2][1]),
                int(skills_array[3][0]), int(skills_array[3][1]),
                int(skills_array[4][0]), int(skills_array[4][1]),
                int(skills_array[5][0]), int(skills_array[5][1]),
                int(skills_array[6][0]), int(skills_array[6][1]))
            for ability in abilities_array:
                a_character.add_ability(ability)
            print("Ally created: " + a_character.get_name())

    def create_follower(self, argument):
        try:
            if self.__my_league.is_roster_full() is True:
                raise MyException("League roster is full.")
            else:
                argument = "Follower " + argument
                validator_output = \
                    self.__my_input_validator.process_input(argument)
                if validator_output is None:
                    raise MyException("")
        except MyException as err:
            print(err)
            print("No Follower created.")
        else:
            name = validator_output[0][1]
            skills_array = validator_output[1]
            abilities_array = validator_output[2]
            a_character = self.__my_league.add_character(
                "Follower", name,
                int(skills_array[0][0]), int(skills_array[0][1]),
                int(skills_array[1][0]), int(skills_array[1][1]),
                int(skills_array[2][0]), int(skills_array[2][1]),
                int(skills_array[3][0]), int(skills_array[3][1]),
                int(skills_array[4][0]), int(skills_array[4][1]),
                int(skills_array[5][0]), int(skills_array[5][1]),
                int(skills_array[6][0]), int(skills_array[6][1]))
            for ability in abilities_array:
                a_character.add_ability(ability)
            print("Follower created: " + a_character.get_name())

    def do_League(self, argument):
        a_league = self.__my_pulp.add_league(argument)
        self.__my_league = a_league
        self.__my_league.display()

    def help_League(self):
        print("syntax: League [name]",)
        print("-- creates a league \n")
        print("   A league consists of various characters. Each league "
              "must include one (and only one) Leader.")
        print("   A Leader may or may not be accompanied by a single "
              "Sidekick. A League may include many Allies and Followers.")
        print("   The number of characters is determined by filling a "
              "league roster. A roster has a maximum of 10 slots.")
        print("   A Leader does not take any slots on the roster. A "
              "Sidekick takes 3 slots. An Ally takes 2 slots. A "
              "Follower takes 1 slot.")
        print("   Players are encouraged to include 4 to 6 characters "
              "in their first Leagues.")

    def do_Leader(self, argument):
        if self.__my_league is not None:
            self.create_leader(argument)
        else:
            print("No league exists yet. Leader not created.")

    def help_Leader(self):
        print("syntax: Leader [name]",)
        print("-- creates a Leader")

    def do_Sidekick(self, argument):
        if self.__my_league is not None:
            self.create_sidekick(argument)
        else:
            print("No league exists yet. Sidekick not created.")

    def help_Sidekick(self):
        print("syntax: Sidekick [name]",)
        print("-- creates a Sidekick")

    def do_Ally(self, argument):
        if self.__my_league is not None:
            self.create_ally(argument)
        else:
            print("No league exists yet. Ally not created.")

    def help_Ally(self):
        print("syntax: Ally [name]",)
        print("-- creates an Ally")

    def do_Follower(self, argument):
        if self.__my_league is not None:
            self.create_follower(argument)
        else:
            print("No league exists yet. Follower not created.")

    def help_Follower(self):
        print("syntax: Follower [name]",)
        print("-- creates a Follower")

    def do_Display(self, argument):
        if self.__my_league is not None:
            self.__my_league.display()
        else:
            print("No league exists yet.")

    def help_Display(self):
        print("syntax: display",)
        print("-- displays a league")

    def do_Quit(self, arg):
        sys.exit(1)

    def help_Quit(self):
        print("syntax: quit",)
        print("-- terminates the console")
Beispiel #2
0
 def __init__(self):
     self.__my_pulp = Pulp()
     self.__my_league = None
     self.__my_input_validator = InputValidator()
     cmd.Cmd.__init__(self)
     self.prompt = 'Pulp > '
Beispiel #3
0
__author__ = 'himanabdollahpouri'

import NameGenerator as ng
import InputValidator as iv

gender = raw_input(
    "Do you want boys names or girls names? b for boys and g for girls ")

# Validating the entered gender in order to only accept 'g' or 'b'
while iv.validateGender(gender):
    gender = raw_input("Wrong input! Please either enter b or g")

minL = input('Enter minimum Length for the names: ')
while iv.validateMinimumLength(minL):
    minL = input(
        'Min length should be at least 1. Enter minimum Length for the names: '
    )

maxL = input('Enter maximum Length for the names: ')
while iv.validateMaximumLength(maxL):
    maxL = input(
        'Too big! Enter smaller length! less than 20! Enter maximum Length for the names: '
    )

order = input('Enter the markove model order: ')
while iv.validateOrder(order):
    order = input(
        'Please set the order higher than zero. Enter the markove model order: '
    )

count = input('how many names you want? ')
Beispiel #4
0
#
# FILENAME = path to file with polynomial expression
# LIMIT_DOWN = lower integration limit
# LIMIT_UP = upper integration limit
# STEP = size of integration step

from IntegrationEngine import *
from InputValidator import *
from InputReader import *
from scipy import integrate
import sys

print "Welcome to >>INTEGRATOR 2000<<"

reader = InputReader(sys.argv)  # get input
validator = InputValidator(reader.data())  # initialize validator
validator.run()  # validate input

if validator.isvalid:  # if input is valid, proceed with integral calculation
    func = validator.function()
    opts = validator.options()

    integrator = IntegrationEngine('trapez')  # initialization of an engine
    myintegral = integrator.integrate(func, *opts)  # calculate integral using own algorithm
    scipyintegral = integrate.quad(func, opts[0], opts[1]) # calculate integral using scipy library

    print 'Integral calculated with own algorithm        :\t' + str(myintegral)
    print 'Integral calculated with scipy.integrate.quad :\t' + str(scipyintegral[0])
    print 'Relative difference amounts ' + str(100*(myintegral-scipyintegral[0])/scipyintegral[0]) + '%'

    print "Thank you for using >>INTEGRATOR 2000<<  :-)"
Beispiel #5
0
 def __init__(self):
     self.inputvaludator = InputValidator()
     self.inputreader = InputReader()
     self.solver = Solver()
     print("Witaj w programie!")
     self.run()
Beispiel #6
0
class ApplicationMgr:
    #konstruktor
    def __init__(self):
        self.inputvaludator = InputValidator()
        self.inputreader = InputReader()
        self.solver = Solver()
        print("Witaj w programie!")
        self.run()

    def history(self):
        try:
            fp = open("history.txt", "r")
            lines = fp.readlines()
            for line in lines:
                print(line, end="")
            fp.close()
        except FileNotFoundError:
            print("Brak historii")
            return

    def run(self):
        menuinput = ""
        option = 1
        equations_list = []
        #główna pętla programu
        while (True):

            #zmienne odpowiedzialne za działanie pętli w których wczytywane są równania
            eq1_loop, eq2_loop = True, True
            #listy zawierające współczynniki równania
            eq1, eq2 = [], []
            print("Wybierz --1-- aby rozwiązać równanie")
            print("Wybierz --2-- aby wyswietlic historie rozwiazan")
            print("Wybierz --q-- aby wyjść")
            #wczytywanie opcji wybranej przez yżytkownika
            menuinput = self.inputreader.menu_loader()
            #print(menuinput)

            #wybór działania w zależności od wyboru użytkownika
            if (menuinput == 'q'):
                break
            elif (menuinput == str(2)):
                self.history()
            elif (menuinput != str(1)):
                print("Nie ma takiej opcji!")

            else:
                #pętla w której użytkownik podaje pierwsze równanie
                while (eq1_loop):
                    print("Pierwsze równanie:")
                    #wczytywanie współczynników rownania
                    eq1 = self.inputreader.equation_loader()
                    print("Wczytano równanie: " + str(eq1[0]) + "x + " +
                          str(eq1[1]) + "y = " + str(eq1[2]))
                    print("Zatwierdź równanie lub podaj je jeszcze raz")
                    #wczytywanie działania podanego przez użytkownika
                    option = self.inputreader.eq_option_loader()
                    #print(option)
                    if (option == str(1)):
                        eq1_loop = False
                #pętla w ktorej użytkownik podaje drugie równanie
                while (eq2_loop):
                    print("Drugie równanie:")
                    eq2 = self.inputreader.equation_loader()
                    print("Wczytano równanie: " + str(eq2[0]) + "x + " +
                          str(eq2[1]) + "y = " + str(eq2[2]))
                    print("Zatwierdź równanie lub podaj je jeszcze raz")
                    option = self.inputreader.eq_option_loader()
                    #print(option)
                    if (option == str(1)):
                        eq2_loop = False
                print("Wczytane równania")
                #wypis wczytanych równań
                self.inputvaludator.print_equation(eq1)
                self.inputvaludator.print_equation(eq2)

                #zapis rozwiązania
                result = self.solver.solve(eq1, eq2)
                #wychwycenie gdy podany układ ma nieskończenie wiele rozwiązań lub jest sprzeczny
                if (result is -1):
                    print(
                        "Układ ma nieskończenie wiele rozwiązań lub jest sprzeczny"
                    )
                else:
                    #wypis rozwiązania układu
                    self.inputvaludator.print_result(result)
                    #generowanie wykresu
                    self.solver.plot_chart(eq1, eq2)
                    #zapis do historii działania programu
                    self.solver.save_data(eq1, eq2, result)

        #komunikat na zakończenie programu
        print("Żegnaj!")