diff --git a/Tetris/app/src/main/java/but/androidstudio/tetris/GameFragment.kt b/Tetris/app/src/main/java/but/androidstudio/tetris/GameFragment.kt index 31d904e..5cd7482 100644 --- a/Tetris/app/src/main/java/but/androidstudio/tetris/GameFragment.kt +++ b/Tetris/app/src/main/java/but/androidstudio/tetris/GameFragment.kt @@ -1,11 +1,15 @@ package but.androidstudio.tetris import android.os.Bundle +import android.util.Log import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.Button +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.delay +import kotlinx.coroutines.launch import modele.Game import views.ViewsGame diff --git a/Tetris/app/src/main/java/modele/DashBoard.kt b/Tetris/app/src/main/java/modele/DashBoard.kt index 74a6410..55e067b 100644 --- a/Tetris/app/src/main/java/modele/DashBoard.kt +++ b/Tetris/app/src/main/java/modele/DashBoard.kt @@ -1,5 +1,7 @@ package modele +import android.util.Log +import kotlinx.coroutines.delay import views.ViewsGame class DashBoard(private val width: Int,private val height: Int,private val view: ViewsGame) { @@ -196,4 +198,13 @@ class DashBoard(private val width: Int,private val height: Int,private val view: view.tableau = gridOfGame view.invalidate() } + + suspend fun fallingShape(shape: Shape){ + delay(800) + moveDown(shape) + } + + fun rotateRight(shape: Shape){ + + } } \ No newline at end of file diff --git a/Tetris/app/src/main/java/modele/Game.kt b/Tetris/app/src/main/java/modele/Game.kt index 81c63c3..9bc397c 100644 --- a/Tetris/app/src/main/java/modele/Game.kt +++ b/Tetris/app/src/main/java/modele/Game.kt @@ -1,6 +1,9 @@ package modele -import android.view.InputQueue +import android.util.Log +import kotlinx.coroutines.GlobalScope +import kotlinx.coroutines.cancel +import kotlinx.coroutines.launch import views.ViewsGame class Game(private val width: Int,private val height: Int,private val viewGame:ViewsGame) { @@ -15,18 +18,6 @@ class Game(private val width: Int,private val height: Int,private val viewGame:V fun startGame(){ //this.setCurrentShape(TypeShape.SquareShape) - currentShape = Shape(TypeShape(EnumTypeShape.IShape),Position(2,5)) - dashBoard.addShape(currentShape) - - currentShape = Shape(TypeShape(EnumTypeShape.SquareShape),Position(2,6)) - dashBoard.addShape(currentShape) - - currentShape = Shape(TypeShape(EnumTypeShape.TShape),Position(2,8)) - dashBoard.addShape(currentShape) - - currentShape = Shape(TypeShape(EnumTypeShape.ZShape),Position(2,10)) - dashBoard.addShape(currentShape) - currentShape = Shape(TypeShape(EnumTypeShape.SShape),Position(1,1)) dashBoard.addShape(currentShape) @@ -34,10 +25,13 @@ class Game(private val width: Int,private val height: Int,private val viewGame:V dashBoard.gridOfGame[1][0] = 2 dashBoard.gridOfGame[1][6] = 3 - //println(currentShape.position.getX()) - //println(currentShape.position.getY()) println("RUN !!") dashBoard.updateViewGame() - } + GlobalScope.launch { + while (true){ + dashBoard.fallingShape(currentShape) + } + } + } } \ No newline at end of file diff --git a/Tetris/app/src/main/java/modele/Shape.kt b/Tetris/app/src/main/java/modele/Shape.kt index 94e3b79..0d20b0a 100644 --- a/Tetris/app/src/main/java/modele/Shape.kt +++ b/Tetris/app/src/main/java/modele/Shape.kt @@ -3,13 +3,6 @@ package modele import java.lang.reflect.Type class Shape(val typeShape: TypeShape,var position: Position) { - - //private var sharePosition = mutableListOf() - -/* init { - val - }*/ - fun sharePositionRight():MutableList{ val sharePosition = mutableListOf() for( line in 0..3){ @@ -61,17 +54,22 @@ class Shape(val typeShape: TypeShape,var position: Position) { return sharePosition } - fun rotateLeft(){ - //val tmp = this.position.getX() - //this.position.setX(this.position.getY() * -1) - //this.position.setY(tmp) - //update - } - fun rotateRight(){ - //val tmp = this.position.getX() - //this.position.setX(this.position.getY()) - //this.position.setY(tmp * -1) - //update + fun sharePositionUp(shape: Shape): MutableList{ + val sharePosition = mutableListOf() + for( line in 0..3){ + for (column in 0..3) { + if ( line != 3 ){ + if ( (typeShape.showShape[line][column] == 1) and (typeShape.showShape[line+1][column] == 0)){ + sharePosition.add(Position(column,line)) + } + } + if ( (line == 3) and (typeShape.showShape[line][column] == 1) ){ + sharePosition.add(Position(column,line)) + } + } + } + + return sharePosition } } \ No newline at end of file diff --git a/Tetris/app/src/main/java/views/ViewsGame.kt b/Tetris/app/src/main/java/views/ViewsGame.kt index 4234455..e89fd68 100644 --- a/Tetris/app/src/main/java/views/ViewsGame.kt +++ b/Tetris/app/src/main/java/views/ViewsGame.kt @@ -66,12 +66,9 @@ class ViewsGame(context:Context, attrs: AttributeSet?) : View(context, attrs) { tableau[6][3] = 7 tableau[6][4] = 7 tableau[7][4] = 7 -<<<<<<< HEAD tableau[7][5] = 7*/ -======= tableau[7][5] = 7 */ ->>>>>>> Enzo myPaint.color = Color.GRAY canvas.drawRect(0F,0F,tailleTableauLargeur,tailleTableauHauteur,myPaint)