Back to js-loops
02-cricket-scoreboard.js
JavaScript
1/**
2 * 🏏 Gully Cricket Scoreboard
3 *
4 * Mohalle ke bacche gully cricket khel rahe hain. Tu scorekeeper hai bhai!
5 * Har ball ka outcome ek array mein diya gaya hai. Tujhe scoreboard banana hai.
6 *
7 * Ball outcomes:
8 * - 0 = dot ball (no run)
9 * - 1 to 6 = runs scored on that ball
10 * - -1 = WICKET! Batsman out ho gaya
11 *
12 * Rules:
13 * - Loop through each ball in the array using a for loop
14 * - Track: totalRuns, totalBalls (all balls including wickets),
15 * wickets, fours (ball === 4), sixes (ball === 6)
16 * - IMPORTANT: Agar 10 wickets ho gaye, toh STOP! (use break)
17 * Innings khatam. Remaining balls are not counted.
18 *
19 * Validation:
20 * - Agar balls ek array nahi hai ya empty array hai,
21 * return karo: { totalRuns: 0, totalBalls: 0, wickets: 0, fours: 0, sixes: 0 }
22 *
23 * @param {number[]} balls - Array of ball outcomes
24 * @returns {{ totalRuns: number, totalBalls: number, wickets: number, fours: number, sixes: number }}
25 *
26 * @example
27 * cricketScoreboard([4, 0, 6, -1, 2, 1])
28 * // => { totalRuns: 13, totalBalls: 6, wickets: 1, fours: 1, sixes: 1 }
29 *
30 * cricketScoreboard([])
31 * // => { totalRuns: 0, totalBalls: 0, wickets: 0, fours: 0, sixes: 0 }
32 */
33export function cricketScoreboard(balls) {
34 if(!Array.isArray(balls) || balls.length === 0){
35 return { totalRuns: 0, totalBalls: 0, wickets: 0, fours: 0, sixes: 0 }
36 }
37console.log(balls);
38 let totalRuns = 0;
39 let totalBalls = 0;
40 let wickets = 0;
41 let fours = 0;
42 let sixes = 0;
43
44 for(let i=0; i< balls.length; i++){
45 totalBalls += 1
46 if(balls[i] == -1){
47 wickets+=1
48 if(wickets == 10){
49 break
50 }
51 }else if( 1 <= balls[i] <= 6 ){
52 totalRuns += balls[i]
53 if(balls[i] === 6){
54 sixes += 1
55 }
56 if(balls[i]=== 4){
57 fours += 1
58 }
59 }
60 }
61
62 return { totalRuns, totalBalls, wickets, fours, sixes}
63}
64