#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <windows.h>
class wordCard
{
public:
wordCard( void ) : m_wordLen(0), m_rightWord(\'?\')
{
}
wordCard( const char* _word ) : m_rightWord(\'?\')
{
strcpy( m_word, _word );
m_wordLen = strlen( m_word );
}
~wordCard( void )
{
}
public:
void setWord( const char* _word )
{
strcpy( m_word, _word );
m_wordLen = strlen( m_word );
}
bool isAnswerRight( char _answer )
{
if( _answer == m_rightWord )
{
m_word[m_pos] ^= m_rightWord ^= m_word[m_pos] ^= m_rightWord;
return true;
}
m_word[m_pos] ^= m_rightWord ^= m_word[m_pos] ^= m_rightWord;
return false;
}
void makeQuiz( void )
{
m_pos = rand() % m_wordLen;
m_word[m_pos] ^= m_rightWord ^= m_word[m_pos] ^= m_rightWord;
}
void printWord( void )
{
printf(\"%s\",m_word);
}
private:
char m_word[15];
char m_rightWord;
unsigned int m_pos;
unsigned int m_wordLen;
};
wordCard g_wordList[6];
int main( void )
{
srand( GetTickCount() );
g_wordList[0].setWord( \"car\" );
g_wordList[1].setWord( \"fall\" );
g_wordList[2].setWord( \"truck\" );
g_wordList[3].setWord( \"flower\" );
g_wordList[4].setWord( \"blanket\" );
g_wordList[5].setWord( \"elephant\" );
char flag = \'y\';
while( flag == \'y\' )
{
int cnt = 0;
char ch = 0;
for( int i = 0 ; i < 6; i++ )
{
g_wordList[i].makeQuiz();
printf(\"LEVEL %d : \",i+1);
g_wordList[i].printWord();
printf(\"\\n맞춰봐 : \");
scanf(\"%c\",&ch );
stdin->_cnt = 0;
if( g_wordList[i].isAnswerRight(ch) )
{
printf(\"딩동댕!!\\n\");
cnt++;
}
else
{
printf(\"땡!\\n\");
}
}
printf(\"모두 %d개 맞추었군요.\\n\",cnt);
printf(\"다시할래요?(y/n)\");
scanf(\"%c\", &flag );
stdin->_cnt = 0;
}
return 0;
}
여기서 어떻게더 쉽게짜줌ㅜㅜ
#include <string.h>
#include <stdlib.h>
#include <windows.h>
class wordCard
{
public:
wordCard( void ) : m_wordLen(0), m_rightWord(\'?\')
{
}
wordCard( const char* _word ) : m_rightWord(\'?\')
{
strcpy( m_word, _word );
m_wordLen = strlen( m_word );
}
~wordCard( void )
{
}
public:
void setWord( const char* _word )
{
strcpy( m_word, _word );
m_wordLen = strlen( m_word );
}
bool isAnswerRight( char _answer )
{
if( _answer == m_rightWord )
{
m_word[m_pos] ^= m_rightWord ^= m_word[m_pos] ^= m_rightWord;
return true;
}
m_word[m_pos] ^= m_rightWord ^= m_word[m_pos] ^= m_rightWord;
return false;
}
void makeQuiz( void )
{
m_pos = rand() % m_wordLen;
m_word[m_pos] ^= m_rightWord ^= m_word[m_pos] ^= m_rightWord;
}
void printWord( void )
{
printf(\"%s\",m_word);
}
private:
char m_word[15];
char m_rightWord;
unsigned int m_pos;
unsigned int m_wordLen;
};
wordCard g_wordList[6];
int main( void )
{
srand( GetTickCount() );
g_wordList[0].setWord( \"car\" );
g_wordList[1].setWord( \"fall\" );
g_wordList[2].setWord( \"truck\" );
g_wordList[3].setWord( \"flower\" );
g_wordList[4].setWord( \"blanket\" );
g_wordList[5].setWord( \"elephant\" );
char flag = \'y\';
while( flag == \'y\' )
{
int cnt = 0;
char ch = 0;
for( int i = 0 ; i < 6; i++ )
{
g_wordList[i].makeQuiz();
printf(\"LEVEL %d : \",i+1);
g_wordList[i].printWord();
printf(\"\\n맞춰봐 : \");
scanf(\"%c\",&ch );
stdin->_cnt = 0;
if( g_wordList[i].isAnswerRight(ch) )
{
printf(\"딩동댕!!\\n\");
cnt++;
}
else
{
printf(\"땡!\\n\");
}
}
printf(\"모두 %d개 맞추었군요.\\n\",cnt);
printf(\"다시할래요?(y/n)\");
scanf(\"%c\", &flag );
stdin->_cnt = 0;
}
return 0;
}
여기서 어떻게더 쉽게짜줌ㅜㅜ
으으 windows.h 극혐 - DCW
시드값넣으려고 time대신씀
형님 안주무시고 계셧네요
형님꺼 아무리 봐도 모르겠습니다.. WINDOWS.H ...
gettickcount()대신 time(NULL)써도됨
제가 배운 내용이 아니라 그런지 너무 어렵게 느껴집니다 ㅠㅠ
근데 windows.h 이거 안쓰고는 못하나요?
쓰지않고 time.h로 대체하면가능
시간 되시면 time.h 대체해서 알려주실수있나요?
GetTickCount() 때문에 windows.h를 include한건데 저거대신 time.h를 include하고 time(NULL)로 바꿔도됨
windows.h를 time.h로 바꾸고
srand( GetTickCount() );를 srand( time(NULL) );로 바꾸면됨
이거 형님이 판단할때 난이도 ABCDEF 로 나뉘면 A가 최상 F 최하일때 어느등급정도에 속하는거 같나요
한글로라도 소설쓰듯이 순서를생각해봐.
난이도는 D정도?
이제 막 시작한지라 뭐가 뭔지 헤멜뿐입니다..ㅠㅠ 시간의 여유를 가지고 해야겠네요 ㅠㅠ 감사합니다 아무튼
근데 배열은 배웠음?
코딩전에 손으로 생각해보셈 car -> 숫자 랜덤 하나뽑기 -> 뽑은 숫자를 위치로 저장-> 해당 위치의 문자를 정답으로 저장, 해당 위치의문자를 \'?\'로 변경 -> 출력 -> 정답확인 -> ?문자를 원래대로 복구
배열 대충 뭔지만 알지 따로 깊게 배운적은 없는거 같네요.. 그냥 옆들었다 해야하나
문자열(배열)을 안배웠으면 풀기어려운 문제긴한데;;
아 그런가요? 제가 C++ 배운지 몇시간 안돼서...pdf파일로 3~4개 파일 밖에 안나간상태라... C++가 처음배우는 언어고요 ㅠㅠ
C언어 안배워도 C++배울수 있다는 말에 수강했더니 큰 문제네요..ㅠㅠ
콘솔 프로그램에 windows.h 쓴 거 부터 극혐. 차라리 inline assembly로 rdtsc 어셈 호출해서 그 값 쓰지...
글삭튀 굿
아니 그 많은 댓글은 누가 다 먹어부렸어야?