package main import ( "fmt" "math/rand/v2" "os" ) func game() { clear() // 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 // 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() // } fmt.Println("Player 1 (You):") fillMatrix(PLAYER1_REAL_MATRIX) showMatrix(PLAYER1_REAL_MATRIX) fmt.Println() showMatrix(PLAYER1_HIDDEN_MATRIX) os.Exit(0) } // 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) // // } 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(2-0) + 0 if shipChance == 1 { mat[i][i1] = "S" } else { mat[i][i1] = "_" } } } }