private static void load_saved_scene(ViewGroup tableLayout, int aSide) { var saveGameArea = new SaveGameArea(); var getSavedData = saveGameArea.GetGame_Area_(aSide); var gameButton = new GameButton(); for (var i = 0; i < aSide; i++) { for (var j = 0; j < aSide; j++) { var tableRow = (TableRow)tableLayout.GetChildAt(i); var border = (FrameLayout)tableRow.GetChildAt(j); var frameLayout = (FrameLayout)border.GetChildAt(0); if (getSavedData != null) { if (getSavedData.Values[i, j] <= 0) { continue; } frameLayout.SetBackgroundColor(gameButton.get_color_from_number(getSavedData.Values[i, j])); GameButton.set_btn_number(border, getSavedData.Values[i, j].ToString()); } else { return; } } } }
public void get_last_scene() { // reset_game(false); var sum = 0; for (var i = 0; i < _lastPlaces.GetLength(0); i++) { for (var j = 0; j < _lastPlaces.GetLength(1); j++) { if (_lastPlaces[i, j] == 1) { _gameButtons[i, j].GetChildAt(0) .SetBackgroundColor(_gameButton.get_color_from_number(_lastValues[i, j])); sum += _lastValues[i, j]; _gombPlace[i, j] = 1; //van ott már egy szám GameButton.set_btn_number(_gameButtons[i, j], _lastValues[i, j].ToString()); } else { _gombPlace[i, j] = 0; GameButton.normal_btn(_gameButtons[i, j]); } } } _informationContainer.set_score(sum); }
add_new_number( int number) //itt lehet majd újat hozzáadni a tablelayout-hoz úgyhogy a megfelelő sort és oszlop számot megadjuk { if (number < 10000) { if (is_place_for_btn()) { var random = new Random(); int randomRow; int randomColoumn; do { randomRow = random.Next(0, _aSide); randomColoumn = random.Next(0, _aSide); } while (check_gameare_place(randomRow, randomColoumn)); GameButton.set_btn_number(_gameButtons[randomRow, randomColoumn], number.ToString()); //game_Buttons[random_row, random_coloumn].Text = number.ToString(); _gameButtons[randomRow, randomColoumn].GetChildAt(0) .SetBackgroundColor(_gameButton.get_color_from_number(number)); _gombPlace[randomRow, randomColoumn] = 1; //van ott már egy szám _informationContainer.add_point(number); //save_game_Area_(); } else { New_game(); } } else { bigger_then_the_biggest(); } }
//public void row_checker(int x,string left_or_right) //{ // for (int index = 0; index < gomb_place.GetLength(0)-1; index++) // { // if (left_or_right == "right") // { // for (int i = 1; i < gomb_place.GetLength(1); i++) // { // if (gomb_place[x, i - 1] == 1 && gomb_place[x, i] == 0) // { // change_buttons(x, i, x, i - 1); // } // } // } // if (left_or_right == "left") // { // for (int i = 1; i < gomb_place.GetLength(1); i++) // { // if (gomb_place[x, i - 1] == 0 && gomb_place[x, i] == 1) // { // change_buttons(x, i - 1, x, i); // } // } // } // } //} //public void coloumn_checker(int y,string top_or_down) //{ // for (int index = 0; index < gomb_place.GetLength(1)-1; index++) // { // if (top_or_down == "up") // { // int i = 1; // while (i < gomb_place.GetLength(0)) // { // if (gomb_place[i - 1, y] == 0 && gomb_place[i, y] == 1) // { // change_buttons(i - 1, y, i, y); // } // i++; // } // } // if (top_or_down == "down") // { // int i = 1; // while (i < gomb_place.GetLength(0)) // { // if (gomb_place[i - 1, y] == 1 && gomb_place[i, y] == 0) // { // change_buttons(i, y, i - 1, y); // } // i++; // } // } // } //} private void reset_game(bool needBeginGameButton) { _saveGameArea.delete_this_side(_aSide); for (var i = 0; i < _gombPlace.GetLength(0); i++) { for (var j = 0; j < _gombPlace.GetLength(1); j++) { _gombPlace[i, j] = 0; } } for (var i = 0; i < _gameButtons.GetLength(0); i++) { for (var j = 0; j < _gameButtons.GetLength(1); j++) { GameButton.normal_btn(_gameButtons[i, j]); } } _informationContainer.reset_Score(); if (!needBeginGameButton) { return; } add_new_number(2); add_new_number(2); }
private void change_buttons(int toNumberX, int toNumberY, int toNormalX, int toNormalY) { _gombPlace[toNumberX, toNumberY] = 1; _gombPlace[toNormalX, toNormalY] = 0; var number = GameButton.get_btn_value(_gameButtons[toNormalX, toNormalY]); _gameButton.numbered_btn(_gameButtons[toNumberX, toNumberY], int.Parse(number)); GameButton.normal_btn(_gameButtons[toNormalX, toNormalY]); }
public GameArea(Context context, int aSide, InformationContainer informationContainer) //elmentettem a context és az oldal hosszat, hogy ne kelljen minidg paraméterként megadni { _parentContext = context; _aSide = aSide; _gombPlace = new int[aSide, aSide]; _gameButton = new GameButton(_parentContext, 0, aSide); _informationContainer = informationContainer; _saveGameArea = new SaveGameArea(); _scoreDatabase = new ScoreDatabaseController(); }
protected override void OnCreate(Bundle savedInstanceState) { base.OnCreate(savedInstanceState); SetContentView(Resource.Layout.game); _side = int.Parse(Intent.GetStringExtra("a_side")); _scoreDatabase = new ScoreDatabaseController(); _textView = FindViewById <TextView>(Resource.Id.textView1); var gameLinearLayout = FindViewById <LinearLayout>(Resource.Id .game_screen); //Ez a legalapbb úgynevett root layout ehhez fogunk majd mindent hozzáadni vertical-is _informationContainer = new InformationContainer(_textView, int.Parse(Intent.GetStringExtra("a_side"))); _gameArea = new GameArea(this, int.Parse(Intent.GetStringExtra("a_side")), _informationContainer); //itt átadtam ennek az activity-t és hogy mekkora legyen a pálya!!!!!!!!!!!!!!!!!!! itt lehet beállitani, hogy hányszor hányas legyen a pálya var tableLayout = _gameArea.generate_game_field(); gameLinearLayout.AddView(tableLayout); //legenáráltam az üres pályát és hozzáadtam a root layout-hoz var button = FindViewById <Button>(Resource.Id.new_game); var bckBtn = FindViewById <Button>(Resource.Id.button1); _lastSceneBtn = FindViewById <Button>(Resource.Id.button2); bckBtn.Click += (s, e) => { var score = new Score { _score = _informationContainer.HighScore, _side = _side }; _scoreDatabase.set_high_Score(score); _gameArea.save_game_Area_(); var intent = new Intent(this, typeof(MainActivity)); StartActivity(intent); }; button.Click += (s, e) => { _gameArea.New_game(); }; _lastSceneBtn.Click += (s, e) => { _gameArea.get_last_scene(); }; _lastSceneBtn.Enabled = false; // button.SetOnTouchListener(this);//touch sensor érzékelésének hozzáadása a textview-hoz set_onclick_for_buttons(tableLayout); _saveGame = new SaveGameArea(); if (_saveGame.GetGame_Area_(int.Parse(Intent.GetStringExtra("a_side"))) != null) { var getSavedData = _saveGame.GetGame_Area_(int.Parse(Intent.GetStringExtra("a_side"))); _gameArea.load_saved_game_Area(getSavedData.Places, getSavedData.Values); } else { _gameArea.add_new_number(GameButton.get_new_btn()); //az első generálás _gameArea.add_new_number(GameButton.get_new_btn()); } }
private void number_fusion(int newPlaceX, int newPlaceY, int emptyPlaceX, int emptyPlaceY) { _gombPlace[newPlaceX, newPlaceY] = 1; _gombPlace[emptyPlaceX, emptyPlaceY] = 0; var number = int.Parse(GameButton.get_btn_value(_gameButtons[newPlaceX, newPlaceY])) + int.Parse(GameButton.get_btn_value(_gameButtons[emptyPlaceX, emptyPlaceY])); if (number == 2048) { win_mess(); } _gameButton.numbered_btn(_gameButtons[newPlaceX, newPlaceY], number); GameButton.normal_btn(_gameButtons[emptyPlaceX, emptyPlaceY]); }
game_area_load() //itt csak feltöltöm a sorokat a táblázatban üres gombokkal, hogy meg legyen az alakja a táblázatnak(így illeszkedni fog a telefon nagyságához) { _gameButtons = new FrameLayout[_aSide, _aSide]; for (var i = 0; i < _gameAreaTableLayout.ChildCount; i++) { var tableRow = (TableRow)_gameAreaTableLayout.GetChildAt(i); for (var j = 0; j < _aSide; j++) { var gameButton = new GameButton(_parentContext, 0, _aSide); tableRow.AddView(gameButton.Get_game_Button(), j); var btnBorder = (FrameLayout)tableRow.GetChildAt(j); btnBorder.GetChildAt(0).SetBackgroundColor(Color.Gray); _gameButtons[i, j] = (FrameLayout)tableRow.GetChildAt(j); } } }
public void save_game_Area_() { var frameValues = new int[_aSide, _aSide]; for (var i = 0; i < _gombPlace.GetLength(0); i++) { for (var j = 0; j < _gombPlace.GetLength(1); j++) { if (_gombPlace[i, j] != 0) { frameValues[i, j] = int.Parse(GameButton.get_btn_value(_gameButtons[i, j])); } } } _saveGameArea.save_game_area(_gombPlace, frameValues, _aSide); }
public void save_last_scene() { _lastValues = new int[_aSide, _aSide]; _lastPlaces = new int[_gombPlace.GetLength(0), _gombPlace.GetLength(1)]; for (var i = 0; i < _gombPlace.GetLength(0); i++) { for (var j = 0; j < _gombPlace.GetLength(1); j++) { if (_gombPlace[i, j] != 0) { _lastValues[i, j] = int.Parse(GameButton.get_btn_value(_gameButtons[i, j])); _lastPlaces[i, j] = _gombPlace[i, j]; } } } // last_score = information_Container.current_score; // last_places = gomb_place; }
public void load_saved_game_Area(int[,] places, int[,] values) { var sum = 0; for (var i = 0; i < places.GetLength(0); i++) { for (var j = 0; j < places.GetLength(1); j++) { if (places[i, j] == 1) { _gameButtons[i, j].GetChildAt(0) .SetBackgroundColor(_gameButton.get_color_from_number(values[i, j])); sum += values[i, j]; _gombPlace[i, j] = 1; //van ott már egy szám GameButton.set_btn_number(_gameButtons[i, j], values[i, j].ToString()); } } } _informationContainer.add_point(sum); }
public bool fushion_is_avaiable() { for (var i = 0; i < _gombPlace.GetLength(0); i++) { for (var j = 1; j < _gombPlace.GetLength(1); j++) { if (GameButton.get_btn_value(_gameButtons[i, j - 1]) == GameButton.get_btn_value(_gameButtons[i, j])) { return(true); } } for (var l = 1; l < _gombPlace.GetLength(1); l++) { if (GameButton.get_btn_value(_gameButtons[l - 1, i]) == GameButton.get_btn_value(_gameButtons[l, i])) { return(true); } } } return(false); }
private void up_down_move(string upOrDown, bool fushionChecker) { _wasChange = false; int sor; for (var i = 0; i < _gombPlace.GetLength(0); i++) { for (var proba = 0; proba < _gombPlace.GetLength(0) - 1; proba++) { switch (upOrDown) { case "up": sor = 1; while (sor < _gombPlace.GetLength(1)) { if (_gombPlace[sor, i] == 1 && _gombPlace[sor - 1, i] == 0) { change_buttons(sor - 1, i, sor, i); _wasChange = true; } sor++; } break; case "down": sor = _gombPlace.GetLength(0) - 1; while (sor > 0) { if (_gombPlace[sor, i] == 0 && _gombPlace[sor - 1, i] == 1) { change_buttons(sor, i, sor - 1, i); _wasChange = true; } sor--; } break; } } } if (!fushionChecker) { return; } { _arrayIndexes = new ArrayIndexes[_aSide * _aSide]; var arrayOfIndex = 0; for (var i = 0; i < _gombPlace.GetLength(0); i++) { switch (upOrDown) { case "up": sor = 1; while (sor < _gombPlace.GetLength(1)) { if (_gombPlace[sor, i] == 1 && _gombPlace[sor - 1, i] == 1 && int.Parse(GameButton.get_btn_value(_gameButtons[sor, i])) == int.Parse(GameButton.get_btn_value(_gameButtons[sor - 1, i]))) { var array = new ArrayIndexes { ToX = sor - 1, ToY = i, FromX = sor, FromY = i, Direction = "up" }; _arrayIndexes[arrayOfIndex] = array; arrayOfIndex++; sor++; } sor++; } break; case "down": sor = _gombPlace.GetLength(0) - 1; while (sor > 0) { if (_gombPlace[sor, i] == 1 && _gombPlace[sor - 1, i] == 1 && int.Parse(GameButton.get_btn_value(_gameButtons[sor, i])) == int.Parse(GameButton.get_btn_value(_gameButtons[sor - 1, i]))) { var array = new ArrayIndexes { ToX = sor, ToY = i, FromX = sor - 1, FromY = i, Direction = "down" }; _arrayIndexes[arrayOfIndex] = array; arrayOfIndex++; sor--; } sor--; } break; } } if (_wasChange || arrayOfIndex > 0 && is_place_for_btn()) { add_new_number(GameButton.get_new_btn()); } frame_fushion(_arrayIndexes, arrayOfIndex); } }
private void left_right_move(string rightOrLeft, bool frameChecker) { _wasChange = false; for (var i = 0; i < _gombPlace.GetLength(0); i++) { for (var proba = 0; proba < _gombPlace.GetLength(0) - 1; proba++) { if (rightOrLeft == "left") { for (var k = 1; k < _gombPlace.GetLength(1); k++) { if (_gombPlace[i, k - 1] == 0 && _gombPlace[i, k] == 1) { change_buttons(i, k - 1, i, k); _wasChange = true; } else if (rightOrLeft == "right") { for (var j = _gombPlace.GetLength(1) - 1; j >= 1; j--) { if (_gombPlace[i, j] == 0 && _gombPlace[i, j - 1] == 1) { change_buttons(i, j, i, j - 1); _wasChange = true; } } } } } } } if (!frameChecker) { return; } { _arrayIndexes = new ArrayIndexes[_aSide * _aSide]; var arrayOfIndex = 0; for (var i = 0; i < _gombPlace.GetLength(0); i++) { if (rightOrLeft == "left") { for (var k = 1; k < _gombPlace.GetLength(1); k++) { if (_gombPlace[i, k - 1] == 1 && _gombPlace[i, k] == 1 && int.Parse(GameButton.get_btn_value(_gameButtons[i, k - 1])) == int.Parse(GameButton.get_btn_value(_gameButtons[i, k]))) { var array = new ArrayIndexes { ToX = i, ToY = k - 1, FromX = i, FromY = k, Direction = "left" }; _arrayIndexes[arrayOfIndex] = array; arrayOfIndex++; k++; } else if (rightOrLeft == "right") { for (var j = _gombPlace.GetLength(1) - 1; j >= 1; j--) { if (_gombPlace[i, j] == 1 && _gombPlace[i, j - 1] == 1 && int.Parse(GameButton.get_btn_value(_gameButtons[i, j - 1])) == int.Parse(GameButton.get_btn_value(_gameButtons[i, j]))) { var array = new ArrayIndexes { ToX = i, ToY = j, FromY = j - 1, FromX = i, Direction = "right" }; _arrayIndexes[arrayOfIndex] = array; arrayOfIndex++; j--; } } } } } } if (_wasChange || arrayOfIndex > 0 && is_place_for_btn()) { add_new_number(GameButton.get_new_btn()); } frame_fushion(_arrayIndexes, arrayOfIndex); } }