Advertisement
Guest User

Player

a guest
Dec 10th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.45 KB | None | 0 0
  1.  
  2. public class Player {
  3.     int playerId;
  4.     int playerTileId;
  5.     String name;
  6.     int score;
  7.     Board board;
  8.    
  9.     public Player() {
  10.         playerId = 0;
  11.         name = "";
  12.         score = 0;
  13.         board = new Board();
  14.     }
  15.    
  16.     public Player(int playerId, String name, int score, Board templateBoard) {
  17.         this.playerId = playerId;
  18.         this.name = name;
  19.         this.score = score;
  20.         board = new Board(templateBoard);
  21.     }
  22.    
  23.     public Player(Player templatePlayer) {
  24.         this.playerId = templatePlayer.playerId;
  25.         this.name = templatePlayer.name;
  26.         this.score = templatePlayer.score;
  27.         this.board = new Board(templatePlayer.board);
  28.     }
  29.    
  30.     public void setPlayerId(int playerId) {
  31.         this.playerId = playerId;
  32.     }
  33.    
  34.     public void setName(String name) {
  35.         this.name = name;
  36.     }
  37.    
  38.     public void setScore(int score) {
  39.         this.score = score;
  40.     }
  41.    
  42.     public void setBoards(Board board) {
  43.         this.board = board;
  44.     }
  45.    
  46.     public int getPlayerId() {
  47.         return playerId;
  48.     }
  49.    
  50.     public String getName() {
  51.         return name;
  52.     }
  53.    
  54.     public int getScore() {
  55.         return score;
  56.     }
  57.    
  58.     public Board getBoard() {
  59.         return board;
  60.     }
  61.    
  62.     public void setPlayerTileId(int tile) {
  63.         playerTileId = tile;
  64.     }
  65.    
  66.     public int getPlayerTileId() {
  67.         return playerTileId;
  68.     }
  69.    
  70.     public int[] move(int id, int dice) {
  71.         int tileNow = id + dice;
  72.         int snakeBites = 0;
  73.         int laddersUsed = 0;
  74.         int redApplesEaten = 0;
  75.         int blackApplesEaten = 0;
  76.         int[] arrayReturned = new int[5];
  77.        
  78.         // Search if tileNow == SnakeHead
  79.         for(int i=0; i<board.snakes.length; i++) {
  80.             if(board.snakes[i].getHeadId() == tileNow) {
  81.                 snakeBites++;
  82.                 tileNow = board.snakes[i].getTailId();
  83.                 System.out.println("A little snake bit you!");
  84.                 break;
  85.             }  
  86.         }
  87.        
  88.         // Search if tileNow == LadderUp
  89.         for(int i=0; i<board.ladders.length; i++) {
  90.             if(board.ladders[i].getDownStepId() == tileNow && !board.ladders[i].getBroken()) {
  91.                 laddersUsed++;
  92.                 tileNow = board.ladders[i].getUpStepId();
  93.                 board.ladders[i].setbroken(true);
  94.                 System.out.println("Lucky you! You found a ladder.");
  95.                 break;
  96.             }
  97.         }
  98.        
  99.         // Search if tileNow = appleTileId
  100.         for(int i=0; i<board.apples.length; i++) {
  101.             if(board.apples[i].getAppleTileId() == tileNow) {
  102.                 switch(board.apples[i].getColor()) {
  103.                
  104.                     case "red":
  105.                         score += board.apples[i].getPoints();
  106.                         redApplesEaten++;
  107.                         System.out.println("You ate a red apple. You earned " + board.apples[i].getPoints() + " points.");
  108.                         board.apples[i].setAppleTileId(-100);
  109.                         break;
  110.                    
  111.                    
  112.                     case "black":
  113.                         score -= board.apples[i].getPoints();
  114.                         blackApplesEaten++;
  115.                         System.out.println("You ate a black apple... You lost " + board.apples[i].getPoints() + " points.");
  116.                         board.apples[i].setAppleTileId(-100);
  117.                         break;
  118.                        
  119.                     default:
  120.                         System.out.println("Apples are red or black!");
  121.                 }
  122.             }
  123.         }
  124.        
  125.         arrayReturned[0] = tileNow;
  126.         arrayReturned[1] = snakeBites;
  127.         arrayReturned[2] = laddersUsed;
  128.         arrayReturned[3] = redApplesEaten;
  129.         arrayReturned[4] = blackApplesEaten;
  130.        
  131.         return arrayReturned;
  132.        
  133.        
  134.         }
  135.    
  136.     public int heuristicMove(int id, int dice) {       
  137.         int tileNow = id + dice;
  138.        
  139.         // Search if tileNow == SnakeHead
  140.         for(int i=0; i<board.snakes.length; i++) {
  141.             if(board.snakes[i].getHeadId() == tileNow) {
  142.                 tileNow = board.snakes[i].getTailId();
  143.                 break;
  144.             }  
  145.         }
  146.        
  147.         // Search if tileNow == LadderUp
  148.         for(int i=0; i<board.ladders.length; i++) {
  149.             if(board.ladders[i].getDownStepId() == tileNow && !board.ladders[i].getBroken()) {
  150.                 tileNow = board.ladders[i].getUpStepId();
  151.                 break;
  152.             }
  153.         }
  154.        
  155.         // Search if tileNow = appleTileId
  156.         for(int i=0; i<board.apples.length; i++) {
  157.             if(board.apples[i].getAppleTileId() == tileNow) {
  158.                 switch(board.apples[i].getColor()) {
  159.                
  160.                     case "red":
  161.                         score += board.apples[i].getPoints();
  162.                         break;
  163.                    
  164.                    
  165.                     case "black":
  166.                         score -= board.apples[i].getPoints();
  167.                         break;
  168.                        
  169.                     default:
  170.                         System.out.println("Apples are red or black!");
  171.                 }
  172.             }
  173.         }
  174.         return tileNow;
  175.     }
  176.    
  177.     public double evaluate(int currentPos, int dice) {
  178.         int pointsBefore = score;
  179.         int finalPos = heuristicMove(currentPos, dice);
  180.         double weight;
  181.         /*if(opponentPos > currentPos) {
  182.             weight = (finalPos - currentPos) * 0.65 + (score - pointsBefore) * 0.35;
  183.         }*/
  184.        
  185.    
  186.         weight = (finalPos - currentPos) * 0.2 + (score - pointsBefore) * 0.8;
  187.        
  188.         score = pointsBefore;
  189.         return weight;
  190.     }
  191. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement