یک نمونه عملی از گرافیک سی‌پلاس‌پلاس

سلام.

خوب تقریبا توی مدرسه فصل گرافیک سی‌پلاس‌پلاس تموم شد.

از نظر من گرافیک توی زبانهای c++ و از این مدل زبان ها چیز جالبی نیست.

ولی خوب یک نمونه بازی ساده باهاش نوشتم که یه نمونه‌ی عملی باشه.

این بازی از این قراره که یک توپ توی صفحه داریم که اینطرف و اون طرف بره، فرد بازی کننده مسئول خالی کردن باد این توپ هست، یعنی باید روی این توپ کلیک کنه تا بادش خالی بشه، به مدت یک دقیقه هم وقت دارید باد توپ رو خالی کنید.

البته هرچقدر باد توپ کمتر میشه سرعت توپ بیشتر میشه و همچنین چون کوچیکتره کلیک کردن روش هم سخت تر هست.

کدش رو میزارم. خودتون کامپایلش کنید! :)

#include <iostream>
#include <cstdlib>
#include <graphics.h>

using namespace std;
int main()
{
    int x,y,mx,my,width,height,s = 0,st,rc, r = 100,d=200;
    initwindow(1000,700,"",-3,-3);
    srand(time(NULL));
    st = time(NULL);
    width = getmaxx();
    height = getmaxy();
    x = rand()%width;
    y = rand()%height;
    mx = rand()%50-25;
    my = rand()%50-25;
        setfillstyle(1,15);
        fillellipse(x,y,r,r);
    setwritemode(XOR_PUT);
    outtext("score: ");
    while(!kbhit() && time(NULL)-st <= 60 && r > 0)
    {
        fillellipse(x,y,r,r);
        x += mx;
        y += my;
        if(x < r) {
            x = r;
            mx *= -1;
        }
        if(x > width-r) {
            x = width-r;
            mx *= -1;
        }
        if(y < r) {
            y = r;
            my *= -1;
        }
        if(y > height-r) {
            y = height-r;
            my *= -1;
        }
        if(ismouseclick(WM_LBUTTONDOWN)) {
            clearmouseclick(WM_LBUTTONDOWN);
            if(((mousex()-x)*(mousex()-x))+((mousey()-y)*(mousey()-y)) <= r*r) {
                setcolor(15);
                outtext("X");
                rc = rand()%15+1;
                setfillstyle(1,rc);
                if( mx >= 0) mx += rand()%2; else mx -= rand()%2; 
                if( my >= 0) my += rand()%1; else my -= rand()%1; 
                r -= rand()%10;
                if( r < 1) r = 0;
                d -= rand()%3;
            }
        }
        fillellipse(x,y,r,r);
        delay(d);
    }
    if( r > 0) {
        outtextxy(40,20,"vaghte shoma tamam shod...");
    } else {
        outtextxy(40,20,"shoma barande shodid...");
    }
    getch();
    return 0;
}
۵ نظر موافقین ۲ مخالفین ۰
AliReza_Tofighi

پرسش‌های مرحله‌ی دوم ب.ب.م به همراه پاسخ

سلام.

امروز تقریبا از ساعت ۱:۳۰ تا ۳:۳۰ دومین دوره‌ی مسابقه‌ی برنامه نویسی ب.ب.م (بهترین برنامه نویس مدرسه) در دبیرستان دوره‌ی نخست (راهنمایی) استعدادهای درخشان شهیدصدوقی برگذار شد.

این آزمون دارای ۶ سوال بود که مسابقه‌دهندگان باید سوالات رو در مدت ۱ساعت و ۴۵ دقیقه حل می‌کرد و خوش بختانه مثل پارسال نشد و میشد همه‌ی سوالا رو با بیسیک(!) (زبان جالبی نیست اگه نمیدونید چیه بهتره ندونید!) بنویسن!

همچنین برای اینکه استرس بهشون وارد کنم هر مدت میومدم بهشون میگفتم تا الآن چندم هستن که اذیت بشن در حد مطلوب! :)

۸ نظر موافقین ۲ مخالفین ۱
AliReza_Tofighi

اعلام نتایج مرحله اول المپیاد های علمی کشور ۹۲-۹۳

سلام.

خوب نتایج مرحله اول المپیاد هم اومد.

برای دیدن نتیجه‌هاتون به لینک زیر برید:

