satyacode
Background
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