You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 
miguel 9cfef991a1 docs(zappy): fixing the audit and subject 2 years ago
..
README.md docs(zappy): fixing the audit and subject 2 years ago

README.md

Functional

Guidelines

Zappy is a long project to audit, for a full project review we advise you to spend around:
- 20 to 30 minutes for the server testing.
- 10 to 20 minutes for the graphic client testing.
- 5 to 10 minutes to test the client's AI.
Take the necessary time to check out the work of your peer carefully and ask him for guidance to understand his project.

Functional

The server

You will have to evaluate the functional and technical quality of the server.
Try to run "./server".
$ ./server
 Usage: ./server -p <port> -x <width> -y <height> -n <team> [<team>] [<team>] ... -c <nb> [-t <t>]
 -p port number
 -x world width
 -y world height
 -n team_name_1 team_name_2 ...
 -c number of clients authorized at the beginning of the game
 -t [100] time unit divider (the greater t is, the faster the game will go)
Does it display a result like the one presented above?
Try to run "./server -p 8080 -x 10 -y 10 -c 5 -n <TeamOfVictory> -t 10". Open another terminal and run "telnet 127.0.0.1 8080"
$ telnet 127.0.0.1 8080
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
WELCOME
Does it display result with a welcome message like the one presented above?
Use Vscode or a similar program and search for any exec functions like (execve,execpe,execl,execlp,execle,...).
Did the student use any of these functions?
Try to run "./server -p 8080 -x 10 -y 10 -c 5 -n <TeamOfVictory> <TeamOfPower>".
[ SQ ] : FOOD R0 R1 R2 R3 R4 R5 BOTS ...
[   0] :    2  1  2  1  1  0  0
[   1] :    2  2  0  1  0  0  0
[   2] :    0  0  1  0  0  0  0
[   3] :    1  2  1  0  0  0  0
...
[  97] :    3  0  1  3  0  0  0
[  98] :    1  1  0  0  0  0  0
[  99] :    0  1  0  0  0  0  0
Can you confirm that the number of columns and rows of the output are the same as the result above?
Try to run "./server -p 8080 -x 10 -y 10 -c 5 -n <TeamOfVictory> -t 10". Open another terminal and run "siege -b 127.0.0.1:8080".
Is the program ./server is still working?
Try to run "./server -p 8080 -x 10 -y 10 -c 5 -n <TeamOfVictory>" in two different terminals.
Does it display, in the second terminal, ERROR : Address already in use or something similar?

Client

Try to run "./client".
$ ./client
Usage: ./client -n <team> -p <port> [-h <hostname>]
 -n team_name
 -p port
 -h name of the host , the default is localhost
Does it display a result like the one presented above?
Try to run "./server -p 8080 -x 10 -y 10 -c 5 -n <TeamOfVictory>" then run "./client -n <TeamOfVictory> -p 8080" on a different terminal.
Does the program launch without any errors?
Try to run "./server -p 8080 -x 10 -y 10 -c 5 -n <TeamOfVictory>" then run "./client -n <TeamOfVictory> -p 8080 -h 127.0.0.1" on a different terminal.
Do the two programs interact with each other without errors?
Try to run "./server -p 8080 -x 10 -y 10 -c 5 -n <TeamOfVictory>" then run "./client -n <TeamNotWorking> -p 8080 -h 127.0.0.1"
Does the program print an error message like "Error: the team TeamNotWorking doesn't exist" in the server part, and the client is kicked out?

Graphic Client

Ask the owners of the project for help to connect the Graphic Client to the server.
Does the client properly connect to the server and display the map?
For the square content, test the possibility of clicking on a square to see the details about it. It should look like a floating window, tooltip, or something else.
Can you confirm that the square is showing its content somehow?
Can you confirm that it is possible to distinguish the number of all stones on a square?
Search in the map for the player, stones and food to see if they are visible.
Are the players, stones, and food visible in the map?
Try to click on a player to see his characteristics.
Is it possible to see some kind of floating window, tooltip, or something else with the characteristics of the player?
Can you confirm that it is possible to visualize the sounds?

PLAYER

Try to run a game and take a close look at what the players are doing.
Does each player starts with 10 food (1260 time units) and 0 stones?
Does each player starts on level 1?
Is the player able to pick up food?
Is the player able to pick up stones?
Can you confirm that if the player does not eat, he starves and die?
Can you confirm that if the player eats, he will survive longer?
Can the player perform the elevation ritual and level up?
Does the sight of the players increase with the level rising?
Can the player hatch an egg if he needs a spot in his family?
Can you confirm that if the player exits on the right side of the board, he will re-enter on the left side or vice versa?

resources

Can you confirm that food and stones exist as resources in the game?
Can you confirm that six types of stones are present in the game? (linemate, deraumere, sibur, mendiane, phiras, thystame)
Are resources randomly generated?

Food

Is one food unit equal to 126 time units?

Elevation ritual

Try to confirm that the rules of the elevation ritual are the same given in the subject. (ask the project owners for an explanation if necessary).
Are the elevation ritual rules exactly the same?

Broadcast

Pai attention to the broadcast messages.
broadcast <text>
Can you confirm that in order to send a message, the client must send the command above to the server.
After the client send the command to the server, he will send to all its clients the following line:
message <K>,<text>
Can you confirm that the server replied the above message with K indicating the square where the sound comes from?

The AI Client

Test with a -t between 50 and 100 .
Test if the time taken by each movement and action is respected?

General

+Is the visualizer in 3D?
+Is the server using only one process (no threads)?

Basic

+Does the project run quickly and effectively (favoring recursive, no unnecessary data requests, etc.)?
+Does the code obey the good practices?

Social

+Did you learn anything from this project?
+Would you recommend/nominate this program as an example for the rest of the school?