I need a win! (HELP!) PLZ? - Printable Version +- Python Forum (https://python-forum.io) +-- Forum: Python Coding (https://python-forum.io/forum-7.html) +--- Forum: Homework (https://python-forum.io/forum-9.html) +--- Thread: I need a win! (HELP!) PLZ? (/thread-3900.html) Pages:
1
2
|
I need a win! (HELP!) PLZ? - Spihdur - Jul-06-2017 Am I doing this right or am I more lost than I think I am..... This is my first time coding in Python and this is the most I can come up with after 4 hours of research and divining the heavens.... lol import os import inspect import sys def main(): sandbox() def game_over(): print("I sense a disturbance in the code") os._exit(1) print('The code is strong in this one') def win(): # TODO fail_if_not_called_from_line_8() print(SKULLCAP) game_over() win() # This file is a coding exercise. Please follow the instructions explicitly - # you may only write code where specified. We've included reference material # with information to produce a working solution. # # # Instructions: # Using python 3 and only writing code where indicated (inside the sandbox function), # make this program execute the last line of game_over and all of the win function. # It should output: # 'This code is strong in this one' # Followed by the SKULLCAP logo def sandbox(): ##################################################### # Begin sandbox # you can only code in this sandbox ##################################################### def tracefunc(frame, event, arg, indent=[0]): if event == "call": indent[0] += 2 if frame.f_code.co_name == 'win': func = frame print(func.f_code.co_name) print ("-" * indent[0] + "> call function", frame.f_code.co_name) elif event == "return": print ("<" + "-" * indent[0], "exit function", frame.f_code.co_name) indent[0] -= 2 return tracefunc sys.settrace(tracefunc) pass ##################################################### # End sandbox ##################################################### SKULLCAP= """ __xxxxxxxxxxxxxxxx___. _gxXXXXXXXXXXXXXXXXXXXXXXXX!x_ __x!XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX!x_ ,gXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx_ ,gXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX!_ _!XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX!. gXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXs ,!XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX!. g!XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! iXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! ,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx !XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx ,XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXx !XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXi dXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX !XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXf~~~VXXXXXXXXXXXXXXXXXXXXXXXXXXvvvvvvvvXXXXXXXXXXXXXX! !XXXXXXXXXXXXXXXf` 'XXXXXXXXXXXXXXXXXXXXXf` '~XXXXXXXXXXP vXXXXXXXXXXXX! !XXXXXXXXXXXXXXXXXX! !XXXXXXXXX XXXXXXXXXXv` 'VXXXXXXXXXXXXXXX !XXXXXXXX! !XXXXXXXXX. YXXXXXXXXXXXXX! XXXXXXXXX XXXXXXXXX! ,XXXXXXXXXXXXXX VXXXXXXX! 'XXXXXXXX! ,!XXXX ~~XXXXXXX iXXXXXX~ 'XXXXXXXX ,XXXXXX XXXXXXXX! xXXXXXX! !XXXXXXX!xxxxxxs______xXXXXXXX 'YXXXXXX! ,xXXXXXXXX YXXXXXXXXXXXXXXXXXXXXXXXXXXX` VXXXXXXX!s. __gxx!XXXXXXXXXP XXXXXXXXXXXXXXXXXXXXXXXXXX! 'XXXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXXXP 'YXXXXXXXXXXXXXXXXXXXXXXX! XXXXXXXXXXXXXXXXXXXXXXXX! i !XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXX! XX !XXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXx_ iXX_,_dXXXXXXXXXXXXXXXXXXXXXXXX XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXP XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! ~vXvvvvXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXf 'VXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXvvvvvv~ 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX~ _ XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXv` -XX! !XXXXXXX~XXXXXXXXXXXXXXXXXXXXXX~ Xxi YXX '~ XXXXX XXXXXXXXXXXXXXXXXXXX` iXX` !XX! !XXX` XXXXXXXXXXXXXXXXXXXX !XX !XXX '~Vf YXXXXXXXXXXXXXP YXXX !XXX !XXX ,_ !XXP YXXXfXXXX! XXX XXXV !XXX !XX 'XXP 'YXX! ,.!XXX! !XXXi!XP XX. ,_ !XXXXXX! iXXXx X! XX! !Xx. ,. xs.,XXi !XXXXXXf XXXXXXXXXXXXXXXXX! _!XXx dXXXXXXX.iXXXXXX VXXXXXXXXXXXXXXXXXXXXXXXxxXXXXXXXXXXXXXXX! YXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXV 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX! 'XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXf VXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXf VXXXXXXXXXXXXXXXXXXXXXXXXXXXXv` ~vXXXXXXXXXXXXXXXXXXXXXXXf` ~vXXXXXXXXXXXXXXXXv~ '~VvXXXXXXXV~~ ~~ """ if __name__ == '__main__': main() RE: I need a win! (HELP!) PLZ? - nilamo - Jul-06-2017 Does it work? What output do you currently get? RE: I need a win! (HELP!) PLZ? - Spihdur - Jul-06-2017 I currently only get it to display what it is doing in the background and still get it to only get game over.... I don't understand how to get to os.exit RE: I need a win! (HELP!) PLZ? - ichabod801 - Jul-06-2017 What are you trying to do, exactly? Why are you defining functions within functions? Why are you setting a trace function? RE: I need a win! (HELP!) PLZ? - nilamo - Jul-06-2017 (Jul-06-2017, 10:02 PM)ichabod801 Wrote: What are you trying to do, exactly? Why are you defining functions within functions? Why are you setting a trace function? It looks like the assignment (only put code here!) is to re-write the inner function so it skips certain lines, specifically, to avoid the os.exit() call. RE: I need a win! (HELP!) PLZ? - ichabod801 - Jul-07-2017 (Jul-06-2017, 10:06 PM)nilamo Wrote: only put code here! Ah, I see. Missed that part. RE: I need a win! (HELP!) PLZ? - Spihdur - Jul-07-2017 These are the references I was given for the project. So am I suppose to use the pdb to bypass the os.exit as I am new to what that is? https://docs.python.org/3.6/library/inspect.html#the-interpreter-stack https://docs.python.org/3/library/sys.html#sys.settrace https://github.com/python/cpython/blob/3.6/Lib/pdb.py RE: I need a win! (HELP!) PLZ? - nilamo - Jul-07-2017 Are there any rules as to what you can/can't do? You could just re-bind os._exit so it does nothing... >>> import os >>> def run_me(): ... print("spam") ... os._exit(1) ... print("shouldn't happen") ... >>> def main(): ... exit = os._exit ... os._exit = lambda status: None ... run_me() ... os._exit = exit ... >>> main() spam shouldn't happen RE: I need a win! (HELP!) PLZ? - Spihdur - Jul-07-2017 I have to run run_me() skip print("spam") and os._exit() in order to print ("shouldn't happen") and run main() and print ("I ran") import os >>> def run_me(): ... print("spam") ... os._exit(1) ... print("shouldn't happen") ... >>> def main(): ... exit = os._exit ... os._exit = lambda status: None ... run_me() ... os._exit = exit ... print("I ran") >>> main() spam shouldn't happen I am just having a hard time figuring out how to skip the first print line and os._exit so I can get win() to run. RE: I need a win! (HELP!) PLZ? - nilamo - Jul-07-2017 (Jul-07-2017, 05:36 PM)nilamo Wrote: Are there any rules as to what you can/can't do?...because you can also override print() the same way... |