![]() |
Mòdul
4
![]() |
Fonaments de
Programació. Llenguatge C/C++![]() |
Pràctica ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() |
![]() |
![]() |
Pràctica
d'ampliació ![]() |
![]() |
Simulació del clàssic joc dels xinos
Com a primera pràctica de simulació d'un joc hem triat aquest senzill i tradicional joc dels "xinos". En aquesta pràctica es veurà diferents casos d'elecció de números aleatoris.
|
|||||
![]() |
Desenvolupament de la pràctica
En aquest joc, que en aquest cas es jugarà només amb 2 "jugadors" (l'usuari i l'ordinador), cadascú dels jugadors ha de "pensar" un número enter entre 0 i 3 i, també ha de fer una previsió de la suma de les puntuacions pensades pels dos jugadors. Guanya el jugador que encerti aquesta suma. Definiu un projecte nou anomenat m4p05 i afegiu-li un arxiu de font C/C++ anomenat m4p05.cpp. Escriviu el següent codi:
Explicació del programa En aquest programa es fa servir les variables jo i po per emmagatzemar la jugada i la previsió que fa l'ordinador, i les variables jh i ph per emmagatzemar la jugada i la previsió que fa l'usuari (l'humà). En aquesta versió del programa sempre comença l'humà a fer la seva previsió. La lectura d'aquesta dada es fa en aquesta línia de sentències múltiples:
Normalment, s'escriu una sentència en una línia diferent, però en alguns casos pot considerar-se la possibilitat d'agrupar-ne diverses de diferents en una mateixa línia sempre que siguin curtes i que faci el codi més clar. Com moltes coses, això dependrà de l'estil o del gust de cadascú. La jugada de l'ordinador es crea a l'atzar amb la següent sentència:
C/C++ incorpora a la seva llibreria estàndard aquesta funció que calcula un número pseudoaleatori entre 0 i 32767, la funció té el prototipus: int rand() i per tal de fer-la servir s'ha d'incloure l'arxiu de capçalera stdlib.h. L'expressió de la dreta en la línia anterior serà un nombre aleatori entre 0 i 3. La previsió de l'ordinador no es fa realment a l'atzar sinó depenent de les dades que en té: jo i ph. Podem dir que la part següent del codi és la part "intel·ligent", la que decideix una o altra opció segons la jugada de l'humà:
Si la previsió de l'humà és 0, l'ordinador sap que la jugada de l'humà és 0 i, per tant decideix que la seva previsió serà igual a la seva jugada. Si la previsió de l'humà és 1, l'ordinador sap que la jugada de l'humà és 0 o 1, per tant decideix que la seva previsió serà igual a la seva jugada més un nombre aleatori que pot ser 0 o 1. ... Si la previsió de l'humà és 5, l'ordinador sap que la jugada de l'humà és 2 o 3, per tant decideix que la seva previsió serà igual a la seva jugada més un nombre aleatori que pot ser 2 o 3. Per últim, si la previsió de l'humà és 6, l'ordinador sap que la jugada de l'humà és 3, per tant decideix que la seva previsió serà igual a la seva jugada més 3. Una vegada decidida la previsió es demana la jugada de l'humà per decidir qui ha guanyat augmentant en 1 el marcador corresponent i tornant de nou. El programa acaba en el moment que s'introdueix una tecla errònia.
|