comb <- paste(tourn[5], tourn[6], sep = '')
split_str <- strsplit(comb, "\\|")
df <- matrix(unlist(split_str), ncol = 20, byrow = TRUE)
i <- 8
while (i < length(tourn)) {
  comb <- paste(tourn[i], tourn[i+1], sep = '')
split_str <- strsplit(comb, "\\|")
df_temp <- matrix(unlist(split_str), ncol = 20, byrow = TRUE)
df <- rbind(df, df_temp)
i <- i+3
}

df_trimmed <- df[, 1:12]
df_tourn <- matrix(df_trimmed, nrow = 64, ncol = 12, byrow = FALSE)
df_tourn <- as.data.frame(df_tourn)
colnames(df_tourn) <- c("num","name","total_points","game1","game2","game3","game4","game5","game6","game7","state","pre_score_bad_format")
count_games <- function(row) {
  game_results <- paste0(row[c('game1', 'game2', 'game3', 'game4', 'game5', 'game6', 'game7')], collapse = "")
  
  matches <- gregexpr("L|D|W", game_results)
  num_matches <- sum(lengths(regmatches(game_results, matches)))
  return(num_matches)
}

df_tourn$num_games <- apply(df_tourn[, c('game1', 'game2', 'game3', 'game4', 'game5', 'game6', 'game7')], 1, count_games)
df_organized <- df_tourn %>% mutate(pre_score = as.integer(sub(".*R:\\s*(\\d{3,4}).*", "\\1", pre_score_bad_format)))


col_base <- 'game'
i <- 1
df_organized[['num']] <- gsub("[^0-9]", "", df_organized[['num']])
df_temp <- subset(df_organized, select=c('num', 'pre_score'))
while (i<8) {
  col_name = paste0(col_base, i)
  df_organized[[col_name]] <- gsub("[^0-9]", "", df_organized[[col_name]])
  names(df_temp)[1] <- col_name
  names(df_temp)[2] <- paste0('pre_score_', col_name)
  df_organized <- df_organized %>% left_join(df_temp, by = col_name)
  i <- i+1
}
df_organized[is.na(df_organized)] <- 0
df_organized$avg_opponent = round(rowSums(df_organized[, 15:21], na.rm=TRUE)/df_organized$num_games)

df_final <- subset(df_organized, select=c('name', 'state', 'total_points', 'pre_score', 'avg_opponent'))
print(df_final)
##                                 name  state total_points pre_score avg_opponent
## 1   GARY HUA                            ON         6.0        1794         1605
## 2   DAKSHESH DARURI                     MI         6.0        1553         1469
## 3   ADITYA BAJAJ                        MI         6.0        1384         1564
## 4   PATRICK H SCHILLING                 MI         5.5        1716         1574
## 5   HANSHI ZUO                          MI         5.5        1655         1501
## 6   HANSEN SONG                         OH         5.0        1686         1519
## 7   GARY DEE SWATHELL                   MI         5.0        1649         1372
## 8   EZEKIEL HOUGHTON                    MI         5.0        1641         1468
## 9   STEFANO LEE                         ON         5.0        1411         1523
## 10  ANVIT RAO                           MI         5.0        1365         1554
## 11  CAMERON WILLIAM MC LEMAN            MI         4.5        1712         1468
## 12  KENNETH J TACK                      MI         4.5        1663         1506
## 13  TORRANCE HENRY JR                   MI         4.5        1666         1498
## 14  BRADLEY SHAW                        MI         4.5        1610         1515
## 15  ZACHARY JAMES HOUGHTON              MI         4.5        1220         1484
## 16  MIKE NIKITIN                        MI         4.0        1604         1386
## 17  RONALD GRZEGORCZYK                  MI         4.0        1629         1499
## 18  DAVID SUNDEEN                       MI         4.0        1600         1480
## 19  DIPANKAR ROY                        MI         4.0        1564         1426
## 20  JASON ZHENG                         MI         4.0        1595         1411
## 21  DINH DANG BUI                       ON         4.0        1563         1470
## 22  EUGENE L MCCLURE                    MI         4.0        1555         1300
## 23  ALAN BUI                            ON         4.0        1363         1214
## 24  MICHAEL R ALDRICH                   MI         4.0        1229         1357
## 25  LOREN SCHWIEBERT                    MI         3.5        1745         1363
## 26  MAX ZHU                             ON         3.5        1579         1507
## 27  GAURAV GIDWANI                      MI         3.5        1552         1222
## 28  SOFIA ADINA STANESCU-BELLU          MI         3.5        1507         1522
## 29  CHIEDOZIE OKORIE                    MI         3.5        1602         1314
## 30  GEORGE AVERY JONES                  ON         3.5        1522         1144
## 31  RISHI SHETTY                        MI         3.5        1494         1260
## 32  JOSHUA PHILIP MATHEWS               ON         3.5        1441         1379
## 33  JADE GE                             MI         3.5        1449         1277
## 34  MICHAEL JEFFERY THOMAS              MI         3.5        1399         1375
## 35  JOSHUA DAVID LEE                    MI         3.5        1438         1150
## 36  SIDDHARTH JHA                       MI         3.5        1355         1388
## 37  AMIYATOSH PWNANANDAM                MI         3.5         980         1385
## 38  BRIAN LIU                           MI         3.0        1423         1539
## 39  JOEL R HENDON                       MI         3.0        1436         1430
## 40  FOREST ZHANG                        MI         3.0        1348         1391
## 41  KYLE WILLIAM MURPHY                 MI         3.0        1403         1248
## 42  JARED GE                            MI         3.0        1332         1150
## 43  ROBERT GLEN VASEY                   MI         3.0        1283         1107
## 44  JUSTIN D SCHILLING                  MI         3.0        1199         1327
## 45  DEREK YAN                           MI         3.0        1242         1152
## 46  JACOB ALEXANDER LAVALLEY            MI         3.0         377         1358
## 47  ERIC WRIGHT                         MI         2.5        1362         1392
## 48  DANIEL KHAIN                        MI         2.5        1382         1356
## 49  MICHAEL J MARTIN                    MI         2.5        1291         1286
## 50  SHIVAM JHA                          MI         2.5        1056         1296
## 51  TEJAS AYYAGARI                      MI         2.5        1011         1356
## 52  ETHAN GUO                           MI         2.5         935         1495
## 53  JOSE C YBARRA                       MI         2.0        1393         1345
## 54  LARRY HODGE                         MI         2.0        1270         1206
## 55  ALEX KONG                           MI         2.0        1186         1406
## 56  MARISA RICCI                        MI         2.0        1153         1414
## 57  MICHAEL LU                          MI         2.0        1092         1363
## 58  VIRAJ MOHILE                        MI         2.0         917         1391
## 59  SEAN M MC CORMICK                   MI         2.0         853         1319
## 60  JULIA SHEN                          MI         1.5         967         1330
## 61  JEZZEL FARKAS                       ON         1.5         955         1327
## 62  ASHWIN BALAJI                       MI         1.0        1530         1186
## 63  THOMAS JOSEPH HOSMER                MI         1.0        1175         1350
## 64  BEN LI                              MI         1.0        1163         1263
write.csv(df_final, 'tournament_info.csv')