Domek tworzony ze znaków ASCII

Cześć,

mam za zadanie narysować domek kodem ASCIII. Dojechałem do momentu prostokąta

Brakuje mi “dachu”. Czy moglibyście jakoś mi pomóc? Bardzo was proszę. Nie oczekuję kompletnego rozwiązania ale jakieś nakierowanie.

Myślę, że należałoby wykorzystać

x =( y - i ) * 2

ale pojęcia nie mam jak…

/*---------------------Program Prostokat_1------------------*/

/* Program umozliwia narysowanie prostokata w trybie */

/* tekstowym. Znakiem rysujacym jest gwiazdka '*'. */

/* Dlugosc prostokata: 20 */

/* Wysokosc prostokata: 10 */

/*----------------------------------------------------------*/

#include "stdafx.h"

#include 

#include "conio.h"


using namespace std;

//-------------------------------------------------------------

void Prostokat (); // deklaracja funkcji

//-------------------------------------------------------------

int main () // blok glowny


{

  Prostokat ();

  _getch();

  return 0;

} // koniec bloku glownego

//------------------------------------------------------------


void Prostokat () // definicja funkcji

                                // rysujacej prostokat

{ int i, j;

  for (i = 1; i <= 20; i++) // krawedz gorna

    cout << "*";

  cout << endl;


  for (i = 1; i <= 8; i++) // boki

  {

    cout << "*";

    for (j=1; j<=18; j++) cout << " ";

    cout << "*\n";

   }

  for (i = 1; i <= 20; i++) // krawedz dolna

    cout << "*";

  cout << endl;

}

Przykład dla domku o szerokości 8:

**

  * *

 * *

********

Kolejne wiersze (bez ostatniego) to:

Liczyłem na coś bardziej w jakim układzie użyć wspomnianej przeze mnie funkcji :wink:

  1. Nie rozumiem co ta funkcja ma sobą przedstawiać

  2. Eksperymentuj - to nie boli i nie kosztuje, a możesz się więcej nauczyć

Jeżeli chcesz coś podobnego do 2 postu to:

int n = 44;

        for (int i = n / 2; i < n; i++) {

            for (int j = 0; j < n; j++) {

                if (i == j || n - i == j + 1) {

                    System.out.print("*");

                } else {

                    System.out.print(" ");

                }

            }

            System.out.println();

        }

        for (int i = 0; i <= n; i++) {

            System.out.print("*");

        }

Albo tak

#include 


void print_chars(int n, char c) {

    for (int i = 0; i < n; ++i)

        printf("%c", c);

}


int main()

{

    int N = 8;

    int h = (N-1)/2;

    for (int y = 0; y < h; ++y) {

        print_chars(h-y, ' ');

        printf("*");

        print_chars(y*2, ' ');

        printf("*\n");

    }

    print_chars(N, '*');

    printf("\n");

    return 0;

}