בקשת עזרה בתכנות ב++C , משחק שולה המוקשים. (עדכון בעמוד 4) - תכנות - HWzone פורומים
עבור לתוכן
  • צור חשבון

בקשת עזרה בתכנות ב++C , משחק שולה המוקשים. (עדכון בעמוד 4)


SubX

Recommended Posts

  • תגובות 44
  • נוצר
  • תגובה אחרונה

אתה יכול לעשות 2 לולאות מכוננות מ-0 עד 20.

בכל לולאה לצייר מלבן במידות i*15, j*15, (i+1)*15-1, (j+1)*15-1.

(לקואורדינטות האלה תצטרך כמובן להוסיף את top או left כדי שיתחילו מהמקום שאתה רוצה)

קישור לתוכן
שתף באתרים אחרים

תודה.

לפחות אני רואה ריבועים , אבל לא במקומות הנכונים.

אשמח אם מישהו יוכל לתקן לי את התוכנית :silly::hi:


#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
void main()
{
int gdriver = DETECT, gmode, errorcode;
int left,top,right,bottom;
int i,j;
int lft=150,tp=150,rtl=-135,btm=-135;

initgraph(&gdriver, &gmode, "C:\\BORLANDC\\BGI");

errorcode = graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}

left = getmaxx() / 2 - 150;
top = getmaxy() / 2 - 150;
right = getmaxx() / 2 + 150;
bottom = getmaxy() / 2 + 150;

rectangle(left,top,right,bottom);

for(i=0; i<20; i++)
{
lft=(i+1)*15-1;
tp=(i+1)*15-1;
lft = getmaxx() / 2 - lft;
tp = getmaxy() / 2 - 150;
rtl = getmaxx() / 2 + -rtl;
btm = getmaxy() / 2 + -135;
rectangle(lft,tp,rtl,btm);

for(j=0; j<20; j++)
{
tp=(j+1)*15-1;
btm=(j+1)*15-1;
lft = getmaxx() / 2 - 150;
tp = getmaxy() / 2 - tp;
rtl = getmaxx() / 2 + -135;
btm = getmaxy() / 2 + -btm;
rectangle(lft,tp,rtl,btm);
}
}

getch();
closegraph();
}

קישור לתוכן
שתף באתרים אחרים

עכשיו אני רואה נקודות שהיו צריכים להיות ריבועים. :-\


#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
void main()
{
int gdriver = DETECT, gmode, errorcode;
int left,top,right,bottom;
int i,j;
int lft=150,tp=150,rtl=-150,btm=-150;

initgraph(&gdriver, &gmode, "C:\\BORLANDC\\BGI");

errorcode = graphresult();
if (errorcode != grOk)
{
printf("Graphics error: %s\n", grapherrormsg(errorcode));
printf("Press any key to halt:");
getch();
exit(1);
}

left = getmaxx() / 2 - 150;
top = getmaxy() / 2 - 150;
right = getmaxx() / 2 + 149;
bottom = getmaxy() / 2 + 149;
rectangle(left,top,right,bottom);

for(i=0; i<20; i++)
{

lft=(i+1)*15-1+left;
rtl=(i+1)*15-1+left;
tp=(j+1)*15-1+top;
btm=(j+1)*15-1+top;

rectangle(lft,tp,rtl,btm);

for(j=0; j<19; j++)
{

tp=(j+1)*15-1+top;
btm=(j+1)*15-1+top;
lft=(i+1)*15-1+left;
rtl=(i+1)*15-1+left;

rectangle(lft,tp,rtl,btm);

}
}

getch();
closegraph();
}

קישור לתוכן
שתף באתרים אחרים

תודה

שמתי לב שהדרך שלך עובדת טיפה יותר מהר (אני מעדיף אותה), אבל איך אני ממרכז את הממשק בדרך שלך? (בשלי הצלחתי)