http://ysc.ac.ir/include_news_post.php?id+post=88

 

خود من هم قبول شدم! :)

 

کسانی که از مدرسه‌ی ما قبول شدند:

  • محمد محمدی فر - فیزیک
  • میلاد نشاسته گر - فیزیک
  • فرزاد فتوحی - ادبیات
  • کیان فرح‌زا - ادبیات
  • علی جعفری پور - ریاضی
  • مجمدمهدی شجاعی فر - ریاضی
  • حسین انتظاری زارچ - ریاضی
  • امیر محمد صفری زارچ - ریاضی
  • محمد حسن مزیدی شرف آبادی - ریاضی
  • فرزاد فتوحی - ریاضی
  • مهدی جواجه‌شرف آبادی - ریاضی
  • مجمد سعید مسیحا - ریاضی
  • مجمد امین ناظرزاده - ریاضی
  • علیرضا توفیقی محمدی (خودم) - کامپیوتر
  • مجمد امین ناظرزاده - کامپیوتر
  • میلاد نشاسته‌گر - کامپیوتر
  • سید محمد هاشمیه بنادکی - نجوم و اختر فیزیک

۱۸ تا قبولی داشته مدرسه‌امون که من تقریبا میدونستم مدرسه‌ی ما هستن (فک کنم یک نفر رو توی لیست بالا جا انداختم! ازش همینجا معذرت می‌خوام!) از همه‌ی رشته‌ها هم حداقل یکی قبولی داشته!

۰ نظر موافقین ۱ مخالفین ۱
AliReza_Tofighi

روش استفاده از گرافیک در Dev C++

سلام.

برای استفاده از اینکلود graphics.h در Dev C++ باید مراحل زیر رو طی کنید.

ابتدا فایل روبرو رو دریافت کنید و در مسیر نصب Dev c++ در پوشه‌ی include بریزید: (فایل)

سپس فایل فایل روبرو رو نیز دریافت کنید و در مسیر نصب Dev C++ در پوشه‌ی lib بریزید: (فایل)

حال نرم‌افزار Dev c++ رو باز کنید از File->New->Project  

روی Empty Project کلیک کنید و همچنین روی C++ Project نیز بزاریدش و روی Ok بزنید و سپس مسیر فایلتون رو مشخص کنید.

پس از اون در منوی Project بر روی New File کلیک کنید تا فضای نوشتن شما بیاد.

و همچنین در منوی Project گزینه Project Options رو انتخاب کنید

 در تب Parameters در textbox زیرش کد زیر رو بزارید و روی Ok کلیک کنید.

-lbgi
-lgdi32
-lcomdlg32
-luuid
-loleaut32
-lole32

حال برید خوش باشید...

۳ نظر موافقین ۱ مخالفین ۱
AliReza_Tofighi

مسابقه برنامه نویسی ب.ب.م

برای اطلاعات بیشتر به نشانی http://sdsampad.ir مراجعه فرمائید.

۱ نظر موافقین ۱ مخالفین ۱
AliReza_Tofighi

کلاس ریاضی آقای احرامیان پور - متن درس دستگاه دو معادله دو مجهول

سلام.

خوب خیلی ها نرسیدن آخرین چیزایی که گفت رو بنویسن، آقای کریمی! هم ازش عکس گرفت من هم میزارم اینجا هرکی خواست استفاده کنه!

۱ نظر موافقین ۱ مخالفین ۱
AliReza_Tofighi

سوال A کانتست ۳۸۹ کدفورسز - روباه و بازی اعداد

روباه داره یه بازی با اعداد انجام می‌ده.

او n تا عدد مثبت صحیح داره x1x2, ..., xn . او می‌تونه هرچه قدر که خواست با این اعداد بازی کنه. او هربار دو عدد مختلف مثل xi و xj انتخاب می‌کنه به طوری که xi>xj باشه و مقدار xi رو برابر با xi = xi - xj قرار می‌ده. او می‌خواد مقدار مجموع این اعداد رو به کمترین حالت ممکن برسونه.

به روباه کمک کنید تا به کمترین مجموع برسه.

ورودی

در اولین خط عدد n رو می‌گیره (2 ≤ n ≤ 100). در خط دوم n عدد صحیح مثبت میگیره: x1x2, ..., xn (1 ≤ xi ≤ 100)


خروجی

