थोड़ी देर के बाद और बाद में एक ग्रिड में रिक्ति निर्धारित करना और इसे कार्यान्वित करना

मुझे आश्चर्य है कि अगर कोई मुझे सही दिशा में इंगित करता है। मैं यह पता लगाने की कोशिश कर रहा हूं कि मैं इस कोड को डिजाइन करने के बारे में कैसे जाऊंगा:

private static void displaySeating(int s,int n) {

        int  i, k;

        i = 0;
        k = 0;
        while (i < s) {
            i++;
            System.out.print("\t X");
            if (i % 8 == 0) {
                System.out.println();
            }
        }

        while ( k < n) {
            k++;
            System.out.print("\t O");
            if ((k+s) % 8 == 0)  {
                System.out.println();
            }
        }

  }

तो यह इस ग्रिड में फिट होगा, लेकिन खुली ग्रिड दीवारों के साथ इसके चारों ओर बंद कर दिया? विक और विकर के साथ, int variables हैं जिन्हें मैंने घोषित किया है उदाहरण के लिए विक = 8, तो 8 एक्स और विकर = 36, तो 36 ओ।

                System.out.println();
            System.out.println("#########################################################################"); 
            System.out.println("#           |                                                |          #"); 
            System.out.println("#           |   Drury Lane                                   |          #");  
            System.out.println("#           |   "+sh1+calcSpaces(45, sh1)+"|          #");
            System.out.println("#           |                                                |          #");
            System.out.println("#           --------------------------------------------------          #");
            System.out.println("#                                                                       #");
            System.out.println("#                                                                       #"); 
            displaySeating(wick, wickre);
            System.out.println();
            }

I'm hoping for something similar to this

आउटपुट के साथ इस तरह दिखने के साथ

0
तो अगर मुझे यह सही लगता है तो आप 7 पैरामीटर /code> के पंक्तियों को चाहते हैं जब तक कि पहला पैरामीटर तक नहीं पहुंच जाता है और फिर दूसरा पैरामीटर तक 0 है?
जोड़ा लेखक Octoshape, स्रोत
क्षमा करें, int variables wick और विकर निर्धारित करते हैं कि कितने एक्स और ओ हैं।
जोड़ा लेखक user2988501, स्रोत
प्रश्न बहुत अस्पष्ट है। कृपया इसे ठीक से समझाएं ...
जोड़ा लेखक mtk, स्रोत

1 उत्तर

यहां आप जो चाहते हैं वह यहां है:

private static void displaySeating(int s,int n) {

int  i, k;

    i = 0;
    k = 0;

   //print left edge
    System.out.print("#");

    while (i < s) {
        i++;
        System.out.print("\t X");
        if (i % 8 == 0) {
           //print right edge
            System.out.println("\t#");

           //print left edge of next row
            System.out.print("#");
        }
    }        

    while ( k < n) {
        k++;
        System.out.print("\t O");
        if ((k+s) % 8 == 0)  {
           //print right edge
            System.out.println("\t#");

           //print left edge of next row
            System.out.print("#");
        }
    }

    if ((s + n) % 8 != 0) {
       //this means the last row isn't completely full with 0's

       //fill up the row with tabs to get to the edge
        while ((k+s) % 8 != 0) {
            k++;
            System.out.print("\t");
        }
       //print the right edge
        System.out.println("\t#");

       //add the lower edge
        System.out.println("#########################################################################"); 
    } else {
       //this means the last row was filled completely but the left edge of 
       //the next row has already been printed, so we make the lower edge 1 smaller.
        System.out.println("########################################################################");
    }
}

संपादित करें

एक बग मिला: यदि (s + n)% 8 == 0 हमें टैब के साथ अंतिम पंक्ति भरने की आवश्यकता नहीं है। उपरोक्त कोड में एक फिक्स जोड़ा गया।

1
जोड़ा
बहुत बहुत धन्यवाद! अंत में इतना आसान समाधान!
जोड़ा लेखक user2988501, स्रोत