mirror of https://github.com/01-edu/public.git
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.
175 lines
5.6 KiB
175 lines
5.6 KiB
2 years ago
|
#### Functional
|
||
|
|
||
|
**_Guildlines_**
|
||
|
|
||
|
##### Zappy isn't a trivial project o correct. it is also long project to grade. For a full Project you need to spend aroung:
|
||
|
|
||
|
###### - 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, Between 35 and 60 minutes in total
|
||
|
|
||
|
**_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)
|
||
|
|
||
|
|
||
|
|
||
|
**_The server_**
|
||
|
|
||
|
###### You will have to evaluate the functional and technical quality of the server.
|
||
|
|
||
|
##### Try to run `"./server"`.
|
||
|
|
||
|
```console
|
||
|
$ ./server
|
||
|
Usage: ./server -p <port> -w <width> -y <height> -nt <team> [<team>] [<team>] ... -c <nb> [-t <t>]
|
||
|
-p port number
|
||
|
-w world width
|
||
|
-y world height
|
||
|
-nt 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 the correct result as above?
|
||
|
|
||
|
##### Try to run `./server -p 8080 -x 10 -y 10 -c 5 -nt "TeamOfVectory" -t 10` then open another terminal and run `telenet 127.0.0.1 8080`
|
||
|
|
||
|
```console
|
||
|
$ telnet 127.0.0.1 8080
|
||
|
Trying 127.0.0.1...
|
||
|
Connected to 127.0.0.1.
|
||
|
Escape character is '^]'.
|
||
|
WELCOME
|
||
|
```
|
||
|
###### Does it display the correct result as above?
|
||
|
|
||
|
##### Use Vscode or a simular program and search about any `exec` functions like [`execve`,`execpe`,`execl`,`execlp`,`execle`,...]
|
||
|
###### Did he/she use one of those function ?
|
||
|
|
||
|
##### Try to run `"./server -p 8080 -x 10 -y 10 -c 5 -nt TeamOfVectory TeamOfPower "`
|
||
|
|
||
|
```console
|
||
|
[ SQ ] : FOOD R0 R1 R2 R3 R4 R5 BOTS ...
|
||
|
[ 0] : 0 1 0 0 0 0 0
|
||
|
[ 1] : 0 3 2 0 0 0 0
|
||
|
...
|
||
|
[ 97] : 1 3 1 0 0 0 0
|
||
|
[ 98] : 0 1 0 0 0 0 0
|
||
|
[ 99] : 0 4 0 0 0 0 0
|
||
|
```
|
||
|
|
||
|
###### Does it display the correct result as above? check only the first column and the first row of output
|
||
|
|
||
|
##### Try to run `"./server -p 8080 -x 10 -y 10 -c 5 -nt TeamOfVectory -t 10"`, then open another terminal and run `"siege -b 127.0.0.1:8080"`
|
||
|
|
||
|
###### The program `./server` is still working ?
|
||
|
|
||
|
##### + Try to run `"./server -p 8080 -x 10 -y 10 -c 5 -nt TeamOfVectory"` at 2 terminal separate
|
||
|
|
||
|
###### Does it display in the second terminal `error: Address already in use` or something simular?
|
||
|
|
||
|
**_Client_**
|
||
|
|
||
|
##### Try to run `"./client"`
|
||
|
|
||
|
```console
|
||
|
$ ./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 the correct result as above?
|
||
|
|
||
|
##### Try to run `"./server -p 8080 -x 10 -y 10 -c 5 -nt TeamOfVectory"` then run `"./client -n TeamOfVectory -p 8080"`
|
||
|
|
||
|
###### Does the program launch without any errors?
|
||
|
|
||
|
##### Try to run `"./server -p 8080 -x 10 -y 10 -c 5 -nt TeamOfVectory"` then run `"./client -n TeamOfVectory -p 8080 -h 127.0.0.1"`
|
||
|
|
||
|
###### Do the two programs interact with each other?
|
||
|
|
||
|
##### Try to run `"./server -p 8080 -x 10 -y 10 -c 5 -nt TeamOfVectory"` then run `"./client -n TeamNotWorking -p 8080 -h 127.0.0.1"`
|
||
|
|
||
|
###### Does the program print `"Error: the team TeamNotWorking doesn't exist"` in server part and the client kick out ?
|
||
|
|
||
|
**_Graphic Client_**
|
||
|
|
||
|
###### For the square content, Test the possibility of clicking on a square to see details about it like a floating window, tooltip, or something else?
|
||
|
|
||
|
###### For an Advance client, Is it possible to distinguish the number of similar stones on a square?
|
||
|
|
||
|
###### Does the client connects properly to the server and displays the map?
|
||
|
|
||
|
###### For a graphic client vision, are the players, stones, and food visible?
|
||
|
|
||
|
###### Can you (as a graphic client) click on a player to see his characteristics in a floating window, tooltip, or something else?
|
||
|
|
||
|
##### Is it possible to scroll a map?
|
||
|
|
||
|
###### Does each player starts on level 1?
|
||
|
|
||
|
###### Is the player able to pick up food?
|
||
|
|
||
|
###### Is one food unit equal to 126-time units?
|
||
|
|
||
|
##### Try to run `go run . example00.txt`.
|
||
|
|
||
|
###### Is the player able to pick up stones?
|
||
|
|
||
|
###### Can you confirm that if the player does not eat, he starves?
|
||
|
|
||
|
###### Can you confirm that if the player eats, he will survive longer?
|
||
|
|
||
|
###### Can the player level up when it can confirm the requirements to do so?
|
||
|
|
||
|
###### Does the sight of the players increase with the level?
|
||
|
|
||
|
###### 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?
|
||
|
|
||
|
###### Is there sound management for broadcast?
|
||
|
|
||
|
##### Try to confirm that the rules of the elevation ritual are the same given in the subject.
|
||
|
|
||
|
###### Are the elevation ritual rules the same?
|
||
|
|
||
|
###### Can you confirm that in order to elevate to `level 2`, the player needs the stone `linemate`
|
||
|
|
||
|
###### Can you confirm that to elevate to `level 3`, the player needs a combination of the stones `linemate,` `deraumere,` `sibur,` and two players on the same level?
|
||
|
|
||
|
###### Can you confirm If the movements left and right commands are working?
|
||
|
|
||
|
**_The AI Client_**
|
||
|
|
||
|
###### Test with a t betwen 50 and 100 .
|
||
|
|
||
|
###### Test if the time taken by each movement and action is respected?
|
||
|
|
||
|
###### Try to run `"./server "`
|
||
|
|
||
|
#### General
|
||
|
|
||
|
###### +Is the visualizer in 3D?
|
||
|
|
||
|
#### Basic
|
||
|
|
||
|
###### +Does the project run quickly and effectively (favoring recursive, no unnecessary data requests, etc.)?
|
||
|
|
||
|
###### +Does the code obey the [good practices](../../good-practices/README.md)?
|
||
|
|
||
|
#### Social
|
||
|
|
||
|
###### +Did you learn anything from this project?
|
||
|
|
||
|
###### +Would you recommend/nominate this program as an example for the rest of the school?
|
||
|
|