diff --git a/Pong b/Pong index 2214a0e..309454f 100755 Binary files a/Pong and b/Pong differ diff --git a/Pong.go b/Pong.go index ec95463..1e5d431 100644 --- a/Pong.go +++ b/Pong.go @@ -6,6 +6,8 @@ import ( "os/exec" "bytes" "github.com/pkg/term" + "sync" + "time" ) var gameBoard [10][30]string @@ -15,23 +17,25 @@ var Player1 [10]string var Player2 [10]string var P1index int var P2index int -var Ball [10][30]string var BallDirection [10][30]string var BallSpeed int var GameOver bool = false var LastPressedKey rune +var BallX, BallY int +var BallDirX, BallDirY int func main() { SpawnEverything() - Loop() + for !GameOver { + Ball() + Loop() + } } - func SpawnEverything() { CreateBoard() SpawnPlayers() SpawnBall() PrintBoard() - Loop() } func getch() []byte { @@ -134,3 +138,86 @@ func Loop() { } } } + +func Ball() { + BallX = 2 + BallY = 14 + BallDirX = 4 + BallDirY = 0 + + for BallX!=BallDirX && BallY!=BallDirY { + if BallX>BallDirX { + gameBoard[BallX][BallY] = " " + BallX-- + gameBoard[BallX][BallY] = "o" + PrintBoard() + + if BallY>BallDirY { + gameBoard[BallX][BallY] = " " + BallY-- + gameBoard[BallX][BallY] = "o" + PrintBoard() + time.Sleep(1 * time.Second) + } + if BallY BallDirY { + gameBoard[BallX][BallY] = " " + BallY-- + gameBoard[BallX][BallY] = "o" + PrintBoard() + time.Sleep(1 * time.Second) + } + } + if BallX==BallDirX { + if BallY < BallDirY { + gameBoard[BallX][BallY] = " " + BallY++ + gameBoard[BallX][BallY] = "o" + PrintBoard() + time.Sleep(1 * time.Second) + } + if BallY > BallDirY { + gameBoard[BallX][BallY] = " " + BallY-- + gameBoard[BallX][BallY] = "o" + PrintBoard() + time.Sleep(1 * time.Second) + } + } + } +} + +func Parallelize(functions ...func()) { + var waitGroup sync.WaitGroup + waitGroup.Add(len(functions)) + + defer waitGroup.Wait() + + for _, function := range functions { + go func(copy func()) { + defer waitGroup.Done() + copy() + }(function) + } +}