GithubHelp home page GithubHelp logo

fifteengame's People

Contributors

ilyosbekkk avatar

Stargazers

 avatar

Watchers

 avatar

fifteengame's Issues

Previous code

/* //region UI componenets

TableLayout group;
ArrayList<Button> buttons;
Button swap;
//endregion
//region vars

boolean isWon;


//endregion
//region overrides
@RequiresApi(api = Build.VERSION_CODES.R)
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    swap = findViewById(R.id.swap);
    group = findViewById(R.id.table_layout);
    isWon = true;
    buttons = new ArrayList<>(Arrays.asList(
            findViewById(R.id.button1),
            findViewById(R.id.button2),
            findViewById(R.id.button3),
            findViewById(R.id.button4),
            findViewById(R.id.button5),
            findViewById(R.id.button6),
            findViewById(R.id.button7),
            findViewById(R.id.button8),
            findViewById(R.id.button9),
            findViewById(R.id.button10),
            findViewById(R.id.button11),
            findViewById(R.id.button12),
            findViewById(R.id.button13),
            findViewById(R.id.button14),
            findViewById(R.id.button15),
            findViewById(R.id.button16)
           ));
    //  randomize();


    buttons.get(15).setVisibility(View.INVISIBLE);
   for(int i = 0; i<buttons.size(); i++){
       Button button = buttons.get(i);
       String tag = button.getTag().toString();
       button.setText(tag);

   }
    View.OnClickListener listener = new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            moveButtons((Button) v);
            Log.d("Hello ", "onClick: " + v.getTag());
        }
    };
    for (int i = 0; i < 16; i++) {
        buttons.get(i).setOnClickListener(listener);
    }


}

//endregion
//region move buttons
private void moveButtons(Button view) {
    int index = buttons.indexOf(view);
    int right = index + 1;
    int left = index - 1;
    int top = index - 4;
    int down = index + 4;

    if (right <= 15 && buttons.get(right).getVisibility() == View.INVISIBLE) {
        view.setVisibility(View.INVISIBLE);
        buttons.get(right).setText(view.getText());
        view.setText(null);
        buttons.get(right).setVisibility(View.VISIBLE);
    } else if (left >= 0 && buttons.get(left).getVisibility() == View.INVISIBLE) {
        view.setVisibility(View.INVISIBLE);
        buttons.get(left).setText(view.getText());
        view.setText(null);
        buttons.get(left).setVisibility(View.VISIBLE);
    } else if (top >= 0 && buttons.get(top).getVisibility() == View.INVISIBLE) {
        view.setVisibility(View.INVISIBLE);
        buttons.get(top).setText(view.getText());
        view.setText(null);
        buttons.get(top).setVisibility(View.VISIBLE);
    } else if (down <= 15 && buttons.get(down).getVisibility() == View.INVISIBLE) {
        view.setVisibility(View.INVISIBLE);
        buttons.get(down).setText(view.getText());
        view.setText(null);
        buttons.get(down).setVisibility(View.VISIBLE);
    }


    ArrayList<String> numbers = new ArrayList<>();
    for (int i = 0; i < 15; i++) {
        numbers.add(buttons.get(i).getText().toString());
    }

    ArrayList<String> strings = new ArrayList<>(Arrays.asList("1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15"));

    if (numbers.equals(strings))
        Log.d("isWon", "You won:)");
    else Log.d("isWon", "Not winner yet:(");


}

//endregion
//region randomize
private void randomize() {
    TableRow row1 = (TableRow) group.getChildAt(0);
    TableRow row2 = (TableRow) group.getChildAt(1);
    TableRow row3 = (TableRow) group.getChildAt(2);
    TableRow row4 = (TableRow) group.getChildAt(3);
    row1.removeAllViews();
    row2.removeAllViews();
    row3.removeAllViews();
    row4.removeAllViews();

    Random rand = new Random();
    ArrayList<Integer> numbers = new ArrayList<>();
    do {
        int number = rand.nextInt(16);
        if (!numbers.contains(number))
            numbers.add(number);

    } while (numbers.size() != 16);
    for (int i = 0; i < 16; i++) {
        Log.d("Not Tag", "randomize: " + numbers.get(i));
    }
    for (int i = 0; i < 16; i++) {
        if (i < 4)
            row4.addView(buttons.get(numbers.get(i)));
        else if (i < 8)
            row3.addView(buttons.get(numbers.get(i)));
        else if (i < 12)
            row2.addView(buttons.get(numbers.get(i)));
        else
            row1.addView(buttons.get(numbers.get(i)));
    }

}
//endregion*/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.