|
Thread Rules 1. This is not a "do my homework for me" thread. If you have specific questions, ask, but don't post an assignment or homework problem and expect an exact solution. 2. No recruiting for your cockamamie projects (you won't replace facebook with 3 dudes you found on the internet and $20) 3. If you can't articulate why a language is bad, don't start slinging shit about it. Just remember that nothing is worse than making CSS IE6 compatible. 4. Use [code] tags to format code blocks. |
On November 06 2012 20:41 sluggaslamoo wrote:Show nested quote +On November 06 2012 18:41 Tobberoth wrote: The dominance of linux in server environments is greatly overstated. A lot of huge companies use microsoft products for everything. All their internal programs are made in C#, all their computers run windows 7, all their intranet sites run on ASP.NET, all their SQL is in SQL Server databases... companies like this phase out Linux, which they got years ago when it was a fad for big companies to move over to Linux. Dealing with integration is a bigger problem than the money saved by using Linux, especially since the license fees make such a small difference for big companies.
I think it's cool for college students to work in Linux because they prefer it or whatever, but it's probably a good idea to think about what kind of company you will be working for and what the trends are. Ruby on rails is awesome to know if you're going to work for a small hipp company selling websites, not so much if you're going to be working for the IT department of a huge company. Integration is a bigger issue on windows servers. Linux you just use package managers and its so easy to clone with things like vagrant and chef. I have so many integration issues with windows server its not funny.
Youre right however I think the point he was making is that large companies that are stuck using windows software already prefer to avoid integration costs altogether by also running windows servers.
|
Census uses almost entirely Unix and Oracle, FWIW.
|
I was playing with the idea of making an open-source rts project (starcraft clone, all intellectual property shenanigans taken into consideration). Right now we are too dependant on Blizzard, imagine if we had our own game.
I'm java programmer, and as you may know java has one of the biggest open-source communities. So I was thinking why not make an rts? Is there anyone anyone with gamedev background? Please give your insights.
|
On November 09 2012 19:46 bokeevboke wrote: I was playing with the idea of making an open-source rts project (starcraft clone, all intellectual property shenanigans taken into consideration). Right now we are too dependant on Blizzard, imagine if we had our own game.
I'm java programmer, and as you may know java has one of the biggest open-source communities. So I was thinking why not make an rts? Is there anyone anyone with gamedev background? Please give your insights. RTS is a complicated genre to develop. Depends a lot on pathfinding and AI so a simple programmer would have a pretty tough time of it.
If you have it exclusively multiplayer then I guess you can reduce the complexity by removing the need for AI. Unreal Engine and Unity give you some facilities for network code and pathfinding I think so it could be possible to see an indie RTS.
I recommend brushing up on C# or UnrealScript if you want to use a modern engine, however. Java is really barren in terms of gamedev tools.
|
Sounds like a huge amount of work. I'm just going to put it out there, that there is no way you can create such a project on your own.
If you want to make games, start with something small then as you build experience and contacts you can try creating a major project.
With no prior experience, starting on a project of that size is almost guaranteed to be doomed to fail.
-source: Have completed several small games from scratch in groups as well as solo, and am currently studying games programming.
|
On November 09 2012 19:58 Fyodor wrote:Show nested quote +On November 09 2012 19:46 bokeevboke wrote: I was playing with the idea of making an open-source rts project (starcraft clone, all intellectual property shenanigans taken into consideration). Right now we are too dependant on Blizzard, imagine if we had our own game.
I'm java programmer, and as you may know java has one of the biggest open-source communities. So I was thinking why not make an rts? Is there anyone anyone with gamedev background? Please give your insights. RTS is a complicated genre to develop. Depends a lot on pathfinding and AI so a simple programmer would have a pretty tough time of it. If you have it exclusively multiplayer then I guess you can reduce the complexity by removing the need for AI. Unreal Engine and Unity give you some facilities for network code and pathfinding I think so it could be possible to see an indie RTS. I recommend brushing up on C# or UnrealScript if you want to use a modern engine, however. Java is really barren in terms of gamedev tools.
I already started doing RPG project on Unity. Stuff like game logic, path-finding, collision detection are already there. My basic game was ready in ~4 days. What I most struggle with is creating game world, map, terrain, 3d models and animation. Which, i think, is where game-community shines the most.
though I haven't touched networking part yet. But making a game for a simple LAN might be a good start.
|
in c# 2010 express i have:
+ Show Spoiler + using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { Form2 a1 = new Form2(); a1.ShowDialog(); } } }
the first time i run this i got
'WindowsFormsApplication1.Form1' does not contain a definition for 'Form1_Load' and no extension method 'Form1_Load' accepting a first argument of type 'WindowsFormsApplication1.Form1' could be found (are you missing using directive or an assembly reference?)
my tutor said to close the project and rewrite what i had in a new c# project. i made it identicle and ran it. this time it worked fine.
does anyone know why this bugged?
thanks...just curious (total beginner)
|
On November 10 2012 00:47 FFGenerations wrote:in c# 2010 express i have: + Show Spoiler + using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { Form2 a1 = new Form2(); a1.ShowDialog(); } } }
the first time i run this i got 'WindowsFormsApplication1.Form1' does not contain a definition for 'Form1_Load' and no extension method 'Form1_Load' accepting a first argument of type 'WindowsFormsApplication1.Form1' could be found (are you missing using directive or an assembly reference?) my tutor said to close the project and rewrite what i had in a new c# project. i made it identicle and ran it. this time it worked fine. does anyone know why this bugged? thanks...just curious (total beginner)
In your designer, you were probably missing something like this:
this.Load += new System.EventHandler(this.Form1_Load);
Edit: You had the code above, with no method. Sorry i got it the wrong way around.... been a while since i used C#. SAS is too much fun.... jk
|
+ Show Spoiler +Hey guys... not sure if this falls in the range of the type of programming y'all are talking about, but: I'm using labview for an engineering project. We have these little robot cars that we're trying to steer through a maze. Currently, I have a labview program that uses a touch sensor loop so that every single time the bumper "touches" something, the robot backs up and turns to the right. To navigate the maze, I'd like to make it so that the first time it hits a touch sensor, the robot moves left, but the second time, it moves right. Does this make sense at all, and if so can anybody at least point me in the right direction of how to do this? I don't know why the picture would help at all but here's a picture of the program. If I need to explain more clearly please let me know how I could do that. + Show Spoiler +Picture too wide: hereBasically, I'm trying to make it a conditional event that doesn't work until the bumper touches something once, and then I want it to execute a DIFFERENT program the second time the bumper touches. I know it's possible, but where would I start to figure out how to do it?
Spoiler for old but I think bad post.
I want to use a timed loop in Labview to set up two different iterations. I converted a loop into a timed loop, but I'm not sure how to connect iterations or set up their lengths. How do I do this?
|
On November 10 2012 00:47 FFGenerations wrote:in c# 2010 express i have: + Show Spoiler + using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms;
namespace WindowsFormsApplication1 { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { Form2 a1 = new Form2(); a1.ShowDialog(); } } }
the first time i run this i got 'WindowsFormsApplication1.Form1' does not contain a definition for 'Form1_Load' and no extension method 'Form1_Load' accepting a first argument of type 'WindowsFormsApplication1.Form1' could be found (are you missing using directive or an assembly reference?) my tutor said to close the project and rewrite what i had in a new c# project. i made it identicle and ran it. this time it worked fine. does anyone know why this bugged? thanks...just curious (total beginner) Basically Windows Forms has automatically generated code that gets made when you do various things. In this case, probably when you doubleclicked on the form. Later, you probably deleted that empty method, but the method was still listed in your events tab and so the auto-generated lines still existed (which were now pointing to something that didn't exist). Fix it here (see below) and the error will go away.
Alternatively, you might have renamed (instead of refactored) something.
|
1019 Posts
|
I'm not sure if I'm just reading your code wrong, but you have your rows and columns mixed up so it's making it weird to debug.
Row is the X component, Column is the Y component, at least in standard English.
You should break this problem up, again, into many functions so your main is a lot easier to debug by breaking down the problem into very abstract levels. If you've learned classes, a struct car with current position x and y would be useful to have for this. You can do it without a struct too. PrintTrack() is good. CalculateXandYPosition() would be good too, with an UpdateCarPosition(). Then you program the bare basics, and add in new and more complex functionality, testing every time until you have the finished product.
If you program this way, if and when you encounter a bug, you can go through each method and say, this is working 100%, the error is not here. In this situation, I would have created a race program that moved the car one step at a time until you know all those parts are working 100%, then add in the custom acceleration bits in the CalculateXandYPosition(). This way, you can narrow down if it was the custom acceleration that broke the code, or if your general logic is flawed. If you got this same error, you would have found in the earlier stages that your car didn't move in the correct direction.
|
1019 Posts
Oops sorry, I should have mentioned this: I switched the row and columns because the horizontal movement of the "car" corresponds to columns and the vertical movement of the "car" corresponds to rows.
thanks for the advice!!
|
I believe your issue is that you use equalities like x == 0, rather than x <= 0, since you never have any hardcoded bounds to your x and y components.
Also, I believe you should be getting array out of bounds errors a bunch. You should do the
track[yPosition][xPosition] = '0';
in the conditional loop and
printRace(track);
after making sure your X and Y indices are not out of bounds.
|
On November 10 2012 12:21 white_horse wrote:Ok so I have to make a simple racing game where the user inputs 1, 0, or -1 for the increments in horizontal and vertical acceleration/deceleration to guide the "car" (which is represented as a "0" in the text game) to the finish line. The part that I'm having trouble with is when the "car" crashes into the side of the wall or barrier. The code is supposed to be so that the "car" is embedded in the side of the wall or barrier but I'm not sure how to make it work. Will someone help me? The project information is here: + Show Spoiler +and what I have so far is here: the code that is specifically giving me trouble is near the bottom, which I marked. Everything above that is working fine I believe. + Show Spoiler + #include <iostream> #include <vector> #include <cstdlib> #include <cmath> using namespace std;
const int row = 52; const int column = 72;
void printRace(char array1[row][column] //prints 52 by 72 grid { for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { cout << array1[i][j]; } cout << endl; } }
void initRace(char array2[row][column] //prints track layout {
for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { if (i == 0) //top boundary { array2[i][j] = 'X'; } else if (i == 51 && j < 65) //bottom boundary { array2[i][j] = 'X'; } else if (i == 51 && j < 71) //prints finish line { array2[i][j] = 'F'; } else if ((i >= 1 && i <= 51) && j == 0) //left boundary { array2[i][j] = 'X'; } else if ((i >= 1 && i <= 51) && j == 71) //right boundary { array2[i][j] = 'X'; } else if ((i >= 1 && i <= 35) && (j >= 10 && j <= 29)) //left barrier { array2[i][j] = 'X'; } else if ((i >= 16 && i <= 50) && (j >= 40 && j <= 64)) //right barrier { array2[i][j] = 'X'; } else { array2[i][j] = ' '; } } } }
int main() { char track[row][column]; initRace(track); track[1][1] = '0'; printRace(track);
int xVelocity = 0, xAcceleration = 0; int yVelocity = 0, yAcceleration = 0; int xPosition = 1, yPosition = 1; int counter = 0; //counter for seconds
while(1) { cout << "Horizontal and vertical acceleration (-1, 0, 1): "; cin >> xAcceleration >> yAcceleration; counter++;
if (xAcceleration < -1 || xAcceleration > 1) { printRace(track); cout << "Crashed after " << counter << " seconds" << endl; return -1; } if (yAcceleration < -1 || yAcceleration > 1) { printRace(track); cout << "Crashed after " << counter << " seconds" << endl; return -1; }
xVelocity = xVelocity + xAcceleration; yVelocity = yVelocity + yAcceleration;
xPosition = xPosition + xVelocity; yPosition = yPosition + yVelocity;
track[yPosition][xPosition] = '0'; printRace(track);
>>>>>>>>>>>>>>>>>>>> CODE BELOW HERE IS NOT WORKING <<<<<<<<<<<<<<<<<<<<<<<<
if ((yPosition == 0 && xPosition < 10) || (yPosition == 0 && xPosition > 30)) //when car is embedded in top boundary { track[0][xPosition] = '0'; printRace(track); cout << "Crashed after " << counter << " seconds" << endl; }
if (yPosition == 51 && xPosition < 41) //when car is embedded in bottom boundary { track[51][xPosition] = '0'; printRace(track); cout << "Crashed after " << counter << " seconds" << endl; }
if ((yPosition >= 1 && yPosition <= 51) && xPosition == 0) //when car is embedded in left boundary { track[yPosition][0] = '0'; printRace(track); cout << "Crashed after " << counter << " seconds" << endl; }
if ((yPosition >= 1 && yPosition <= 51) && xPosition == 71) //when car is embedded in right boundary { track[yPosition][71] = '0'; printRace(track); cout << "Crashed after " << counter << " seconds" << endl; }
return 0;
}
I hope you get this figured out, but I think you're really disadvantaging yourself. You've posted code for help like this pretty much every week without fail. From the thread rules:
2. Don't post a huge block of code and ask "what's wrong?" or I'll smack you. There's a few reasons for this rule, I think. Number one is that it makes the thread pretty noisy and irrelevant to the vast majority of readers. Number two is that it doesn't promote interesting discussion. Number three is that it prevents you from learning how to figure out your own mistakes. This is especially evident from how many times you've come back here to ask the same sorts of things. I know, the learning curve is tough, but you have to push through that if you want to *actually* figure this stuff out.
I (and I'm sure a lot of other people) would appreciate it if you didn't post your homework in here every week. Homework threads are also banned on TL, I don't see why homework posts would be allowed considering that
|
While I'm too drunk atm to actually debug (although the guy above has a good point from what I can see):
I'd recommend you use a function to change the array rather than doing it manually all over the place. You can bake the array bounds checking into the function and it means you can only possibly fuck up the notation in one place rather than everywhere.
Either use a global track[][] array and have the bounds global too and just use a function like
void setScreenAt(int xCoord, int yCoord); or pass a pointer and the bounds every time (might want to make a
struct trackData{ int **track; int rowSize; int colSize; }; to simplify that).
Now I've typed that I like the idea of having just
bool updateCar(int newXPos, int newYPos); and you can add bounds checking and also check if the car is still in play, and return true if out of play and the game is over or false if we can continue to the next frame.
Also, you have the track dimensions set as variables at the beginning (which is good) and then don't use those variables to check if the car has gone out of play and use hard-coded numbers instead. This is another way to introduce silly, hard to fix bugs and also makes the game a bitch to customise later (not saying you'll want to do that, but it's good to bear in mind)
Finally, and I don't suggest you change this now, I'd personally use a single-dimenional array and access elements using
track[(rowWidth * y) + x ] which I find personally easier to deal with, but that's pretty much personal preference. There may be slight speed differences, but they won't matter a damn in an ascii car game
If anyone would like to debunk my drunken logic, please do. I don't claim to be an expert.
|
On November 10 2012 13:47 tec27 wrote:Show nested quote +On November 10 2012 12:21 white_horse wrote:Ok so I have to make a simple racing game where the user inputs 1, 0, or -1 for the increments in horizontal and vertical acceleration/deceleration to guide the "car" (which is represented as a "0" in the text game) to the finish line. The part that I'm having trouble with is when the "car" crashes into the side of the wall or barrier. The code is supposed to be so that the "car" is embedded in the side of the wall or barrier but I'm not sure how to make it work. Will someone help me? The project information is here: + Show Spoiler +and what I have so far is here: the code that is specifically giving me trouble is near the bottom, which I marked. Everything above that is working fine I believe. + Show Spoiler + #include <iostream> #include <vector> #include <cstdlib> #include <cmath> using namespace std;
const int row = 52; const int column = 72;
void printRace(char array1[row][column] //prints 52 by 72 grid { for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { cout << array1[i][j]; } cout << endl; } }
void initRace(char array2[row][column] //prints track layout {
for (int i = 0; i < row; i++) { for (int j = 0; j < column; j++) { if (i == 0) //top boundary { array2[i][j] = 'X'; } else if (i == 51 && j < 65) //bottom boundary { array2[i][j] = 'X'; } else if (i == 51 && j < 71) //prints finish line { array2[i][j] = 'F'; } else if ((i >= 1 && i <= 51) && j == 0) //left boundary { array2[i][j] = 'X'; } else if ((i >= 1 && i <= 51) && j == 71) //right boundary { array2[i][j] = 'X'; } else if ((i >= 1 && i <= 35) && (j >= 10 && j <= 29)) //left barrier { array2[i][j] = 'X'; } else if ((i >= 16 && i <= 50) && (j >= 40 && j <= 64)) //right barrier { array2[i][j] = 'X'; } else { array2[i][j] = ' '; } } } }
int main() { char track[row][column]; initRace(track); track[1][1] = '0'; printRace(track);
int xVelocity = 0, xAcceleration = 0; int yVelocity = 0, yAcceleration = 0; int xPosition = 1, yPosition = 1; int counter = 0; //counter for seconds
while(1) { cout << "Horizontal and vertical acceleration (-1, 0, 1): "; cin >> xAcceleration >> yAcceleration; counter++;
if (xAcceleration < -1 || xAcceleration > 1) { printRace(track); cout << "Crashed after " << counter << " seconds" << endl; return -1; } if (yAcceleration < -1 || yAcceleration > 1) { printRace(track); cout << "Crashed after " << counter << " seconds" << endl; return -1; }
xVelocity = xVelocity + xAcceleration; yVelocity = yVelocity + yAcceleration;
xPosition = xPosition + xVelocity; yPosition = yPosition + yVelocity;
track[yPosition][xPosition] = '0'; printRace(track);
>>>>>>>>>>>>>>>>>>>> CODE BELOW HERE IS NOT WORKING <<<<<<<<<<<<<<<<<<<<<<<<
if ((yPosition == 0 && xPosition < 10) || (yPosition == 0 && xPosition > 30)) //when car is embedded in top boundary { track[0][xPosition] = '0'; printRace(track); cout << "Crashed after " << counter << " seconds" << endl; }
if (yPosition == 51 && xPosition < 41) //when car is embedded in bottom boundary { track[51][xPosition] = '0'; printRace(track); cout << "Crashed after " << counter << " seconds" << endl; }
if ((yPosition >= 1 && yPosition <= 51) && xPosition == 0) //when car is embedded in left boundary { track[yPosition][0] = '0'; printRace(track); cout << "Crashed after " << counter << " seconds" << endl; }
if ((yPosition >= 1 && yPosition <= 51) && xPosition == 71) //when car is embedded in right boundary { track[yPosition][71] = '0'; printRace(track); cout << "Crashed after " << counter << " seconds" << endl; }
return 0;
}
I hope you get this figured out, but I think you're really disadvantaging yourself. You've posted code for help like this pretty much every week without fail. From the thread rules: Show nested quote +2. Don't post a huge block of code and ask "what's wrong?" or I'll smack you. There's a few reasons for this rule, I think. Number one is that it makes the thread pretty noisy and irrelevant to the vast majority of readers. Number two is that it doesn't promote interesting discussion. Number three is that it prevents you from learning how to figure out your own mistakes. This is especially evident from how many times you've come back here to ask the same sorts of things. I know, the learning curve is tough, but you have to push through that if you want to *actually* figure this stuff out. I (and I'm sure a lot of other people) would appreciate it if you didn't post your homework in here every week. Homework threads are also banned on TL, I don't see why homework posts would be allowed considering that Yeah, plus he ignored a long post I made explaining things to him a while ago
|
My first code
from datetime import datetime now=datetime.now() print (now) current_year=now.year current_month=now.month current_day=now.day hour=now.hour minute=now.minute second=now.second slash="/" print (str(current_day) + (slash) + str(current_month) + (slash) + str(current_year) +" "+ str(hour) + ":" + str(minute) + ":" +str(second)) This is what you'll get: 10/11/2012 13:30:48 I'm going through the python codeacademy classes right now.
Does anyone have a useful site for an overview of the very basics of programming? IE: One that explains what a variable is and lists the types of variables. Codeacademy does this aswell but it doesn't give you a nice overview.
|
thanks for replies, i have a better idea of what might have happened now. might have been something like, i doubleclicked the form randomly then deleted the auto code
|
On November 10 2012 21:34 Recognizable wrote:My first code from datetime import datetime now=datetime.now() print (now) current_year=now.year current_month=now.month current_day=now.day hour=now.hour minute=now.minute second=now.second slash="/" print (str(current_day) + (slash) + str(current_month) + (slash) + str(current_year) +" "+ str(hour) + ":" + str(minute) + ":" +str(second)) This is what you'll get: 10/11/2012 13:30:48 I'm going through the python codeacademy classes right now. Does anyone have a useful site for an overview of the very basics of programming? IE: One that explains what a variable is and lists the types of variables. Codeacademy does this aswell but it doesn't give you a nice overview.
You might want to get used to the following formatting, it is both clearer and more widespread:
print "%s/%s/%s %s:%s:%s" % (str(current_day), str(current_month), str(current_year), str(hour), str(minute), str(second))
Also, you don't need that many brackets.
Furthermore, not trying to be rude or smartass, but python is about clarity IMO.
from datetime import datetime print datetime.now().strftime("%d/%m/%Y %H:%M:%S")
As for introduction. You are trying to write in python. Why not start with this: http://docs.python.org/2.7/tutorial/introduction.html ?
|
|
|
|