• Advertisement

Josh Sanders

  • Content count

  • Joined

  • Last visited

Community Reputation

107 Neutral

About Josh Sanders

  • Rank
  1. Thanks for the feedback about copyright! I've updated my post to remove that because its not really relevant to the goal of this post. This is more of a personal project than anything else. I'm really not worried about copyright, as Heroes of Might and Magic III open source remake on github is a thing. But regardless, copyright issues are not the things I want to talk about, I really just want feedback on any other thing I've mentiioned.   As for why the post is in the lounge, to me the motivation was, "Hey, I've been thinking about doing this thing for a while, I wonder what people think about it". And I felt like general discussion was a good place for something like that. I'll move it to wherever it needs to be. Thanks for the responses so far!
  2. OpenGL C++/OpenGL Chess Game Project

    [quote]As for your last question, are WhitePiece and BlackPiece really fundamentally different from eachother? Or is it just some of the behaviour that needs to change? Also, dont worry about object count, as long as you're not making any mistakes resulting in constant copy-ing of objects, you can use many thousands of objects.[/quote] Well, I thought about that, and I think the reason I came up with to make them two seperate classes, is that it might make it easier in the long run to program which moves a piece like say, the bishop is allowed to move. So Maybe I could say in psuedocode, if bishop is on black space, he can only move along other black pieces. But it seems like an enum would be better than making an entire class and object based on color. I was just thinking of the "is a" relationship, and a "has a" relationship. So the board HAS spaces, which ARE colors. So Board class is by himself. Space class is by itself with it's color that it IS rather than has. But I may be stretching that too far.. But holy crap rongshuxiacy I actually have that book right here and I've never looked into it!! I bought this book like.. 6 years ago and never thought to open it now because I was sure that all of the info and methods would be outdated and depricated. But I guess the main reason I didn't look is because I wanted to try and solve these issues without actually seeing a coded solution. I mean what use am I as a programmer if I can't even do something like this... I guess I would feel like I was cheating. And as for the UML, I will have a look at that. I remember doing a UML back in my freshman classes. It certainly might make it easier for me to convey my code logic. And thanks for saying I'm at least on the right path
  3. OpenGL C++/OpenGL Chess Game Project

    Okay, first of all, thank you very much for the response! So it seems clear to me that I should write the game first, making everything modular, and then worry about openGL. So, if you would, please allow me to document my thought process here, maybe I will make this thread my diary, with you as my guidance . So, I sat down in Visual Studio 2012, and I made all of my classes. And Then I thought, it would be better if I created the classes as I needed them. So, I started with my ChessGame class. Then my thoughts are, I should create a GameBoard right? So I made a GameBoard class, and tried to develop an algorithm that would create the board: Problem: I need to create an 8X8 array that will serve as my chessboard. Each spot in the array will be white or black, and empty or containing a piece. Solution 1: Make an 8X8 int array. If it was an int array, I could specify if it were white and black by filling the array with 1's and 0's! However, then I thought, how would I tell the program that there is a piece in that spot? And more importantly, what piece is in that spot? Solution 2: Make a class called Spaces and fill the array with Spaces that have a white parameter, a black parameter, and a pointer to the piece that lies on it, if any. But would this make sense? Should i have a Space class with WhiteSpace and BlackSpace subclasses? But I think this could impose another problem. First of all, each space would be a new object which.. sounds a little extreme. And secondly, Each space would have a unique name, although I suppose I could name them as coordinates. Maybe I could use structs instead? Which brings me to the structure of my pieces. Should I have WhitePiece and BlackPiece classes? Could both of these problems be solved with an enum?
  4. So, I'm a student at UHV and I'm taking a class called Computer Graphics Applications, as is required for my degree in Computer Science - Digital Gaming and Simulation. We were assigned a final project, and I want to start working on that project now so that I can refine it until it is perfect by the end of the semester. I chose a chess game, rendered with OpenGL. This would do three things for me: (1) Help to make me more fluent in C++. (2) Help solidify OOP concepts I've been learning. (3) Give me a head start into Game AI before I take the AI class next semester So, I'm not sure if i will get much help on here, but any would be much appreciated. I'm not looking for somebody to tell me all of the answers, I would like to figure the code out on my own, but pointing me to the right concepts is what I really need. At this point, I'm not sure where to start.. Here is what I have: Classes: RED SubClasses: GREEN Data Members: BLUE Functions: PURPLE enum TurnState playerOneTurn,playerTwoTurn,Stopped enum GameState playerOneCheck playerTwoCheck playerOnecCheckMate PlayerTwoCheckMate InitializingGame Tie NormalPlay - [color=#ff0000]Player(abstract class)[/color] - [color=#008000]Computer(inherits from Player)[/color] - [color=#ff0000]ChessGame[/color] - [color=#0000ff]Player p1, p2[/color] -[color=#0000ff]TurnState turnState[/color] - [color=#0000ff]GameState gamState[/color] - [color=#ff0000]Move[/color] - [color=#0000ff]*Piece[/color] - [color=#0000ff]Location origin[/color] - [color=#0000ff]Location destination[/color] - [color=#ff0000]Location[/color] - r[color=#0000ff]ow[/color] - [color=#0000ff]col[/color] - [color=#0000ff]*ChessBoard[/color] - [color=#ff0000]ChessBoard[/color] -[color=#800080]isValid(move) //checks if the move is valid[/color] - [color=#ff0000]ChessPiece[/color](abstract class) - [color=#800080]GetValue() //returns an int value of the peice(for scoring)[/color] - [color=#800080]GetPosition() //returns the current position of a piece[/color] - [color=#800080]getIsSelected() //returns a boolean, true if selected, fale if unselected[/color] - [color=#800080]move() // moves the piece in a way dependent upon what piece[/color] - [color=#008000]Pawn[/color] - [color=#008000]Rook[/color] - [color=#008000]Queen[/color] - [color=#008000]King[/color] - [color=#008000]Knight[/color] So this is what I have so far. All of the pieces will inherit methods from Piece and be able to override those methods. But I have several questions: Where and how do I tie OpenGL into this? What classes should have openGL code in them? Should I make seperate classes for openGL?? Do I still make a 2d array in memory to store the position of the pieces? Or is eveyrthing done on screen? For example, would I say, " rook location is [1][3]" or would I tell openGL "When I click on this part of the screen, select the rook", or both? Are there classes I should add? What other functions will I need? How do i get started?
  • Advertisement