Skip to main content
1 of 13
Olivier Grégoire
  • 14.5k
  • 3
  • 33
  • 56

Java (OpenJDK 9), 188 bytes

n->{for(int s=(int)Math.pow(3,n),x=0,y;x<s;x++)for(y=0;y<=s;y++)System.out.print(y==s?'\n':h(s,x,y)<1?' ':'H');} int h(int s,int x,int y){return s>3?h(s/=3,x/3,y/3)&h(s,x%s,y%s):++y%2|x%2;} 

Try it online!

Olivier Grégoire
  • 14.5k
  • 3
  • 33
  • 56