| | |
noob question
Please support our C# advertiser: $4.95 a Month - ASP.NET Web Hosting – Click Here!
![]() |
•
•
Join Date: Jul 2009
Posts: 9
Reputation:
Solved Threads: 0
Hi guys, i downloaded visual c# 2008 about a month ago and have been trying stuff out for myself.
I'm attempting to make a text based RPG, i made big progress but i'm stuck now.
Basically i want to show the player's HP in green whenever he has 51 to 100% of the maximum HP for his level, yellow from 26 - 50HP and red when below 25%.
My code shows the HP in green from 100% all the way down to 25%, going directly to red and bypassing yellow, how do i fix this?
here's the code.
a person in another forum gave me the following solution, but it didn't work, instead it showed the HP in green from 100 to 0% never changing color.
I'm attempting to make a text based RPG, i made big progress but i'm stuck now.
Basically i want to show the player's HP in green whenever he has 51 to 100% of the maximum HP for his level, yellow from 26 - 50HP and red when below 25%.
My code shows the HP in green from 100% all the way down to 25%, going directly to red and bypassing yellow, how do i fix this?
here's the code.
C# Syntax (Toggle Plain Text)
if (ok.player > 51% ok.maxhp) { Console.ForegroundColor = ConsoleColor.Green; Console.Write("{0}/{1} HP", ok.player, ok.maxhp); Console.ForegroundColor = ConsoleColor.White; } else if ((ok.player >= 26% ok.maxhp) && (ok.player <= 50% ok.maxhp)) { Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}/{1} HP", ok.player, ok.maxhp); Console.ForegroundColor = ConsoleColor.White; } else if (ok.player < 25% ok.maxhp) { Console.ForegroundColor = ConsoleColor.Red; Console.Write("{0}/{1} HP", ok.player, ok.maxhp); Console.ForegroundColor = ConsoleColor.White; }
a person in another forum gave me the following solution, but it didn't work, instead it showed the HP in green from 100 to 0% never changing color.
C# Syntax (Toggle Plain Text)
decimal one_percent = (decimal)(ok.maxhp / 100); decimal value = (decimal)ok.player; if (value > (one_percent * 51)) { // ok.player is greater than 51% of ok.maxhp Console.ForegroundColor = ConsoleColor.Green; Console.Write("{0}/{1} HP", ok.player, ok.maxhp); Console.ForegroundColor = ConsoleColor.White; } else if (value >= (one_percent * 26) && value <= (one_percent * 50)) { // ok.player is between 26% and 50% of ok.maxhp Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}/{1} HP", ok.player, ok.maxhp); Console.ForegroundColor = ConsoleColor.White; } else if (value < (one_percent * 25)) { // ok.player is less than 25% of ok.maxhp Console.ForegroundColor = ConsoleColor.Red; Console.Write("{0}/{1} HP", ok.player, ok.maxhp); Console.ForegroundColor = ConsoleColor.White; }
I downloaded it about a year ago, still learning
but I believe I can help.
Your code : if (ok.player > 51% ok.maxhp)
The % is not what you think a percentage, it is the modulo operator! So you are comparing something against 51 modulo ok.maxhp, which is not what you want.
Other persons code : decimal one_percent = (decimal)(ok.maxhp / 100);
ok.maxhp / 100 is an integer divide, if maxhp is never greater than 100, one_percent will always be zero!
This is my code, hope it helps. You only have to restore the ok variable in it.
but I believe I can help.Your code : if (ok.player > 51% ok.maxhp)
The % is not what you think a percentage, it is the modulo operator! So you are comparing something against 51 modulo ok.maxhp, which is not what you want.
Other persons code : decimal one_percent = (decimal)(ok.maxhp / 100);
ok.maxhp / 100 is an integer divide, if maxhp is never greater than 100, one_percent will always be zero!
This is my code, hope it helps. You only have to restore the ok variable in it.
c# Syntax (Toggle Plain Text)
double maxhp = 55; double player = 25; decimal one_percent = (decimal)(maxhp / 100.0); decimal value = (decimal)player; if (value > (one_percent * 51)) { // ok.player is greater than 51% of ok.maxhp Console.ForegroundColor = ConsoleColor.Green; Console.Write("{0}/{1} HP", player, maxhp); } else if (value >= (one_percent * 26) && value <= (one_percent * 50)) { // ok.player is between 26% and 50% of ok.maxhp Console.ForegroundColor = ConsoleColor.Yellow; Console.Write("{0}/{1} HP", player, maxhp); } else if (value < (one_percent * 25)) { // ok.player is less than 25% of ok.maxhp Console.ForegroundColor = ConsoleColor.Red; Console.Write("{0}/{1} HP", player, maxhp); } Console.ForegroundColor = ConsoleColor.White;
Today is a gift, that's why it is called "The Present".
Make love, no war. Cave ab homine unius libri.
Danny
Make love, no war. Cave ab homine unius libri.
Danny
•
•
Join Date: Jul 2009
Posts: 9
Reputation:
Solved Threads: 0
Thank you very much for your reply.
I have no doubt that code works, sadly yesterday night after posting the question i changed around some stuff in other code of the same program and now a lot of stuff doesn't work, i hate that i get no error messages, but the game still doesn't work as intended.
Basically i had 2 classes, one full of getters and setters with info, and another called world, where everthing took place in the game. But i wanted to create a class called "fight" and take my fighting code over there to make it a bit more manageable since my "world" class had around 1000 lines of code already.
But some info from the world and "items" class doesn't travel to my fight class, i heard that in c# you're only allowed to send info from 1 class to another and not more, if that's true, do i HAVE to make all my code in 1 class?
I'm starting college in January and i want to at least know a little something before i get there, i think everyone that takes a computer science program already knows a thing or two.
I have no doubt that code works, sadly yesterday night after posting the question i changed around some stuff in other code of the same program and now a lot of stuff doesn't work, i hate that i get no error messages, but the game still doesn't work as intended.
Basically i had 2 classes, one full of getters and setters with info, and another called world, where everthing took place in the game. But i wanted to create a class called "fight" and take my fighting code over there to make it a bit more manageable since my "world" class had around 1000 lines of code already.
But some info from the world and "items" class doesn't travel to my fight class, i heard that in c# you're only allowed to send info from 1 class to another and not more, if that's true, do i HAVE to make all my code in 1 class?
I'm starting college in January and i want to at least know a little something before i get there, i think everyone that takes a computer science program already knows a thing or two.
Last edited by thanatos1; Jul 4th, 2009 at 12:33 pm.
>i heard that in c# you're only allowed to send info from 1 class to another and not more
In C# you can't have multiple inheritance, if it is that what you mean. You can have many classes working together if you want to.
In C# you can't have multiple inheritance, if it is that what you mean. You can have many classes working together if you want to.
Today is a gift, that's why it is called "The Present".
Make love, no war. Cave ab homine unius libri.
Danny
Make love, no war. Cave ab homine unius libri.
Danny
![]() |
Similar Threads
- noob question (IT Professionals' Lounge)
- Pretty noob question regarding input (Perl)
- Noob with a question (IT Professionals' Lounge)
- Question (Networking Hardware Configuration)
- noob question (C)
- Noob question about Defining and Declaring. (C++)
- NOOB question , graphical tiles (C++)
Other Threads in the C# Forum
- Previous Thread: C# help pls....!!!
- Next Thread: c# client, java server
| Thread Tools | Search this Thread |
.net access algorithm array asp.net bitmap box broadcast c# check checkbox client combobox communication control conversion csharp database datagrid datagridview dataset datetime dbconnection decryption degrees design developer draganddrop drawing encryption enum eventhandlers excel file firefox form format forms function gdi+ grantorrevokepermissionthroughc#.net hospitalmanagementsystem image input install interface java libraries list loop marshalbyrefobject math mouseclick movingimage mysql netcfsvcutil.exe numeric operator path photoshop php picturebox pixelinversion platform polynomial post programming properties radians read regex remoting richtextbox server sleep socket sql statistics string stringformatting study sun system.servicemodel table tcpclientchannel text textbox thread time timer update usb usercontrol validation visualstudio webbrowser winforms wpf wpfc# xml






