dorbird

dicechessgame

Sep 2nd, 2020 (edited)
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.04 KB | None | 0 0
  1. package de.dorbird;
  2.  
  3. import java.util.Random;
  4.  
  5. public class Dice {
  6.     enum Color {RED,BLUE}
  7.  
  8.     Color owner = Color.RED;
  9.     DiceFace frontSide = DiceFace.ONE;
  10.     DiceFace backSide = DiceFace.SIX;
  11.     DiceFace upSide = DiceFace.TWO;
  12.     DiceFace downSide = DiceFace.FIVE;
  13.     DiceFace rightSide = DiceFace.FOUR;
  14.     DiceFace leftSide = DiceFace.THREE;
  15.  
  16.     public String[] display(){
  17.         String[] out = new String[5];
  18.         out[0] = String.format("\u2591\u2502%s\u2502\u2591", upSide.ordinal());
  19.         out[1] = "\u2500\u253C\u2500\u253C\u2500";
  20.         out[2] = String.format("%s\u2502%s\u2502%s", leftSide.ordinal(), frontSide.ordinal(), rightSide.ordinal());
  21.         out[3] = "\u2500\u253C\u2500\u253C\u2500";
  22.         out[4] = String.format("\u2591\u2502%s\u2502%s", downSide.ordinal(),backSide.ordinal());
  23.         return out;
  24.     }
  25.  
  26.     public void print(){
  27.         String[] sa = display();
  28.         for (String s : sa) {
  29.             System.out.println(s);
  30.         }
  31.     }
  32.  
  33.     public Dice roll(){
  34.         Random r = new Random();
  35.         int frontSide = r.nextInt(6) + 1;
  36.         int upSide;
  37.         do {
  38.             upSide = r.nextInt(6) + 1;
  39.         }while (upSide == frontSide || upSide == 7-frontSide);
  40.         return this;
  41.     }
  42.  
  43.     public Dice rotateXCW() {
  44.         DiceFace tmp = upSide;
  45.         upSide = frontSide;
  46.         frontSide = downSide;
  47.         downSide = backSide;
  48.         backSide = tmp;
  49.         return this;
  50.     }
  51.     public Dice rotateXACW() {
  52.         DiceFace tmp = upSide;
  53.         upSide = backSide;
  54.         backSide = downSide;
  55.         downSide = frontSide;
  56.         frontSide = tmp;
  57.         return this;
  58.     }
  59.  
  60.     public Dice rotateYCW() {
  61.         DiceFace tmp = frontSide;
  62.         frontSide = rightSide;
  63.         rightSide = backSide;
  64.         backSide = leftSide;
  65.         leftSide = tmp;
  66.         return this;
  67.     }
  68.     public Dice rotateYACW() {
  69.         DiceFace tmp = frontSide;
  70.         frontSide = leftSide;
  71.         leftSide = backSide;
  72.         backSide = rightSide;
  73.         rightSide = tmp;
  74.         return this;
  75.     }
  76.  
  77.     public Dice rotateZCW() {
  78.         DiceFace tmp = upSide;
  79.         upSide = leftSide;
  80.         leftSide = downSide;
  81.         downSide = rightSide;
  82.         rightSide = tmp;
  83.         return this;
  84.     }
  85.     public Dice rotateZACW() {
  86.         DiceFace tmp = upSide;
  87.         upSide = rightSide;
  88.         rightSide = downSide;
  89.         downSide = leftSide;
  90.         leftSide = tmp;
  91.         return this;
  92.     }
  93. }
  94. /////////////////////////////////////////////////////
  95. package de.dorbird;
  96.  
  97. public enum  DiceFace {
  98.     BLANK, ONE ,TWO, THREE,FOUR, FIVE, SIX;
  99.  
  100.     public static DiceFace getOppositeSide(DiceFace df){
  101.         return byInt(7 - df.ordinal());
  102.     }
  103.     public static DiceFace byInt(int n){
  104.         switch (n){
  105.             case 1:return ONE;
  106.             case 2:return TWO;
  107.             case 3:return THREE;
  108.             case 4:return FOUR;
  109.             case 5:return FIVE;
  110.             case 6:return SIX;
  111.         }
  112.         return BLANK;
  113.     }
  114.  
  115. }
  116.  
Add Comment
Please, Sign In to add comment