Guest User

hangman

a guest
Aug 17th, 2013
165
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.82 KB | None | 0 0
  1. package thekindlyone.hangman;
  2.  
  3. import java.io.IOException;
  4. import java.io.InputStream;
  5. import java.util.ArrayList;
  6. import java.util.Random;
  7.  
  8. import android.app.Activity;
  9. import android.content.res.AssetManager;
  10. import android.os.Bundle;
  11. import android.text.method.ScrollingMovementMethod;
  12. import android.view.KeyEvent;
  13. import android.view.Menu;
  14. import android.view.View;
  15. import android.widget.Button;
  16. import android.widget.EditText;
  17. import android.widget.TextView;
  18.  
  19. public class Game extends Activity {
  20.     public String rawmovies;
  21.     public String movie;
  22.     public String[] movies;
  23.     public ArrayList<Character> donelist = new ArrayList<Character>();
  24.     public ArrayList<Character> triedlist = new ArrayList<Character>();
  25.     public TextView tv1;
  26.     public Random r = new Random();
  27.     public String h=new String("HANGMAN");
  28.     public EditText editText;
  29.     public Button button;
  30.     @Override
  31.     protected void onCreate(Bundle savedInstanceState) {
  32.         super.onCreate(savedInstanceState);
  33.         setContentView(R.layout.activity_game);
  34.         AssetManager assetManager = getAssets();
  35.         donelist.add('-');
  36.         donelist.add('\'');
  37.         donelist.add('`');
  38.         donelist.add('?');
  39.         donelist.add('!');
  40.         donelist.add('.');
  41.         editText = (EditText) findViewById(R.id.input);
  42.         tv1 = (TextView)findViewById(R.id.tv1);
  43.         button=(Button) findViewById(R.id.button);
  44.         //final View vw=findViewById(R.id.input);
  45.        
  46.         InputStream input;
  47.         try {
  48.             input = assetManager.open("mlist.txt");
  49.              
  50.              int size = input.available();
  51.              byte[] buffer = new byte[size];
  52.              input.read(buffer);
  53.              input.close();
  54.  
  55.              // byte buffer into a string
  56.             rawmovies = new String(buffer);
  57.             movies=rawmovies.split("\r\n|\r|\n");
  58.            
  59.             movie=movies[r.nextInt(movies.length)].trim().toLowerCase();
  60.              
  61.         } catch (IOException e) {
  62.             // TODO Auto-generated catch block
  63.             e.printStackTrace();
  64.         }
  65.        
  66.        
  67.         tv1.setMovementMethod(new ScrollingMovementMethod());
  68.         String displaystring=stringwork()+"\nGuess Now, One letter at a time.";
  69.         tv1.setText(displaystring);
  70.     }
  71.  
  72.     @Override
  73.     public boolean onCreateOptionsMenu(Menu menu) {
  74.         // Inflate the menu; this adds items to the action bar if it is present.
  75.         getMenuInflater().inflate(R.menu.game, menu);
  76.         return true;
  77.     }
  78.    
  79.       @Override
  80.       public boolean onKeyDown(int keyCode, KeyEvent event) {
  81.       if (event.getAction() == KeyEvent.ACTION_DOWN) {
  82.           switch (keyCode) {
  83.           case KeyEvent.KEYCODE_ENTER:
  84.              button.performClick();
  85.               return true;
  86.           }
  87.         }
  88.         return super.onKeyDown(keyCode, event);
  89.       }
  90.    
  91.     public String stringwork(){
  92.         ArrayList<Character> rstring=new ArrayList<Character>();
  93.         for (int i = 0; i < movie.length(); i++){
  94.             char c = movie.charAt(i);
  95.             if(donelist.contains(c)){
  96.                 rstring.add(c);
  97.             }
  98.             else{
  99.                 if(c==' '){
  100.                     rstring.add('/');}
  101.                
  102.                 else{
  103.                    
  104.                         rstring.add('_');
  105.                         rstring.add(' ');
  106.                    
  107.                    
  108.                 }
  109.             }
  110.            
  111.             //Process char
  112.         }
  113.         return getStringRepresentation(rstring);
  114.     }
  115.  
  116.     public String getStringRepresentation(ArrayList<Character> list)
  117.     {    
  118.         StringBuilder builder = new StringBuilder(list.size());
  119.         for(Character ch: list)
  120.         {
  121.             builder.append(ch);
  122.         }
  123.         return builder.toString();
  124.     }
  125.    
  126.     public void refresh_display(int code,char input){
  127.         String displaystring=stringwork();
  128.         String c = Character.toString(input);
  129.         String score = h.substring(0,triedlist.size());
  130.         if(score.length()=="HANGMAN".length()){
  131.             code=-3;
  132.         }
  133.         if(displaystring.indexOf('_')==-1){
  134.             code=3;
  135.         }
  136.         String correct_message="Bingo, "+c+" is correct \n"+displaystring+"\nGuess now, one letter at a time.";
  137.         String incorrect_message="Sorry,"+c+" is Incorrect \n"+score+"\n"+displaystring+"\nGuess now, one letter at a time.";
  138.         String already_tried="You already tried "+c+"\n Try Again\n"+displaystring+"\nGuess now, one letter at a time.";
  139.         switch(code){
  140.         case 1:
  141.             tv1.setText(correct_message);
  142.             break;
  143.         case 0:
  144.             tv1.setText(incorrect_message);
  145.             break;
  146.         case -1:
  147.             tv1.setText(already_tried);
  148.             break;
  149.         case -2:
  150.             tv1.setText("ENTER A LETTER");
  151.             break;
  152.         case -3:    //loss
  153.             //tv1.setText("HANGMAN\n You loose..The answer was "+movie);
  154.             reset_game(code,movie,displaystring);
  155.             break;
  156.         case 3: //victory
  157.             //tv1.setText("VICTORY.. way to go.. the answer was "+movie);
  158.             reset_game(code,movie,displaystring);
  159.             break;
  160.         }
  161.     }
  162.    
  163.     public void reset_game(int code,String lastmovie,String d_string){
  164.         movie=movies[r.nextInt(movies.length)].trim().toLowerCase();
  165.         donelist.clear();
  166.         triedlist.clear();
  167.         donelist.add('-');
  168.         donelist.add('\'');
  169.         donelist.add('`');
  170.         donelist.add('?');
  171.         donelist.add('!');
  172.         donelist.add('.');
  173.         String result=new String("");
  174.         if(code==3){
  175.              result="VICTORY.. way to go.. the answer was "+lastmovie;
  176.         }
  177.         if(code==-3){
  178.              result=d_string+"\nHANGMAN\n You loose..The answer was "+lastmovie;
  179.         }
  180.         String display=result+"\nNEW GAME\n"+stringwork()+"\n Guess Now, one letter at a time.";
  181.         tv1.setText(display);
  182.        
  183.     }
  184.    
  185.     public void handler(View view)
  186.     {   int code=0;
  187.        
  188.         char input = editText.getText().toString().charAt(0);
  189.         //tv1.setText("DETECTED");
  190.         if(input==' '){
  191.             code=-2;
  192.         }
  193.         else{
  194.         if(donelist.contains(input)||triedlist.contains(input)){
  195.             code=-1;
  196.         }
  197.         else{
  198.         if(movie.indexOf(input)!=-1){
  199.             donelist.add(input);   
  200.             code=1;
  201.         }
  202.         else{
  203.             triedlist.add(input);
  204.             code=0;
  205.         }
  206.         }
  207.         }
  208.         refresh_display(code,input);   
  209.         editText.setText("");
  210.    
  211.     }
  212.  
  213.    
  214.  
  215.    
  216.    
  217. }
Advertisement
Add Comment
Please, Sign In to add comment