PDA

View Full Version : تمرین (مسابقه) برنامه نویسی



mostafa_C
پنج شنبه 16 اسفند 1386, 23:02 عصر
با سلام خدمت تمامی دوستان.
بنده قبلاً (چند روز پیش) یه پیشنهاد دادم و دیدم که کسی قدم پیشش نمیزاره بیاد کمک. گفتم بیام از انجمن CPP که تقریبا (با توجه به سوالات پرسیده شده اخیر) مبتدی زیاد داره، این کار رو شروع کنم. خودمم چون با CPP بیشتر حال می کنم، یه تبعیضی قائل شدم :لبخند:
مسئله شماره یک: یک عدد راندوم توسط رایانه در نظر گرفته میشه، و کاربر باید اون رو پیدا کنه.

البته این خیلی آسونه و سورسش همه جا هست. ولی خوب اگر کسی سخت تر سراغ داره خودش بزاره :بامزه:
منتظر فعالیت دوستان عزیز c++ کار، هستم

mostafa_C
پنج شنبه 16 اسفند 1386, 23:08 عصر
خوب برای شروع من کد خودم رو میزارم. البته چون این یک موضوعیه که توی اکثر کتاب های آموزشی هم بهش توجه می کنن و برای آموزش اعداد راندوم ازش استفاده می کنن، ممکنه که خیلی ساده باشه.
هر کس سوال سخت تری داره بسم الله، وگرنه خودم تا پس فردا یه سوال دیگه هم بزارم.

#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

int main()
{
srand(time(0));

int theNumber = rand() % 100 + 1;
int tries = 0, guess;


do
{

cout << "Enter a number:";
cin >> guess;
++tries;

if (guess > theNumber)
cout << "Too Big!\n\n";

if (guess < theNumber)
cout << "Too Small!\n\n";
} while (guess != theNumber);

cout << "\nThat's it! You got it in " << tries << " guesses!\n";

return 0;
}

mostafa_C
جمعه 17 اسفند 1386, 09:58 صبح
سخته که کسی جواب نمیده یا اینکه خیلی آسونه؟
می خواید سوال رو عوض کنم؟

ICEMAN
جمعه 17 اسفند 1386, 10:13 صبح
من موافقم ولی اگه یه Forum جدا برای مسابقات و آمادگی برای مسابقات باشه خیلی بهتره
http://forum.codecorona.com/forumdisplay.php?fid=42

mostafa_C
جمعه 17 اسفند 1386, 10:59 صبح
می بخشی ولی... هیچ جا برنامه نویس دات اٌ آر جی نمیشه.

ICEMAN
جمعه 17 اسفند 1386, 13:07 عصر
می بخشی ولی... هیچ جا برنامه نویس دات اٌ آر جی نمیشه.
منم نگفتم میشه فقط به عنوان منبع فارسی برای شما و بقیه لینک دادم

PC2st
جمعه 17 اسفند 1386, 14:05 عصر
راستش این مسئله باعث شد تا منم یک بازی بنویسم :بامزه:
مرحله به مرحله هست و امتیاز بندی هم داره، فقط یک خورده (!) کدهاش زیاد شده.

فایل GuessGame.h


typedef unsigned int ushort;
typedef unsigned int uint;

class GuessGame
{
public :

GuessGame();
uint StartNew( uint startRange, uint endRange, ushort count );
bool IsGuessed();

private :

bool isGuessed;
};


فایل GuessGame.cpp


#include "GuessGame.h"
#include <iostream>
#include <cstdlib>
#include <ctime>

using namespace std;

GuessGame::GuessGame()
: isGuessed( false )
{
srand( static_cast< uint >( time( 0 ) ) );
}

uint GuessGame::StartNew( uint startRange, uint endRange, ushort count )
{
if( startRange < endRange )
{
uint number;
uint random = rand() % ( endRange - startRange ) + startRange;
ushort counter;

this->isGuessed = false;

for( counter = 1; counter <= count; counter++ )
{
cout << "\r\nGuess a number from " << startRange << " to " << endRange << " : ";
cin >> number;

if( number < random )
{
cout << "Guess " << counter << "/" << count << ": " << number << " is smaller!" << endl;
}
else if( number > random )
{
cout << "Guess " << counter << "/" << count << ": " << number << " is bigger!" << endl;
}
else
{
this->isGuessed = true;
break;
}
}

if( this->isGuessed )
{
cout << "\r\nYeah! You do it! You Win." << endl;
return count * 2 - counter;
}
else
{
cout << "\r\nI'm so sorry, but you loose." << endl;
return 0;
}
}
else
{
throw -1;
}
}

bool GuessGame::IsGuessed()
{
return this->isGuessed;
}


فایلی که نقطه شروع برنامست:


#include "GuessGame.h"
#include <iostream>

using namespace std;

int main( int argc, char* argv[] )
{
GuessGame guessGame;
ushort level = 1;
uint score = 0;
uint range = 100;

do
{
cout << "\r\nThis is Level " << level << " *******************************************" << endl;
score += level * 100;
score += guessGame.StartNew( 0, range, 10 ) * level * 10;
cout << "\r\nYour current score is: " << score << endl;
range *= 2;
level++;
} while( guessGame.IsGuessed() );

cout << "\r\nYour total score is: " << score << endl;
cout << "\r\nThanks for your playing. Good Luck!" << endl;
system( "pause > nul" );
return 0;
}


تو بازی سعی کنین امتیاز بیشتری بگیرین! :-)

mostafa_C
جمعه 17 اسفند 1386, 15:12 عصر
عالیه ... خلی خوبه که دوستان دیگر هم بیش از چیزی که مسئله خواسته کار کنند.

mostafa_C
یک شنبه 26 اسفند 1386, 11:01 صبح
سلام، کس دیگه ای نمی خواد معما برای حل بزاره؟
یه معما که الگوریتمش به فکر آورنده باشه. یه چیزی توی مایه های ACM، اگر کسی نیست تا خودم از اون معما های آسونم بزارم

whitehat
یک شنبه 26 اسفند 1386, 14:03 عصر
http://barnamenevis.org/forum/showthread.php?t=87760&page=2
http://barnamenevis.org/forum/showthread.php?t=44593