Advertisement
harencode

puzzle(game.java)

Sep 20th, 2014
284
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.17 KB | None | 0 0
  1. package com.puzzle;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Collections;
  5.  
  6. import com.puzzle.R;
  7.  
  8. import android.app.Activity;
  9. import android.os.Bundle;
  10. import android.view.View;
  11. import android.widget.AbsoluteLayout;
  12. import android.widget.Button;
  13. import android.widget.TextView;
  14. import android.widget.Toast;
  15.  
  16.  
  17. @SuppressWarnings("deprecation")
  18. public class Game extends Activity {
  19.    
  20.     private TextView moveCounter;
  21.     private TextView feedbackText;
  22.     private Button[] buttons;
  23.     private Boolean bad_move=false;
  24.     private static final Integer[] goal = new Integer[] {0,1,2,3,4,5,6,7,8};
  25.    
  26.     private ArrayList<Integer> cells = new ArrayList<Integer>();
  27.     @Override
  28.     public void onCreate(Bundle savedInstanceState) {
  29.         super.onCreate(savedInstanceState);
  30.         setContentView(R.layout.game);
  31.         buttons=findButtons();
  32.        
  33.         for(int i=0;i<9;i++)
  34.         {
  35.             this.cells.add(i);
  36.         }
  37.         Collections.shuffle(this.cells); //random cells array
  38.        
  39.         fill_grid();
  40.        
  41.        
  42.        moveCounter = (TextView) findViewById(R.id.MoveCounter);
  43.        feedbackText = (TextView) findViewById(R.id.FeedbackText);
  44.        
  45.         for (int i = 1; i < 9; i++) {
  46.             buttons[i].setOnClickListener(new View.OnClickListener() {
  47.                 public void onClick(View v) {
  48.                     makeMove((Button) v);
  49.                 }
  50.             });
  51.         }
  52.        
  53.        
  54.         moveCounter.setText("0");
  55.         feedbackText.setText(R.string.game_feedback_text);
  56.    
  57. }
  58.     public Button[] findButtons() {
  59.         Button[] b = new Button[9];
  60.        
  61.         b[0] = (Button) findViewById(R.id.Button00);
  62.         b[1] = (Button) findViewById(R.id.Button01);
  63.         b[2] = (Button) findViewById(R.id.Button02);
  64.         b[3] = (Button) findViewById(R.id.Button03);
  65.         b[4] = (Button) findViewById(R.id.Button04);
  66.         b[5] = (Button) findViewById(R.id.Button05);
  67.         b[6] = (Button) findViewById(R.id.Button06);
  68.         b[7] = (Button) findViewById(R.id.Button07);
  69.         b[8] = (Button) findViewById(R.id.Button08);
  70.         return b;
  71.     }
  72.    
  73.     public void makeMove(final Button b) {
  74.         bad_move=true;
  75.         int b_text,b_pos,zuk_pos;
  76.         b_text=Integer.parseInt((String) b.getText());
  77.         b_pos=find_pos(b_text);
  78.         zuk_pos=find_pos(0);
  79.         switch(zuk_pos)
  80.         {
  81.         case(0):
  82.             if(b_pos==1||b_pos==3)
  83.             bad_move=false;
  84.             break;
  85.         case(1):
  86.             if(b_pos==0||b_pos==2||b_pos==4)
  87.             bad_move=false;
  88.             break;
  89.         case(2):
  90.             if(b_pos==1||b_pos==5)
  91.             bad_move=false;
  92.             break;
  93.         case(3):
  94.             if(b_pos==0||b_pos==4||b_pos==6)
  95.             bad_move=false;
  96.             break;
  97.         case(4):
  98.             if(b_pos==1||b_pos==3||b_pos==5||b_pos==7)
  99.             bad_move=false;
  100.             break;
  101.         case(5):
  102.             if(b_pos==2||b_pos==4||b_pos==8)
  103.             bad_move=false;
  104.             break;
  105.         case(6):
  106.             if(b_pos==3||b_pos==7)
  107.             bad_move=false;
  108.             break;
  109.         case(7):
  110.             if(b_pos==4||b_pos==6||b_pos==8)
  111.             bad_move=false;
  112.             break;
  113.         case(8):
  114.             if(b_pos==5||b_pos==7)
  115.             bad_move=false;
  116.             break;
  117.         }
  118.        
  119.         if(bad_move==true)
  120.         {
  121.             feedbackText.setText("Move Not Allowed");
  122.             return;
  123.         }
  124.         feedbackText.setText("Move OK");
  125.         cells.remove(b_pos);
  126.         cells.add(b_pos, 0);
  127.         cells.remove(zuk_pos);
  128.         cells.add(zuk_pos,b_text);
  129.        
  130.    
  131.         fill_grid();
  132.         moveCounter.setText(Integer.toString(Integer.parseInt((String) moveCounter.getText())+1));
  133.  
  134.          for(int i=0;i<9;i++)
  135.             {
  136.                if(cells.get(i)!=goal[i])
  137.                {
  138.                                return;
  139.                }
  140.             }
  141.          feedbackText.setText("we have a winner");
  142.     }
  143.    
  144.     public void fill_grid()
  145.     {
  146.      for(int i=0;i<9;i++)
  147.      {
  148.          int text=cells.get(i);
  149.          AbsoluteLayout.LayoutParams absParams =
  150.                 (AbsoluteLayout.LayoutParams)buttons[text].getLayoutParams();
  151.          switch(i)
  152.          {case(0):
  153.          
  154.             absParams.x = 5;
  155.             absParams.y = 5;
  156.             buttons[text].setLayoutParams(absParams);
  157.             break;
  158.          case(1):
  159.            
  160.                 absParams.x = 110;
  161.                 absParams.y = 5;
  162.                 buttons[text].setLayoutParams(absParams);
  163.                 break;
  164.          case(2):
  165.            
  166.                 absParams.x = 215;
  167.                 absParams.y = 5;
  168.                 buttons[text].setLayoutParams(absParams);
  169.                 break;
  170.          case(3):
  171.            
  172.                 absParams.x = 5;
  173.                 absParams.y = 110;
  174.                 buttons[text].setLayoutParams(absParams);
  175.                 break;
  176.          case(4):
  177.            
  178.                 absParams.x =110;
  179.                 absParams.y =110;
  180.                 buttons[text].setLayoutParams(absParams);
  181.                 break;
  182.          case(5):
  183.              
  184.                 absParams.x = 215;
  185.                 absParams.y =110;
  186.                 buttons[text].setLayoutParams(absParams);
  187.                 break;
  188.          case(6):
  189.              
  190.                 absParams.x = 5;
  191.                 absParams.y = 215;
  192.                 buttons[text].setLayoutParams(absParams);
  193.                 break;
  194.          case(7):
  195.              
  196.                 absParams.x = 110;
  197.                 absParams.y = 215;
  198.                 buttons[text].setLayoutParams(absParams);
  199.                 break;
  200.          case(8):
  201.              
  202.                 absParams.x = 215;
  203.                 absParams.y = 215;
  204.                 buttons[text].setLayoutParams(absParams);
  205.                 break;
  206.          
  207.          
  208.          }
  209.        
  210.          
  211.         }
  212.        
  213.     }
  214.    
  215.     public int find_pos(int element)
  216.     {
  217.         int i=0;
  218.          for(i=0;i<9;i++)
  219.             {
  220.                if(cells.get(i)==element)
  221.                {
  222.                                break;
  223.                }
  224.             }
  225.          return i;
  226.     }
  227.     }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement