vincentvanbush / maumau

0 stars 0 forks source link

How to get started? #1

Open velnias75 opened 9 years ago

velnias75 commented 9 years ago

After patching your project (https://gist.github.com/velnias75/d3c1ce96e6a512ebc7d7) I got it compiled. But now how to get started? I started the server, than the client, connected to 127.0.0.1 and being stucked.

vincentvanbush commented 9 years ago

What do you mean by being stucked? Does the server send messages? Does the client's debug console say that it receives anything?

W dniu 05.02.2015 o 18:59, Heiko Schäfer pisze:

After patching your project (https://gist.github.com/velnias75/d3c1ce96e6a512ebc7d7) I got it compiled. But now how to get started? I started the server, than the client, connected to |127.0.0.1| and being stucked.

— Reply to this email directly or view it on GitHub https://github.com/vincentvanbush/maumau/issues/1.

velnias75 commented 9 years ago

I have just no plan how to play. A simple guide would be nice.

vincentvanbush commented 9 years ago

I'll surely put a README into the repo as soon as I have some free time.

Basically, you have to click 'new game' in one client, then select it in the other client(s) and click 'join'. Then, all clients should click 'ready' in their game windows, afterwards you're ready to play.

The gameplay user experience is a bit odd because we were hard pushed by the project's deadline at our university, so you basically have to enter all the cards you want to play in the textbox in the format: [color letter][card value], where color letter is in {C for clovers, H for hearts, P for pikes, T for tiles} and card value is in {2..10, K, Q, J}. In the request textbox, you need to type the requested thing if you're playing an A (color request) or a J (value request). Then click the 'move' button to get through. When you send an invalid move to the server, you'll receive an appropriate validation error message.

The rules vary from country to country and I'm having a hard time trying to find an English-language guide that matches the rules we implemented. :-| Basically, you can play 1-4 cards, first of which matches the value of the color of the top card on the table. 2s, 3s, HK and PK challenge the next player (in the case of PK, the previous player) to pick up a number of cards and a 4 challenges the next player to miss a turn.

Glad to see you interested in our little toy-project :-)

W dniu 05.02.2015 o 19:18, Heiko Schäfer pisze:

I have just no plan how to play. A simple guide would be nice.

— Reply to this email directly or view it on GitHub https://github.com/vincentvanbush/maumau/issues/1#issuecomment-73097413.

vincentvanbush commented 9 years ago

so you basically have to enter all the cards you want to play in the textbox in the format: [color letter][card value]

I forgot to add that the cards should be space-separated.

velnias75 commented 9 years ago

I'm interested because I'm developing my own Mau Mau server/client

Especially I'm interested in how the AI player is implemented in other Mau Mau's. So usually I do some test games and if I see the AI is not dumb as bread, I'm analysing it :smile_cat:

You are calling the suits different from the standard (spades/clubs/hearts and diamonds) I need to check which one maps to the standard.

But it is interesting which tasks you get at your university :+1:

vincentvanbush commented 9 years ago

I'll sure check out your project soon as well, card game AI is certainly an interesting subject. I guess that it's important to find a well-balanced AI card memory size so that the AI player doesn't get close to unbeatable towards the end of the game, when more and more cards are unveiled.

As you may have noticed, there is not a single notion of AI in our project - it was a Computer Networks task, we were told to implement something using BSD sockets so we thought it would be nice to just make this kind of a proof-of-concept game. :-)

As for the suits: tiles are diamonds, spades are pikes, clubs are clovers and hearts are... yeah, you guessed it - hearts. ;-)

W dniu 07.02.2015 o 12:24, Heiko Schäfer pisze:

I'm interested because I'm developing my own Mau Mau server https://github.com/velnias75/NetMauMau/client https://github.com/velnias75/NetMauMau-Qt-Client

Especially I'm interested in how the AI player is implemented in other Mau Mau's. So usually I do some test games and if I see the AI is not dumb as bread, I'm analysing it :smile_cat:

You are calling the suits different from the standard /(spades/clubs/hearts and diamonds)/ I need to check which one maps to the standard.

But it is interesting which tasks you get at your university :+1:

— Reply to this email directly or view it on GitHub https://github.com/vincentvanbush/maumau/issues/1#issuecomment-73360448.

velnias75 commented 9 years ago

Mau Mau is gambling, so it will be a really hard task to write an unbeatable non-cheating AI :grinning:

In my project I separated the AI code from the engine code in a way that the AI has only access to information a human player would have. Further I used the GSL ranlxs2 RNG implementation as well as the Knuth-shuffling algorithm (which we get for free as part of stdlibc++ of the GCC) This combination should come somehow close to a real life Mau Mau setup.

Based on that I try to get my AI as strong as possible. Currently I can win around 2/3 of the games. That's not as good as I want. If I let play 2 AI against each other, they play around 90-100 rounds.

Even socket programming... I guess German universities stick just on theory. Most of my experience I finally got at job and I have to admit afterwards, university was far away from preparing for job.

Don't know if it got better now. I left university in 2000.