تنها یک عدد در خروجی باید بنویسه و اون کمترین مجموع ممکن هست.

منبع:http://codeforces.com/problemset/problem/389/A

۰ نظر موافقین ۱ مخالفین ۱
AliReza_Tofighi

جرج و خواب

جرج از خواب پا می‌شه و می‌بینه که ساعت کنونی توی ساعت دیجیتالش زمان s رو نشون می‌ده. همچنین او می‌ده که برای مدت t اونجا خوابیده بوده.

حالا به جرج کمک کنید! او می خواد یک برنامه بنویسه که با گرفتن t و s مشخص کنه که او کی رفته توی تخت‌خواب.

نکته! جرج می‌تونه روز قبل زمان کنونی رفته باشه توی تخت‌خواب که بخوابه.

ورودی:

ابتدا زمان کنونی s رو توی قالب یک رشته به فرمت "hh:mm" و بعد از اون t رو هم در قالب یک رشته به فرمت "hh:mm" از ورودی می‌گیره.

خروجی:

عدد p که میشه زمانی که جرج رفته توی تخت‌خواب که بخوابه.

منبع: http://codeforces.com/problemset/problem/387/A

نمونه ها در ادامه‌:

۰ نظر موافقین ۱ مخالفین ۰
AliReza_Tofighi

برنامه‌ی دو معادله دو مجهور

خوب شرح مسئله از این قراره که باید ضرایب a1,b1,c1,a2,b2,c2 رو بگیره و توی دستگاه قرار بده و مقدار x,y رو به ما بده.

خوب این برنامه فقط معادله هست.

از معادله‌ی اول مقدار x رو به دست می‌یاریم:

a1*x + b1*y = c1 => x = (c1 - b1*y) / a1

حالا x رو مقدارش رو به دست آوردیم، توی معادله‌ی دوم جا گذاری می‌کنیم و مقدار y رو هم به دست می‌یاریم:

a2*x + b2*y = c2 => (a2*c1 - a2*b1*y) / a1 + b2*y = c2 => y = ((a2*c1)-(a1*c2))/((a2*b1)-(a1*b2))

خوب حالا توی این معادله y رو بر حسب ضرایب و x رو بر حسب y داریم، پس اول y رو محاسبه می‌کنیم و سپس x رو محاسبه می‌کنیم.

کد برنامه:


/*
* By: AliReza_Tofighi
*/

#include <iostream>
#include <conio.h>

using namespace std;

int main() {
int a1,b1,c1,a2,b2,c2,x,y;
cout<<"zarayeb ra be tartibe vared konid: (a1, b1, c1, a2, b2, c2)"<<endl;
cin>>a1>>b1>>c1>>a2>>b2>>c2;
if(((a2*b1)-(a1*b2)) == 0 || a1 == 0) {
cout<<"javab nadarad";
} else {
y = ((a2*c1)-(a1*c2))/((a2*b1)-(a1*b2));
x = (c1-(b1*y))/a1;
cout<<"x = "<<x<<endl<<"y = "<<y;
}
cout<<endl;
getch();
return 0;
}
۳ نظر موافقین ۱ مخالفین ۰
AliReza_Tofighi

آموزش حلقه‌ی for در c++

سلام.

توی این پست می‌خوام بگم که حلقه‌ی فور چیه!

حقله‌ی for یه حلقه هست مثل while

while اینجوریه کد اش:

while(شرط) {
Codes
}

و میگه تا زمانی که شرط برقرار بود Codes رو اجرا کن

ولی بعضی وقتها while امون تقریبا ساختاری مثل زیر رو داره:

int i = 1;
while(شرط) {
Codes
i++;
}

یعنی یه دستور قبل از شروع حلقه هست.

یه شرط برای اجرای دستورات داخل حلقه هست.

و یه دستور بعد از اجرای دستورات و کدهای داخل حلقه وجود داره.

برای این به جای اینکه بیان از ساختار while استفاده کنن یه ساختار جدید وجود داره به نام حلقه‌ی for که به شکل زیر هست برای کد بالا:

for(int i = 1;شرط;i++) {
Codes
}

خوب این شد توضیح حلقه‌ی for - در کل بیشتر از حلقه‌ی for استفاده می‌شه چون خیلی سرعتر هست و راحت تره کار باهاش.

۰ نظر موافقین ۱ مخالفین ۰
AliReza_Tofighi