diff --git a/Tetris/.idea/vcs.xml b/Tetris/.idea/vcs.xml index 6c0b863..d23592a 100644 --- a/Tetris/.idea/vcs.xml +++ b/Tetris/.idea/vcs.xml @@ -1,6 +1,7 @@ + \ No newline at end of file diff --git a/Tetris/app/src/main/AndroidManifest.xml b/Tetris/app/src/main/AndroidManifest.xml index 902036d..51d0ed1 100644 --- a/Tetris/app/src/main/AndroidManifest.xml +++ b/Tetris/app/src/main/AndroidManifest.xml @@ -11,7 +11,36 @@ android:supportsRtl="true" android:theme="@style/Theme.Tetris" tools:targetApi="31"> + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/Tetris/app/src/main/java/tetrisGame/activity/MainActivity.kt b/Tetris/app/src/main/java/activity/MainActivity.kt similarity index 100% rename from Tetris/app/src/main/java/tetrisGame/activity/MainActivity.kt rename to Tetris/app/src/main/java/activity/MainActivity.kt diff --git a/Tetris/app/src/main/java/but/androidstudio/tetris/GameFragment.kt b/Tetris/app/src/main/java/but/androidstudio/tetris/GameFragment.kt new file mode 100644 index 0000000..1a4232c --- /dev/null +++ b/Tetris/app/src/main/java/but/androidstudio/tetris/GameFragment.kt @@ -0,0 +1,31 @@ +package but.androidstudio.tetris + +import android.os.Bundle +import androidx.fragment.app.Fragment +import android.view.LayoutInflater +import android.view.View +import android.view.ViewGroup +import views.ViewsGame + +class GameFragment : Fragment() { + override fun onCreate(savedInstanceState: Bundle?) { + super.onCreate(savedInstanceState) + } + + override fun onCreateView( + inflater: LayoutInflater, container: ViewGroup?, + savedInstanceState: Bundle? + ): View? { + // Inflate the layout for this fragment + return inflater.inflate(R.layout.fragment_game, container, false) + } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + val view = view.findViewById(R.id.tabGame) + + //To clean the window + view.invalidate() + } +} \ No newline at end of file diff --git a/Tetris/app/src/main/java/but/androidstudio/tetris/MainFragment.kt b/Tetris/app/src/main/java/but/androidstudio/tetris/MainFragment.kt index 3660f53..49a0ff1 100644 --- a/Tetris/app/src/main/java/but/androidstudio/tetris/MainFragment.kt +++ b/Tetris/app/src/main/java/but/androidstudio/tetris/MainFragment.kt @@ -5,12 +5,9 @@ import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.Button class MainFragment : Fragment() { - override fun onViewCreated(view: View, savedInstanceState: Bundle?) { - super.onViewCreated(view, savedInstanceState) - } - override fun onCreateView( inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle? @@ -18,4 +15,24 @@ class MainFragment : Fragment() { // Inflate the layout for this fragment return inflater.inflate(R.layout.fragment_main, container, false) } + + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + val buttonStart: Button = view.findViewById(R.id.buttonStart) + buttonStart.setOnClickListener { + val fragmentManager = requireActivity().supportFragmentManager + fragmentManager.beginTransaction() + .replace(R.id.homeLayout, GameFragment()) + .commit() + } + + val buttonOption: Button = view.findViewById(R.id.buttonOption) + buttonOption.setOnClickListener { + val fragmentManager = requireActivity().supportFragmentManager + fragmentManager.beginTransaction() + .replace(R.id.homeLayout, OptionFragment()) + .commit() + } + } } \ No newline at end of file diff --git a/Tetris/app/src/main/java/but/androidstudio/tetris/OptionFragment.kt b/Tetris/app/src/main/java/but/androidstudio/tetris/OptionFragment.kt index d4f6147..d3558d0 100644 --- a/Tetris/app/src/main/java/but/androidstudio/tetris/OptionFragment.kt +++ b/Tetris/app/src/main/java/but/androidstudio/tetris/OptionFragment.kt @@ -5,28 +5,13 @@ import androidx.fragment.app.Fragment import android.view.LayoutInflater import android.view.View import android.view.ViewGroup +import android.widget.AdapterView +import android.widget.ArrayAdapter +import android.widget.Spinner -// TODO: Rename parameter arguments, choose names that match -// the fragment initialization parameters, e.g. ARG_ITEM_NUMBER -private const val ARG_PARAM1 = "param1" -private const val ARG_PARAM2 = "param2" - -/** - * A simple [Fragment] subclass. - * Use the [OptionFragment.newInstance] factory method to - * create an instance of this fragment. - */ class OptionFragment : Fragment() { - // TODO: Rename and change types of parameters - private var param1: String? = null - private var param2: String? = null - override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) - arguments?.let { - param1 = it.getString(ARG_PARAM1) - param2 = it.getString(ARG_PARAM2) - } } override fun onCreateView( @@ -37,23 +22,24 @@ class OptionFragment : Fragment() { return inflater.inflate(R.layout.fragment_option, container, false) } - companion object { - /** - * Use this factory method to create a new instance of - * this fragment using the provided parameters. - * - * @param param1 Parameter 1. - * @param param2 Parameter 2. - * @return A new instance of fragment OptionFragment. - */ - // TODO: Rename and change types and number of parameters - @JvmStatic - fun newInstance(param1: String, param2: String) = - OptionFragment().apply { - arguments = Bundle().apply { - putString(ARG_PARAM1, param1) - putString(ARG_PARAM2, param2) - } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + val spinnerDifficulty: Spinner = view.findViewById(R.id.spinnerDifficulty) + val difficulty = arrayOf("Easy","Medium","Hard") + + /*val adaptateurSpinnerDifficulty = ArrayAdapter(this,android.R.layout.simple_spinner_dropdown_item,difficulty) + spinnerDifficulty.adapter = adaptateurSpinnerDifficulty + + spinnerDifficulty.setOnItemSelectedListener(object : AdapterView.OnItemSelectedListener { + override fun onItemSelected(parent: AdapterView<*>, view: View?, position: Int, id: Long) { + val selectedItem = parent.getItemAtPosition(position).toString() + // Faites quelque chose avec l'élément sélectionné + } + + override fun onNothingSelected(parent: AdapterView<*>) { + // Ne rien faire si aucun élément n'est sélectionné } + })*/ } } \ No newline at end of file diff --git a/Tetris/app/src/main/java/tetrisGame/activity/Game.kt b/Tetris/app/src/main/java/tetrisGame/activity/Game.kt deleted file mode 100644 index cf702c0..0000000 --- a/Tetris/app/src/main/java/tetrisGame/activity/Game.kt +++ /dev/null @@ -1,34 +0,0 @@ -package tetrisGame.activity - -import android.graphics.Canvas -import androidx.appcompat.app.AppCompatActivity -import android.os.Bundle -import android.view.View -import android.widget.ImageView -import androidx.core.content.ContextCompat -import but.androidstudio.tetris.R -import tetrisGame.views.ViewsGame -import modele.Game - -class Game : AppCompatActivity() { - - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - - setContentView(R.layout.activity_game) - - val view = findViewById(R.id.tabGame) - - //Pour nettoyer la vue - view.invalidate() - - } - - override fun onResume() { - super.onResume() - val myGame: modele.Game = Game(10,20) - myGame.startGame() - } - - -} \ No newline at end of file diff --git a/Tetris/app/src/main/java/tetrisGame/activity/Menu.kt b/Tetris/app/src/main/java/tetrisGame/activity/Menu.kt deleted file mode 100644 index 5621d69..0000000 --- a/Tetris/app/src/main/java/tetrisGame/activity/Menu.kt +++ /dev/null @@ -1,34 +0,0 @@ -package tetrisGame.activity - -import android.content.Intent -import androidx.appcompat.app.AppCompatActivity -import android.os.Bundle -import android.widget.Button -import android.widget.TextView -import but.androidstudio.tetris.R - -class Menu : AppCompatActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_menu) - - val appName:TextView = findViewById(R.id.appName) - appName.setText(R.string.app_name) - } - - override fun onResume() { - super.onResume() - - val buttonStart:Button = findViewById(R.id.buttonStart) - buttonStart.setOnClickListener { - val intentStart = Intent(this,Game::class.java) - startActivity(intentStart) - } - - val buttonOption:Button = findViewById(R.id.buttonOption) - buttonOption.setOnClickListener { - val intentOption = Intent(this,Option::class.java) - startActivity(intentOption) - } - } -} \ No newline at end of file diff --git a/Tetris/app/src/main/java/tetrisGame/activity/Option.kt b/Tetris/app/src/main/java/tetrisGame/activity/Option.kt deleted file mode 100644 index 9d74a23..0000000 --- a/Tetris/app/src/main/java/tetrisGame/activity/Option.kt +++ /dev/null @@ -1,39 +0,0 @@ -package activity - -import android.os.Bundle -import android.view.View -import android.widget.AdapterView -import android.widget.ArrayAdapter -import android.widget.Spinner -import androidx.appcompat.app.AppCompatActivity -import but.androidstudio.tetris.R - -class Option : AppCompatActivity() { - override fun onCreate(savedInstanceState: Bundle?) { - super.onCreate(savedInstanceState) - setContentView(R.layout.activity_option) - } - - override fun onResume() { - super.onResume() - - val spinnerDifficulty:Spinner = findViewById(R.id.spinnerDifficulty) - val difficulty = arrayOf("Easy","Medium","Hard") - - val adaptateurSpinnerDifficulty = ArrayAdapter(this,android.R.layout.simple_spinner_dropdown_item,difficulty) - spinnerDifficulty.adapter = adaptateurSpinnerDifficulty - - spinnerDifficulty.setOnItemSelectedListener(object : AdapterView.OnItemSelectedListener { - override fun onItemSelected(parent: AdapterView<*>, view: View?, position: Int, id: Long) { - val selectedItem = parent.getItemAtPosition(position).toString() - // Faites quelque chose avec l'élément sélectionné - } - - override fun onNothingSelected(parent: AdapterView<*>) { - // Ne rien faire si aucun élément n'est sélectionné - } - }) - - - } -} \ No newline at end of file diff --git a/Tetris/app/src/main/java/tetrisGame/views/ViewsGame.kt b/Tetris/app/src/main/java/views/ViewsGame.kt similarity index 97% rename from Tetris/app/src/main/java/tetrisGame/views/ViewsGame.kt rename to Tetris/app/src/main/java/views/ViewsGame.kt index 658989e..c7d2549 100644 --- a/Tetris/app/src/main/java/tetrisGame/views/ViewsGame.kt +++ b/Tetris/app/src/main/java/views/ViewsGame.kt @@ -1,11 +1,9 @@ -package tetrisGame.views +package views -import android.annotation.SuppressLint import android.content.Context import android.graphics.Canvas import android.graphics.Color import android.graphics.Paint -import android.graphics.Rect import android.util.AttributeSet import android.view.View diff --git a/Tetris/app/src/main/res/layout/activity_option.xml b/Tetris/app/src/main/res/layout/activity_option.xml deleted file mode 100644 index f9433dd..0000000 --- a/Tetris/app/src/main/res/layout/activity_option.xml +++ /dev/null @@ -1,33 +0,0 @@ - - - - - - - - - - \ No newline at end of file diff --git a/Tetris/app/src/main/res/layout/activity_game.xml b/Tetris/app/src/main/res/layout/fragment_game.xml similarity index 87% rename from Tetris/app/src/main/res/layout/activity_game.xml rename to Tetris/app/src/main/res/layout/fragment_game.xml index 8f35747..c33fcb0 100644 --- a/Tetris/app/src/main/res/layout/activity_game.xml +++ b/Tetris/app/src/main/res/layout/fragment_game.xml @@ -1,11 +1,9 @@ - + tools:context=".GameFragment"> - @@ -71,5 +69,4 @@ - - \ No newline at end of file + \ No newline at end of file diff --git a/Tetris/app/src/main/res/layout/fragment_option.xml b/Tetris/app/src/main/res/layout/fragment_option.xml index a164ace..8b9a26e 100644 --- a/Tetris/app/src/main/res/layout/fragment_option.xml +++ b/Tetris/app/src/main/res/layout/fragment_option.xml @@ -1,7 +1,6 @@