Topic: "TBS chess?" (page 2 of 6)

< 1 2 3 4 5 6 >
Author Post
moose
groupmastergroupmastergroupmastergroupmastergroupmastergroupmaster
What are the responsibilities for a project leader?
I'd hold the contact with the admins (with Erik, I think), I'd try to coordinate the programmers/ testers and I'd try to find persons who programm/ test if the "chess part" is working (if every rule is in the game, like Castling) and to find people who try to exploit the script (to erase the exploits).

If these are the responsibilities, I'd try to be the project leader.
I think we should wait, lets say about 3 days (until 21.10.2007) or sth. like that and if nobody else wants to do this job, I'll do it.
Edited by moose on 18.10.2007 04:22:45
private message EMail Website
sniperkid
groupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmaster
I can always switch on my linux box for a bit of testing too, was having a few internet probs which is it was off, should be sorted now though :).

Edited by sniperkid on 18.10.2007 16:20:27
private message Website
moose
groupmastergroupmastergroupmastergroupmastergroupmastergroupmaster
okay, now I'm the project leader :D

first of all a list with chess-words for all who are not native english speakers:
check - one player's king is threatened with capture and there is a way to meet that threat
checkmate - one player's king is threatened with capture and there is no way to meet that threat
castling - a special move involving the king and either of the original rooks of the same color. Castling consists of moving the king two squares towards a rook, then moving the rook onto the square over which the king crossed.
En passant - another special move
linkchess piece - king, queen, rooks, bishops, knights, pawns

so here is a short outline what we have to do:
  • We need all functions made with php:
    • valid-turn-functions: For every chess piece we have to make a function which returns wheather a step is possible or not
    • a function that checks wheater a player is in chess
    • draw-check function: linksee wiki

  • we have to get the pictures: I think there are free ones online, but perhaps someone is very good in painting? It would be cool if we had our own community chess pieces
  • how do we rate the games? I would suggest win: 2 Points, draw: 1 Point


and, I think its important to say this: its like when you contribute a challenge to tbs:
QuoteQuote:

Don't forget that if you submit a challenge it is going to be ours. That means you can't just tell us someday that you want us to delete it from our site because you feel like it. This also gives us the chance to modify challenges. Nevertheless you are credited for all your submissions. If you do not feel comfortable with these lines contact theblacksheep to discuss details.

but I will make sure that everyone who workes in this project will be mentioned on a "About-page"
Edited by moose on 29.10.2007 08:30:22
private message EMail Website
moose
groupmastergroupmastergroupmastergroupmastergroupmastergroupmaster
I've just uploaded linka little project site with the general structure the page should have (its just an idea and made in about 5 minutes! so any notes about the good structure changes are welcome, but I think we should talk about the design after we have finished the programming part)

If someone would like to participate in this project, please send me a pm.
I'll give you the work (or you can also tell me what you would like to do, I'll upload it on my site to avoit that two persons do the same thing)
private message EMail Website
Phas(retired)
groupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmaster
@moose:
Some quick comments...

About the tables:
- In the 'progress' table you need at least a movement_number, to be able to replay the game. If you don't want to replay a game you need another table to 'save' the current game.

- In the table 'games' a <<status>> field would be helpful (white_plays, black_plays, white_won, ...). Why "`winner` VARCHAR( 255 )"?

About the code:
You started coding (I know, It's only a dirty example that doesn't allow a pawn to move from E2 to E4 ) but for a project that involves more than 1 programmer I'd start by defining what version control system to use (http://en.wikipedia.org/wiki/Version_control_system) and some other things that need to be cleared before anyone write a single line of code like naming convention (http://en.wikipedia.org/wiki/Identifier_naming_convention), programming style (http://en.wikipedia.org/wiki/Programming_style) or even the kind of license.
private message EMail Website
moose
groupmastergroupmastergroupmastergroupmastergroupmastergroupmaster
QuoteQuote from Phas(retired):
@moose:
Some quick comments...

About the tables:
- In the 'progress' table you need at least a movement_number, to be able to replay the game. If you don't want to replay a game you need another table to 'save' the current game.

