1. package General;
  2. /*
  3. * @Author Emre
  4. * */
  5. public class DrawHome {
  6. private int width,height,roof_height,center,door_width, door_height,med_height;
  7. public static void main(String[] args) {
  8. // TODO Auto-generated method stub
  9. DrawHome draw = new DrawHome(35);
  10. draw.drawRoof();
  11. draw.drawMed();
  12. draw.drawDoor();
  13. }
  14. public DrawHome(int width){
  15. this.width = width;
  16. this.height = this.center = width/2;
  17. this.roof_height = this.door_width = (this.height/2)+1;
  18. this.door_height = (this.door_width/2)+1;
  19. int start_width = (this.center-this.door_width)/2;
  20. this.med_height = this.height - (start_width+this.door_height);
  21. }
  22. public void drawRoof(){
  23. int space = this.center;
  24. int limit = 2;
  25. for(int i = 1; i <= this.roof_height; i++){
  26. drawSpace(space);
  27. if(space != this.center){
  28. for(int j = 1; j <limit; j++){
  29. if((limit / 2) == j){
  30. System.out.print("+");
  31. }else if(limit / 2 < j){
  32. System.out.print("\\");
  33. }else{
  34. System.out.print("/");
  35. }
  36. }
  37. }else{
  38. System.out.print("+");
  39. }
  40. limit = limit+4;
  41. space = space - 2;
  42. System.out.println();
  43. }
  44. }
  45. public void drawSpace(int count){
  46. for(int i = count; i > 0; i--){
  47. System.out.print(" ");
  48. }
  49. }
  50. public void drawMed(){
  51. int start = (this.center-this.door_width)/2;
  52. for(int i = 1; i <= this.med_height-this.door_height; i++){
  53. for(int j = 1; j <= this.width; j++){
  54. System.out.print("0");
  55. }
  56. System.out.println();
  57. }
  58. for(int i = 1; i <= this.door_height; i++){
  59. for(int j = 1; j <= this.width; j++){
  60. if(j < center){ // Left
  61. if(j > start && j <= start+this.door_width){
  62. if(this.door_width == j){ // Merkez
  63. System.out.print("*");
  64. }else if(average(this.door_height,1) == i){
  65. System.out.print("*");
  66. }else{
  67. System.out.print(" ");
  68. }
  69. }else{ // 000
  70. System.out.print("0");
  71. }
  72. }else if(j == center){
  73. System.out.print("0");
  74. }else{ // Right
  75. if(j > center+start+1 && j <= (center+start+this.door_width)+1){
  76. if(center+this.door_width+1 == j){ // Merkez
  77. System.out.print("*");
  78. }else if(average(this.door_height,1) == i){
  79. System.out.print("*");
  80. }else{
  81. System.out.print(" ");
  82. }
  83. }else{ // 000
  84. System.out.print("0");
  85. }
  86. }
  87. }
  88. System.out.println();
  89. }
  90. }
  91. public void drawDoor(){
  92. int start_width = (this.center-this.door_width)/2;
  93. for(int i = 1; i <=start_width+this.door_height; i++){
  94. if(i >= this.door_height){
  95. for(int j = 0; j <this.width; j++){
  96. if(j >= center-start_width && j <= center+start_width){
  97. if(j == center){
  98. System.out.print("*");
  99. }else{
  100. System.out.print(" ");
  101. }
  102. }else{
  103. System.out.print("0");
  104. }
  105. }}
  106. else{
  107. for(int j = 0; j <this.width; j++){
  108. System.out.print("0");
  109. }
  110. }
  111. System.out.println();
  112. }
  113. }
  114. public int average(int a, int b){
  115. while(--a > ++b);
  116. return a;
  117. }
  118. }

Draw Home