#include <graphics.h>
#include <stdlib.h>
#include <stdio.h>
#include <conio.h>
#include <dos.h>
void main()
{
   int gdriver = DETECT, gmode, errorcode;
   int left,top,right,bottom;
   int i,j,k,size;
   int lft,tp=59,rtl=468,btm=74;

   initgraph(&gdriver, &gmode, "C:\\BORLANDC\\BGI");

   errorcode = graphresult();
   if (errorcode != grOk)
   {
      printf("Graphics error: %s\n", grapherrormsg(errorcode));
      printf("Press any key to halt:");
      getch();
      exit(1);
   }
   //getmaxx() == 639
   //getmaxy() == 479
   left = getmaxx() / 2 - 150;
   top = getmaxy() / 2 - 150;
   right = getmaxx() / 2 + 150;
   bottom = getmaxy() / 2 + 150;
/*
   left=169;
   top=89;
   right=468;
   bottom=388; */

printf("What the size you want? :");
scanf("%d",&size);
//clrscr();

for(tp=getmaxy() / 2; tp<15*size; tp+=15)
{
for(lft=getmaxx() / 2; lft<15*size; lft+=15)
{
rectangle(lft,tp,lft+15,tp+15);
       }

   }
   getch();
   closegraph();
}

קישור לתוכן
שתף באתרים אחרים

המורה שלי אמרה שעדיף עם ריבועים ולא "רשת" בטענה שככה יהיה אפשר לצבוע אותם כשאני מפנה שטחים כשאני משחק (פוגע במוקש או לא פוגע)

תאמין לי בקושי מישהו מבין אותה בגלל זה בחרתי בשיטת הריבועים :-X

קישור לתוכן
שתף באתרים אחרים

לא הבנתי למה זה יותר פשוט עם ריבועים אבל שיהיה

אגב תנסה לחפש פרוייקטים של אנשים אחרים

הנה משהו שמצאתי שמישהו עושה שולה מוקשים ב-C++

http://www.programmersheaven.com/zone8/cat121/27733.htm

יש שם גם את הקוד מקור

קישור לתוכן
שתף באתרים אחרים

גם אני לא הבנתי למה זה פשוט יותר עם ריבועים :s07:

תודה רבה על הלינק, אני בטוח שהוא יעזור לי בעת הצורך. :)

אני בספק אם המורה שלי יודעת לעשות משהו בעצמה ב++C ..

קישור לתוכן
שתף באתרים אחרים

אם אתה רוצה לצבוע אותם בצבעים שונים, זה יותר קל. אם אני לא טועה יש פונ שנקראת BAR שמציירת גם עפ צבע בפנים. בכל מקרה, אם אתה רוצה למרכז, אחרי שאתה מחלק את גודל המסך שלך ל-2 אתה צריך להוריד ממנו_ממכרז המסך) את הרוחב המקסימלי של כל המלבנים ביחד חלקי 2. אני מציע לך לצייר את זה על דף נייר לבן ולראות מה אתה צריך לעשות זה עוזר נורא..

קישור לתוכן
שתף באתרים אחרים

OK , הצלחתי למרכז את הממשק.


   width_center = (getmaxx() / 2) - ((cubes*size)/2);
   hight_center = (getmaxy() / 2) - ((cubes*size)/2);

for(tp=hight_center; tp<cubes*size+hight_center; tp+=cubes)
   {
   for(lft=width_center; lft<cubes*size+width_center; lft+=cubes)
       {
       rectangle(lft,tp,lft+cubes,tp+cubes);
       }

   }

תודה על כל העזרה , אני אעדכן אם אני אתקשה בעוד משהו.

עדכון : הצלחתי למלא את הריבועים עם הפונקציה BAR (עכשיו כשאני חושב על זה, גם עם קווים לא הייתה בעייה למלא אותם) , אך לא הבנתי איך לצבוע את הריבועים שהיא יוצרת בצבע אחר (הצבע של הריבועים בברירת מחדל לבן).

קישור לתוכן
שתף באתרים אחרים

ארכיון

דיון זה הועבר לארכיון ולא ניתן להוסיף בו תגובות חדשות.


×
  • צור חדש...