-
Notifications
You must be signed in to change notification settings - Fork 0
/
dice.js
190 lines (137 loc) · 3.96 KB
/
dice.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
/********************************************************
* Juguemos a los dados!! *
* *
* Deben implementar las funciones faltantes según *
* los comentarios que encuentran en cada una de ellas *
********************************************************/
var myScore = 0; // Tu Puntaje
var robotScore = 0; // Puntaje Robot!
var maxScore = 100; // Puntaje Maximo!
var myName; // Nombre del Jugador
// Función Principal del Programa
// Tip: No necesitan modificar aquí ;)
var main = function() {
// Solicitamos el Nombre del Jugador
myName = prompt("Nombre del Jugador");
drawName(myName);
// Jugamos hasta que exista un ganador!!
while(!isWinner(myScore, robotScore)) {
play();
}
};
// Turno de Juego
// Cada Jugador debe lanzar 2 dados
// Tip: No necesitan modificar aquí ;)
var play = function() {
// Tu Jugador
var my1 = rollDice();
var my2 = rollDice();
drawPlay(myName, my1, my2);
// Robot
var robot1 = rollDice();
var robot2 = rollDice();
drawPlay('Robot', robot1, robot2);
// Calculamos los puntajes
myScore += calculateScore(my1, my2);
robotScore += calculateScore(robot1, robot2);
drawScore('my', myScore);
drawScore('robot', robotScore);
};
/* Punto 1 - Lanzar un dado
* Utilizando la funcion rand(number) deberas
* retornar un numero entre el 1 y el 6
*/
var rollDice = function() {
return rand (6) ;
};
/* Punto 2 - Calcular Puntaje
* El puntaje se calcula sumando el valor de los dados
*
* Exepciones:
* Si al menos un dado es 1: 1 punto
* Si son pares: El doble de la suma de los dados
*/
var calculateScore = function(d1, d2) {
var score = d1+d2;
if(isOne(d1, d2)) {
score=1;
// Puntaje si al menos hay un 1
} else if(isPair(d1, d2)) {
score=(d1+d2)*2;
// Puntaje si es par
} else {
score=score;
// Puntaje por defecto
}
return score;
};
/* Punto 2.1 - Verificar si hay algun 1 */
var isOne = function(d1, d2) {
if(d1==1||d2==1){
return true;
}
else{
return false;
}
};
/* Punto 2.2 - Verificar si son pares */
var isPair = function(d1, d2) {
if(d1==d2){
return true;
}
else{
return false;
}
};
/* Punto 3 - Calcular Ganador
*
* Si alguno de los dos jugadores llega al maximo
* puntaje habra un ganador.
*
* Gana el que tenga mayor puntaje
*
* Para anunciar al ganador deberas usar las funciones:
* winner('my') o winner('robot')
*
*
* La funcion debe retornar true o false en caso de haber
* o no un ganador.
*/
var isWinner = function(my, robot) {
if (my>maxScore || robot>maxScore){
if (my>robot){
winner('my')
return true;
}
else {
winner('robot');
return true;
}
}
else {
return false;
}
}
/**********************************************
* POR FAVOR NO MODIFICAR ESTAS FUNCIONES :) *
**********************************************/
var rand = function(number) {
return Math.floor(Math.random(number)*number) + 1;
};
var drawPlay = function(who, d1, d2) {
var message = document.createElement('p');
var text = document.createTextNode(who + ': ' + d1 + ' y ' + d2 + ' - Ganó ' + calculateScore(d1, d2) + ' puntos');
message.appendChild(text);
document.getElementById('result').appendChild(message);
};
var drawScore = function(who, points) {
document.getElementById(who + 'Score').innerHTML = points;
};
var drawName = function(name) {
document.getElementById('username').innerHTML = name;
};
var winner = function(who) {
document.getElementById(who + 'Score').style.color = '#0F0';
};
main();