package main import ( "fmt" "math/rand/v2" "os" ) var ( hiddenShips1 [][]string revealedShips1 [][]string ) func fillShips(tiles int) { hiddenShips1 = make([][]string, tiles) revealedShips1 = make([][]string, tiles) for i := 0; i < tiles; i++ { hiddenShips1[i] = make([]string, tiles) revealedShips1[i] = make([]string, tiles) } for i := 0; i < len(revealedShips1); i++ { for i1 := range revealedShips1[i] { shipChance := rand.IntN(3-0) + 0 if shipChance == 1 { revealedShips1[i][i1] = "S" } else { revealedShips1[i][i1] = "_" } } } for i := 0; i < len(hiddenShips1); i++ { for i1 := range hiddenShips1[i] { hiddenShips1[i][i1] = "_" } } } func game() { fmt.Printf("How many rows/columns would you like to have?\nChoice: ") var shipNum int fmt.Scanln(&shipNum) clear() fillShips(shipNum) fmt.Println("Player 1 (You):") //fillMatrix(PLAYER1_REAL_MATRIX) showMatrix(revealedShips1) fmt.Println() showMatrix(hiddenShips1) os.Exit(0) } func showMatrix(mat [][]string) { for i := 0; i < len(mat); i++ { for _, v := range mat[i] { fmt.Printf("%v ", v) } fmt.Println() } } func fillMatrix(mat [][]string) { for i := 0; i < len(mat); i++ { for i1 := range mat[i] { shipChance := rand.IntN(3-0) + 0 if shipChance == 1 { mat[i][i1] = "S" } else { mat[i][i1] = "_" } } } } // Trash zone: // func gameStatus(player1 [][]string, player2 [][]string) { // fmt.Println("Player 1 (You):") // fillMatrix(PLAYER1_REAL_MATRIX) // showMatrix(PLAYER1_REAL_MATRIX) // fmt.Println() // showMatrix(PLAYER1_HIDDEN_MATRIX) // fmt.Printf("\n\n") // fmt.Println("Player 2:") // fillMatrix(PLAYER2_REAL_MATRIX) // showMatrix(PLAYER2_REAL_MATRIX) // fmt.Println() // showMatrix(PLAYER2_HIDDEN_MATRIX) // // } // PLAYER1_REAL_MATRIX := [][]string{ // {"x", "x", "x", "x", "x", "x"}, // {"x", "x", "x", "x", "x", "x"}, // {"x", "x", "x", "x", "x", "x"}, // {"x", "x", "x", "x", "x", "x"}, // {"x", "x", "x", "x", "x", "x"}, // {"x", "x", "x", "x", "x", "x"}, // } // Holy hell this is a MUCH better way to initialize matrixes // PLAYER1_REAL_MATRIX := make([][]string, 5) // for i := 0; i < 5; i++ { // PLAYER1_REAL_MATRIX[i] = make([]string, 5) // } //PLAYER1_HIDDEN_MATRIX := PLAYER1_REAL_MATRIX // PLAYER1_HIDDEN_MATRIX := make([][]string, len(PLAYER1_REAL_MATRIX)) // copy(PLAYER1_HIDDEN_MATRIX, PLAYER1_REAL_MATRIX) // PLAYER2_REAL_MATRIX := [][]string{ // {"x", "x", "x", "x", "x", "x"}, // {"x", "x", "x", "x", "x", "x"}, // {"x", "x", "x", "x", "x", "x"}, // {"x", "x", "x", "x", "x", "x"}, // {"x", "x", "x", "x", "x", "x"}, // {"x", "x", "x", "x", "x", "x"}, // } // // PLAYER2_HIDDEN_MATRIX := PLAYER2_REAL_MATRIX // Forget it, I'm just going to implement a single player for now // for { // // fmt.Scanln() // }