I don't think so. The id is auto increment and we have a game id. So if you print "SELECT `from`, `to` FROM progress WHERE game_id=13 ORDER BY id ASC" you get all moves in the right order (but the ordering by id isn't nessesary)

QuoteQuote:

- In the table 'games' a <<status>> field would be helpful (white_plays, black_plays, white_won, ...). Why "`winner` VARCHAR( 255 )"?

I thought of the 'winner'-field as a status field.

QuoteQuote:

About the code:
You started coding (I know, It's only a dirty example that doesn't allow a pawn to move from E2 to E4 ) but for a project that involves more than 1 programmer I'd start by defining what version control system to use (http://en.wikipedia.org/wiki/Version_control_system) and some other things that need to be cleared before anyone write a single line of code like naming convention (http://en.wikipedia.org/wiki/Identifier_naming_convention), programming style (http://en.wikipedia.org/wiki/Programming_style) or even the kind of license.

I'm sorry, I never made such a project with that many people. I made linkone project (which seems to be down atm ...) with another programmer. We communicated via skype and so it was no problem with a the version. As this programmer has made a lot of work before, I just used his programming style.

so here are my thoughts about the programming style (or parts of the wiki entry :D):
Indenting
Whenever I get into another level, I indent with 4 spaces (8 spaces are equal to one tab), e.g.:
if ($hours < 24) {
    return true;
    if($minutes < 30){
        echo "I hope you know what I mean";
    }
} else {
    return false;
}

Vertical alignment
If two variables are assigned in two follwing lines, please align the equalations symbols vertically:
$search      = array('a',   'b',   'c',   'd',   'e');
$replacement = array('foo', 'bar', 'baz', 'quux');


Spacing
int i;
for (i = 0; i < 10; ++i) {
    printf("%d", i*i + i);
}


instead of
int i;
for(i=0;i<10;++i){
    printf("%d",i*i+i);
}


naming
I think this isn't important for php, is it? The names should be logical and in english, but with the automatic type conversation its not that important

edit: I just found a TBS-easter egg :D you can use the code-tag :D
Edited by moose on 22.10.2007 17:36:04
private message EMail Website
Phas(retired)
groupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmaster
QuoteQuote from moose:
I don't think so. ...

Well, that doesn't matter. I mean, it isn't important if I'm right or you are (or none or both of us), the important thing is that you didn't start the project by defining things and you started implementing them instead.
private message EMail Website
unknown user
you might want to start a project at https://launchpad.net/ or sourcefourge.net
this way you have easy access to source control, bugtracking, ..

also I would reconsider your "license statement", I suggest choosing an opensource licence or a licence that is even more free. A gpl, a bsd, a MIT license whatever. It allows you to ignore a lot of the problems. seeing as disgruntled people can then always just take the code and work on it on their own terms.
EMail
moose
groupmastergroupmastergroupmastergroupmastergroupmastergroupmaster
I've just registered the tbs chess project: linkhttps://launchpad.net/tbschess/

the license problem:
I would like a licese which forbids the use of the code without writing the origin (means the http://www.bright-shadows.net or ever person who has made a part of it), but allow almost every non-commercial use if you say the origin
The linkGNU GPL allows the commercial use. That means, someone could take our work and sell it. But the rest of the license sounds good and GIMP, GCC and MySQL are under the GNU GPL .... I think it sounds good. Do we have someone here who is interested in laws / licenses?
private message EMail Website
Towley
groupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmastergroupmaster
Dont take this project too big, but
i surely agree with phas that you 1st need to plan it.
Maybe learning by doing would work out fine for a simple php p2p chess, so
you(project leader) should start to code it and provide easy access to source and a playable version. also update this stuff on a regular basis.
Then the project can easily grow and you will see who is interested.

Here are some thoughts for this project:
- What is the input and the expected results (optimize sql tables and test with much data) this includes but is not limited to:
getCurrentGameState(gameid);
getReplay(gameid);
getRankings(page);
...and so on...
- Always expect weird input from users.
- Non Registree players... how about guests and bots(ai)

just my 20cents

PS: i dont have much idea of license, but i guess when you want to use gpl you can think about that later :)
private message Website

Topic: "TBS chess?" (page 2 of 6)

< 1 2 3 4 5 6 >