See through a Gm's eyes! -
imported_Kitiara - 01-10-2008
I congrats galens for his effort. he wanted to help the server.
but the only thing i tried to said him is just if he is going to learn something that learns c# so he can help more the server
go ahead galens u can do it.
See through a Gm's eyes! - Galens - 01-10-2008
Oh don't misunderstand me. I have NO intention of scripting for ANY shard.
I don't want to learn C yet. Python is a very good demonstration and program to learn with. Its claimed to be easier than C, Java, etc.
Something like sqeak, perl, etc.
I know Run UO uses C.
C is my last project. I still have the other, diverse programs, out there to play with. I give it a year, maybe a slight bit more before I move on from Python, maybe.
See through a Gm's eyes! -
imported_KYO1 - 01-11-2008
galen doesnt play anymore =/
See through a Gm's eyes! - Galens - 01-11-2008
KYO1 Wrote:galen doesnt play anymore =/
I do TOOO!!!! I'm just... MIA, YEAH THATS IT! MISSING IN ACTION!
I'm transmitting this message as we speak from a bamboo cage out in a swamp in Vietnam!!! Honest! I don't even know how I am messaging you, maybe its my lub for all you players!
:icon_twisted::icon_twisted:
See through a Gm's eyes! -
imported_Kamos - 01-11-2008
I tested your program and not sure if it's the way you want but when I type: "buy" when it says "I have a 'sword' and a 'shield' for sale! Which would you like to 'buy' some sir?" it prints "Care to buy anything else?". Shouldn't that be only after the purchase?
Nice start for only having learned for 6 hours. Keep it up
I'm not expert programmer or anything just used to try out some stuff for fun like you are doing now. Anyway, If you are still improving it to learn here's some food for the thought.
1) Remove some of the unneeded variables. Your while loops use boolean variables to break out of them. You can clean it up a bit by just making it endless loop and breaking out using
break statement whenever needed. No change in functionality. Just easier for the reader of your code.
Code:
while 1:
if selection == 1:
# do stuff here
break
elif selection == 2:
# do some other stuff here
break
2) Error checking for user input. What if user decides to type for example "plaa" to a question that accepts integer variables (for example the first question)? Program goes nuts. Exceptions are easy way to handle those situations more gracefully and have your program deal with the situation:
Code:
try:
selection = int(raw_input("Please choose a reward 1 or 2.\n"))
except:
print "Only numerical values accepted!"
Never trust users of your program to do the intended thing
More on topic: Nasir said code like this would take max 15mins to write. I'm sure any of the devs that are working/worked on INX can do that. Can't really compare between what more experienced devs like Maka, Nasir or Rob do and code that galens wrote. Difference in amount of experience is huge.
See through a Gm's eyes! - Galens - 01-11-2008
Canaris Wrote:I tested your program and not sure if it's the way you want but when I type: "buy" when it says "I have a 'sword' and a 'shield' for sale! Which would you like to 'buy' some sir?" it prints "Care to buy anything else?". Shouldn't that be only after the purchase?
Nice start for only having learned for 6 hours. Keep it up
I'm not expert programmer or anything just used to try out some stuff for fun like you are doing now. Anyway, If you are still improving it to learn here's some food for the thought.
1) Remove some of the unneeded variables. Your while loops use boolean variables to break out of them. You can clean it up a bit by just making it endless loop and breaking out using break statement whenever needed. No change in functionality. Just easier for the reader of your code.
Code:
while 1:
if selection == 1:
# do stuff here
break
elif selection == 2:
# do some other stuff here
break
2) Error checking for user input. What if user decides to type for example "plaa" to a question that accepts integer variables (for example the first question)? Program goes nuts. Exceptions are easy way to handle those situations more gracefully and have your program deal with the situation:
Code:
try:
selection = int(raw_input("Please choose a reward 1 or 2.\n"))
except:
print "Only numerical values accepted!"
Never trust users of your program to do the intended thing
More on topic: Nasir said code like this would take max 15mins to write. I'm sure any of the devs that are working/worked on INX can do that. Can't really compare between what more experienced devs like Maka, Nasir or Rob do and code that galens wrote. Difference in amount of experience is huge.
Ya know, I was reading on try and except later in the morning, then I passed out from lack of sleep. I didn't quite grasp it. Now I get it, instead of it printing any error and exiting the program, its more or less another if statement, except, if raw_input = null, non int or non str, it prints a repetative message. I could squeeze you till your eyeballs poop out. ^_^
I'm going to try and fix, plus add a ton more features with narration.
I appreciate it.
See through a Gm's eyes! -
imported_Odium - 01-11-2008
MIA!
visual basic = <3
See through a Gm's eyes! - Eighty Swords - 01-11-2008
good effort Galens, even if its in the wrong language for inx hehe
it looks like a cross between QBASIC (due to the format on the print statement and the structure of your loops and else statements) and C (because of the boolean equations for your statements).
this is where my studies have/are taking me with my programming progress:
year 1:
1/2 year spent going a little into QBASIC
year 2:
basic and more advanced concepts of ASM and integrating it with hardware.
we also covered a little bit of C, which was very easy after studying ASM. i found there was a lot more structure to C, smoother flow to it.
year 3:
more advanced asm entirely dependant on hardware (custom built 8-bit microprocessor system) and more.
and we are going to be going into some more intermediate or advanced C programing.
because of ASM i got everyone here beat with my scripting abilities, even maka muhahaha! ASM is a real *****, after spending the amount of time i have with it, id say almost any language is easy (provided you have the time) after that.
difficulty note on asm, or maybe just how nuts my teacher is: out of 7 people, only me and 1 other person finished the final lab this semester because it was so hard.
See through a Gm's eyes! -
imported_ScareCrow - 01-11-2008
Eighty Swords Wrote:good effort Galens, even if its in the wrong language for inx hehe it looks like a cross between QBASIC (due to the format on the print statement and the structure of your loops and else statements) and C (because of the boolean equations for your statements).
this is where my studies have/are taking me with my programming progress:
year 1:
1/2 year spent going a little into QBASIC
year 2:
basic and more advanced concepts of ASM and integrating it with hardware.
we also covered a little bit of C, which was very easy after studying ASM. i found there was a lot more structure to C, smoother flow to it.
year 3:
more advanced asm entirely dependant on hardware (custom built 8-bit microprocessor system) and more.
and we are going to be going into some more intermediate or advanced C programing.
because of ASM i got everyone here beat with my scripting abilities, even maka muhahaha! ASM is a real *****, after spending the amount of time i have with it, id say almost any language is easy (provided you have the time) after that.
difficulty note on asm, or maybe just how nuts my teacher is: out of 7 people, only me and 1 other person finished the final lab this semester because it was so hard.
TOMORROW NIGHT, STAFF PARTY AT THA CINEMA BABY!! WE GETTING KRUNK?? YEEEEEE HAHAHA!!!
See through a Gm's eyes! - Galens - 01-11-2008
Code:
import sys
gold = True
Prize1 = 2
Prize2 = 1
Selection1 = raw_input
buy = raw_input
store = raw_input
shop = raw_input
Pr1 = True
sword = 250
shield = 250
while True:
try:
Selection1 = int(raw_input("Please choose from 1 or 2.\n"))
except:
print "**Numbers only!**\n"
if Selection1 < 1 or Selection1 > 2:
print"Sorry, I don't understand you!\n"
elif Selection1 == 1:
gold = 0
print "You receive nothing!!!! Try again.\n"
elif Selection1 == 2:
gold = gold + 500
print "You receive 500 gold!\n"
True = False
if gold < 0:
print "I am sorry, but you do not have any gold to visit the store!\n"
else:
shop = str(raw_input("To use the store, say 'store'.\n"))
if shop == 'store':
True = False
store = str(raw_input("Welcome to my store. Would you like to 'buy' something sir?\n"))
if shop != "store":
print "I don't understand."
if store == 'buy':
True = False
buy = str(raw_input("I only have these items for sale, business has been \
rather slow lately. '*You notice him point to a 'sword' and 'shield' collection on the \
shelves*\n"))
elif store != 'buy':
print "bla"
if buy == 'shield' and gold >= shield:
print "Let me get that real quick...\n"
print "*You have received a shield!*\n"
gold = (gold - shield)
print "You now have ", gold, "gold left!\n"
elif buy == 'sword' and gold >= sword:
print "Let me get that real quick...\n"
print "*You have received a sword!*\n"
gold = (gold - sword)
print "You now have ", gold, "gold left!\n"
if gold == 0:
print "I am sorry, but you have ", gold, "gold left. It is not enough to buy any item here! Come back when you have money sir!\n"
Pr1 = False
anyone give me a hand please? I have spent 2 hours editing one area. Someone tell me how I can get
Code:
if shop == 'store':
True = False
store = str(raw_input("Welcome to my store. Would you like to 'buy' something sir?\n"))
if shop != "store":
print "I don't understand."
if store == 'buy':
True = False
buy = str(raw_input("I only have these items for sale, business has been \
rather slow lately. '*You notice him point to a 'sword' and 'shield' collection on the \
shelves*\n"))
elif store != 'buy':
print "bla"
to stop saying:
Quote:Please choose from 1 or 2.
1
You receive nothing!!!! Try again.
Please choose from 1 or 2.
2
You receive 500 gold!
To use the store, say 'store'.
1
I don't understand.
bla
>>> 1
1
>>>
See through a Gm's eyes! -
imported_Kamos - 01-11-2008
and
both evaluate to true. Therefore both "I don't understand." and "bla" are printed. You could for example make whole buying part a loop of it's own and control using
continue and
break statements what gets executed and what doesn't.
See through a Gm's eyes! -
imported_Kamos - 01-11-2008
Well, damnit... it was a bit confusing so I made my own version of the thing. Commented it a bit so hope you see what I meant.
Code:
# Shop
import sys
#--- Variables ---
Gold = 0
Choise = ""
#--- End of vars ---
# Loop for the gold thing
while True:
Choise = 0
# User input without cast to int. Could still add the exception but I'm not sure
# can you still screw up the input like this or not.
Choise = raw_input("Please choose from 1 or 2.\n")
if Choise == "1":
print "No, try the other option.\n"
continue # Jumps back to the start of loop without going through the rest
elif Choise == "2":
print "You receive 500 gold."
Gold += 500
print "Now you have", Gold, "gold total.\n"
break # Breaks off the while loop
else:
print "That's not a valid option!\n"
continue
# Shop loop
while True:
Choise = 0
Choise = raw_input("Welcome to my store. Would you like to 'buy' something sir? If not then 'gtfo'\n")
if Choise == "buy":
while 1:
Choise == 0
Choise = raw_input("I only have these items for sale, business has been rather slow lately.\n*You notice him point to a 'sword' and 'shield' collection on the shelves*\n")
if Choise == "shield":
if Gold >= 150: # When you have enough money
Gold -= 150
print "You bought a shield for 150 gold! You have", Gold, "gold left now.\n"
break
else: # ...and when you don't
print "You only have", Gold,"gold! You can't afford that!\n"
break
elif Choise == "sword":
if Gold >= 250:
Gold -= 250
print "You bought a sword for 250 gold! You have", Gold, "gold left now.\n"
break
else:
print "You only have", Gold,"gold! You can't afford that!\n"
break
else:
print "That's not a valid option!\n"
continue
elif Choise == "gtfo":
print "Bye then!\n"
break
else:
print "That's not a valid option!\n"
continue
That's around how I think you meant for it to be but not sure.