1. ë¬¸ì œ ì •ì�˜ ¶
DeleteMe ë‚´ìš©ì�´ 중복ë�˜ì–´ì„œ ë¬¸ì œì •ì�˜ì™€ ì°¸ê³ ìž�료 부분ì�„ ì§€ì› ìŠµë‹ˆë‹¤. 위키ë�¼ëŠ” ì§€ì‹� í’€ì†�ì—� 중복ë�˜ëŠ” ì§€ì‹�ì�€ ë§�í�¬ë¡œ ì¶©ë¶„í•˜ê² ì§€ìš”. 아래ì�˜ ë¬¸ì œë“¤ ì—시
>
~cpp 숫ìž�야구/ìœ ì£¼ì˜� ì‹�으로 하는 편ì�´ 차후 ì ‘ê·¼ì„± 측면ì—�서 ë�” 좋ì�„것 같습니다.--NeoCoin- ì•„ì•…~ ì•„ì§� 마방진ë�„ 못했는ë�° ì–´ë ¤ìš´ê²Œ ë˜� -_ã…œ - 승ê·
- í•´ë³´ë©´ ì•Œê² ì§€ë§Œ ê²°ê³ ì–´ë µì§€ 않아 - 민수
- í•´ë³´ë©´ ì•Œê² ì§€ë§Œ ê²°ê³ ì–´ë µì§€ 않아 - 민수
- ì�´ê±° 4ìž�리 수로 ë§Œë“ ê±° 있는ë�° ì˜¬ë ¤ë�„ ë�˜ë‚˜ìš”?? 소스는 ì§€X같지만
- ì •ìš±
- ì•„ ê·¸ë¦¬ê³ rand() ë§Œ ì“°ë©´ 똑같ì�€ 숫ìž�ë§Œ ë�œë‹¤ê³ .. ë� 다른것ë�„ 해야 ë�˜ë�˜ë�°ìš”.. - ì •ìš±
- ctime 를 include í•˜ê³ srane(time(0)); ì�„ ì„ ì–¸í•´ì£¼ë©´ 바뀔걸~ - 민수
- ctime 를 include í•˜ê³ srane(time(0)); ì�„ ì„ ì–¸í•´ì£¼ë©´ 바뀔걸~ - 민수
2. ìœ ì£¼ì˜� ¶
~cpp
#include <iostream>
#include <stdlib.h>
#include <time.h>
using namespace std;
int main()
{
int num[3];
while(num[0]==num[1] || num[1]==num[2] || num[0]==num[2])
{
srand(time(NULL));
for(int i=0; i<3; i++)
num[i] = rand()%9 +1;
}
cout <<"컴퓨터가 ��한 숫� : " << num[0] << num[1] << num[2] << "\n";
int ch;
while(ch) // 탈출조건X
{cout <<"ìž…ë ¥ : ";
cin >> ch;
int person[3];
int bcount=0;
int scount=0;
person[0] = ch/100;
person[1] = (ch%100)/10;
person[2] = (ch%10);
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(num[i]==person[j])
{
if(i==j)
scount++;
else
bcount++;
}
}
}
if(scount==0 && bcount==0)
cout << "ì¶œë ¥ : OUT\n";
else if(scount==0 && bcount!=0)
cout << "ì¶œë ¥ : "<< bcount << "ë³¼\n";
else if(bcount==0 && scount!=0)
{ cout << "ì¶œë ¥ : " << scount << "스트ë�¼ì�´í�¬\n";
if(scount==3)
break;
}
else
cout << "ì¶œë ¥ : "<< scount << "스트ë�¼ì�´í�¬ " << bcount << "ë³¼\n";
}
cout << "프로그램� 종료해요.\n";
return 0;
}
ì—시나 야바위ì�˜ í�”ì �ì�´.. -_-+
쓰다보니 길어졌다~ while문 탈출조건 ì•ˆì“°ê³ ê¹”ë�”하게 하는방법 ì—†ì�„까.?
쓰다보니 길어졌다~ while문 탈출조건 ì•ˆì“°ê³ ê¹”ë�”하게 하는방법 ì—†ì�„까.?
- 오,, 주� 멋쪄~ ㅋㅋ - 민수
- 문ìž� ìž…ë ¥í•˜ë©´ 매트ë¦ìФ 모드 ë�Œìž…하네 -_-;;; - 승ê·
- 숫ìž�ë§Œ ìž…ë ¥í•˜ì§€ 않ì�€ 죄값ì�„ 치룬것ì�´ì˜¤.ã…‹ã…‹
- 숫ìž�ë§Œ ìž…ë ¥í•˜ì§€ 않ì�€ 죄값ì�„ 치룬것ì�´ì˜¤.ã…‹ã…‹
3. ê¶Œì •ìš± ¶
~cpp
// ë² ì�´ìŠ¤ë³¼ 게임입니다. 간단히 ë§�í•´ 숫ìž� 맞추기 게임으로 4ìž�리 ì�˜ 숫ìž�를 9번 ì�´ì „ì—� 맞춰야 합니다.
#include <iostream.h>
#include <stdlib.h>
#include <time.h>
int main()
{
int rand_num[3]; //난수ìƒ�성ì—� 사용ë� 변수입니다.
int i, j, k, num; //i,j,k 는 í�¬ë¬¸ìš©, num ì�€ 사용ìž� ìž…ë ¥ìž…ë‹ˆë‹¤.
int player_num[3]; //사용ìž�ê°€ ìž…ë ¥í•œ ê°’ì�„ ê°� ìž�리 숫ìž�로 ë‚˜ëˆ ì„œ rand_numê³¼ 비êµ�하기 쉽게 ë§Œë“니다.
int ext,extra; //여분� 변수입니다.
int strike, ball; //스트ë�¼ì�´í�¬ì™€ ë³¼ì�˜ íŒ�ì •ì—� 쓰입니다.
srand(time(NULL));
for(i=0;i<3;i++){
rand_num[i] = rand()%10; //한 �리수 난수를 �성합니다.
if (i == 1 && rand_num[i] == rand_num[0])
i--;
else if (i == 2 && (rand_num[i] == rand_num[0] || rand_num[i] == rand_num[1]))
i--;
} //� if 문� 통해서 4�리 숫�가 모� 다르게 배열�게 합니다.
for (i=0;i<9;i++){ //게임� 시작
cout << "3ìž�리 숫ìž�를 ìž…ë ¥í•˜ì„¸ìš”(숫ìž�ê°€ 겹치지 않게 쓰세요) : " ;
cin >> num;
ext = num;
if (num < 100 || num > 999) {
cout << "\a 잘못 ìž…ë ¥í•˜ì…¨ìŠµë‹ˆë‹¤. 다시 ìž…ë ¥í•˜ì—¬ 주세요. \n";
i--;
}
else{
for (j=2;j>=0;j--){//숫�를 배열로 바꾸는 �문
player_num[j] = ext%10;
ext = ext/10;
}
for(j=0;j<2;j++){ //��리 비� �문 시작
extra = 1;
for(k=j+1;k<3;k++){
if (player_num[j] == player_num[k]) {
cout << "\a 잘못 ìž…ë ¥í•˜ì…¨ìŠµë‹ˆë‹¤. 다시 ìž…ë ¥í•˜ì—¬ 주세요. \n";
i--;
extra = 0;
break;
}
if (extra == 0) break;
}
if (extra == 0) break;
} // ��리 비� �문 �
} // else 문 �
if (extra == 0) continue;
strike = 0;
ball = 0;
if (extra == 1) {
for(j=0;j<3;j++){
for(k=0;k<3;k++){
if (rand_num[j] == player_num[k] && j==k) strike++;
if (rand_num[j] == player_num[k] && j!=k) ball++;
}
}
}
if (strike == 0 && ball == 0) cout << "아웃입니다.\n";
else cout << strike << "스트���, " << ball << "볼 입니다.\n";
if (strike == 3) {
cout << "숫�를 맞추셨습니다.!!\n";
break;
}
if (i==8 && strike!=3) cout << "9회 게임 오버 입니다.\n";
} // 게임� �
return 0;
}
ë³´ê³ ë†€ë�¼ì§€ë“¤ ë§�아주시길 -_-;;; -ì •ìš±
어떻게 해야 í• ì§€ ëª¨ë¥´ê² ì–´ìš” ㅜㅜ -ì •ìš±
4. ì�¼ì • ¶
~cpp
#include<iostream> // ìˆ˜ì •íŒ� ^^
#include<ctime>
using namespace std;
int main()
{
int num[3];
int yagu[3];
int a;
cout<<"컴퓨터가 ��하는 숫�:";
srand(time(NULL));
do
{
for(int i=0;i<3;i++)
num[i]=rand()%9+1;
}while(!(num[0]!=num[1] && num[1]!=num[2] && num[2]!=num[0]));
cout<<num[0]<<num[1]<<num[2];
up :
cout<<"\nìž…ë ¥:";
cin>>a;
if(a<1000 && a>99)
{
yagu[0]=a/100;
yagu[1]=(a-yagu[0]*100)/10;
yagu[2]=(a-yagu[0]*100-yagu[1]*10);
}
else
cout<<"세ìž�리수를 ìž…ë ¥í•˜ì„¸ìš”:";
int strike=0;
int ball=0;
for(int i=0;i<3;i++)
{
for(int j=0;j<3;j++)
{
if(yagu[i]==num[j])
{
if(i==j)
strike++;
if(i!=j)
ball++;
}
}
}
if(strike!=0 && ball==0)
if(strike==3)
cout<<strike<<"스트���! 종료";
else
{cout<<strike<<"스트���";
goto up;
}
else if(strike==0 && ball!=0)
{
cout<<ball<<"ë³¼";
goto up;
}
else if(strike!=0 && ball!=0)
{
cout<<strike<<"스트���"<<ball<<"볼";
goto up;
}
else
{
cout<<"out";
goto up;
}
return 0;
}
- goto문ì�´ ìƒ�ê°�나서 쓰긴했는ë�° ... ... ì „ì—� 실습시간ì—� ì¡°êµ�ì˜¤ë¹ ê°€ goto문 안 쓰는 게 ì¢‹ë‹¤ê³ í•œ 것 ê°™ì�€ë�°.. ㅡㅜ숫ìž� ìž…ë ¥í• ë•Œ 한 숫ìž� ë„£ê³ ìŠ¤íŽ˜ì�´ìФ ë°” 누른 후 다ì�Œ 숫ìž�를 ìž…ë ¥í•´ì•¼ 하는 번거로움ì�´ 있네 어떻게 해야하지?? 프로그램ì�´ 바르게 ë�Œì•„가는 게 맞는 ì§€ í™•ì‹ ì�´ 없어서 계ì†� ë¯¸ë£¨ê³ ëª» ì˜¬ë ¸ëŠ”ë�° í� .. 틀린 것 좀 ì•Œë ¤ì£¼ì‹œê¸¸.... - ì�¼ì •
- 무엇ì�´ë“ 100% ì¢‹ê³ 100% 나ì�œê²ƒì�€ 없습니다. dijkstra í• ì•„ë²„ì§€ê°€ goto 를 ì“°ì§€ ë§�ë�¼ê³ 하셨ì�„ 때ë�„ 달리 ìƒ�ê°�하는 ë§Žì�€ ì•„ì €ì”¨ë“¤ì�´ 수많ì�€ 논문ì�„ ì�¼ê³ ì�´ë¡œ ì�¸í•´ ë§Žì�€ ë…¼ìŸ�ì�´ 있었습니다. 중요한것ì�€ 좋으ëƒ�? 혹ì�€ 나ì�˜ëƒ�? ê°€ 아니ë�¼ ê·¸ ê²°ë¡ ì—� ì�´ë£¨ì–´ì§€ê¸°ê¹Œì§€ì�˜ ê³¼ì •ìž…ë‹ˆë‹¤. SeeAlso NotToolsButConcepts
ì»´í“¨í„°ê³ ì „ Goto Statements Considered Harmfulì�˜ 구글 검색결과
GotoConsideredHarmful - 임��
- 소스코드를 보아하니 ë ˆì�´ë¸”로 cin ì�„ 사용하였군요. cin ì�´ c++ì�˜ 예약어는 아니지만 예약어와 마찬가지ì�¸ ostream ì�˜ ê°�ì²´ ì�´ë¦„입니다. ì�´ëŸ° ë ˆì�´ë¸”ì�€ 코드를 ì�½ëŠ” 사람ì—�게 ê·¸ ì�˜ë¯¸ê°€ ì™€ì „ë�˜ì–´ ì „ë‹¬ë� 수가 있습니다. - ìž„ì�¸íƒ�
- 넵!ì˜¤ë¹ ~ thank you~^^ -ì�¼ì •
- 넵!ì˜¤ë¹ ~ thank you~^^ -ì�¼ì •
- 오~ ì�¼ì • 대단해~ 잘했어~ - 민수
- 우와...goto...첨보는거다 =ã……= - 승ê·
- goto 문ì—� 관한 것ì�€ ë�„서관ì—�서 마ì�´í�¬ë¡œì†Œí”„트웨어 2003ë…„ 4월호 다ì�µìŠ¤íŠ¸ë�¼ê°€ gotoì—� 시비(?)를 ê±´ ì§„ì§œ ì�´ìœ 는 ì�´ë�¼ëŠ” 기사를 보세요. 2003ë…„ì—� GotoConsideredHarmful ì�„ 스터디 한후ì—� í† ë¡ í•˜ê³ ìž‘ì„±ë�œ 기사입니다. Dijkstra ì�˜ 심오한 ìƒ�ê°�들ì�´ 묻어 있ì�„ê²�니다. --아무개
- 문ë“� ìˆ™ì œë¥¼ 하다 go toì—�대해 알아보게 ë�˜ì—ˆêµ°ìš”. 편한방법ì�´ê¸´í•œë�°.. -주ì˜�
5. ì˜¤ìŠ¹ê· ì�˜ 숫ìž�야구게임 v1.3 ¶
~cpp
#include <iostream.h>
#include <stdlib.h>
#include <ctime>
void game();
void new_game();
void main()
{
cout << "┌──────────────────────────�\n"
"│ │\n"
"│ │\n"
"│ 숫 � 야 구 │\n"
"│ │\n"
"│ 게 임 ver 1.3 │\n"
"│ │\n"
"│ │\n"
"│ │\n"
"│ Made by ì˜¤ìŠ¹ê· â”‚\n"
"│ │\n"
"└──────────────────────────┘\n";// 타�틀 화면
cout << "\n";
game(); // 게임함수 시작
}
void game()
{
char random[4]; // ìž„ì�˜ë¡œ 만들어질 숫ìž�를 ì €ìž¥í•˜ëŠ” ë°°ì—´
char space[64]; // ìž…ë ¥í•˜ëŠ” 숫ìž�를 ì €ìž¥í•˜ëŠ” ë°°ì—´
int strike = 0; // 스타��� 카운터 초기화
int ball = 0; // 볼 카운터 초기화
srand(time(NULL));
for (int i = 0; i < 4; i++)
{
random[i] = '0' + rand() % 9 + 1;
for (int j = 0; j < i; j++)
if (random[i] == random[j])
{
i--;
break;
}
} // 랜�하게 4�리 숫�를 �성합니다
/*cout << random[0] << random[1] << random[2] << random[3] << endl;*/ // 대략 답 -_-;;;
cout << "랜�하게 4�리숫�를 만들었습니다. 맞춰보세요 *^^* (종료 : Q)\n\n";
int success = 0; // ì œëŒ€ë¡œ ìž…ë ¥í–ˆëŠ”ì§€ 확ì�¸ ì ˆì°¨ (0 = 실패, 1 = 성공)
while (success == 0)
{
cout << "숫ìž�를 ìž…ë ¥í•˜ì„¸ìš” : ";
cin.getline(space, 64);
success = 1;
if ((space[0] == 'q' || space[0] == 'Q') && space[1] == '\0')
{
cout << "Bye!!\n";
exit(0);
} // ë�„중ì—� 'Q'를 ìž…ë ¥í•˜ë©´ 종료
for (i = 0; i < 4; i++)
{
if (space[i] < '1' || space[i] > '9')
{
success = 0;
break;
}
} // 1~9사ì�´ì—� 숫ìž�ê°€ ì œëŒ€ë¡œ ìž…ë ¥ë�˜ì—ˆëŠ”ì§€ 확ì�¸
if (space[4] != '\0')
success = 0; // 4ìž�리가 ì •í™•ížˆ ìž…ë ¥ë�˜ì—ˆëŠ”ì§€ 확ì�¸
for (i = 0; i < 3; i++)
for (int h = i + 1; h < 4; h++)
if (space[i] == space[h])
{
success = 0;
break;
} // 중복 ìž…ë ¥ì�´ ë�˜ì—ˆëŠ”ì§€ 확ì�¸
if (success == 0)
continue; // 위 사í•중 1ê°œë�¼ë�„ 걸리면 다시 ìž…ë ¥
// 여기서 부터 ì œëŒ€ë¡œ ìž…ë ¥í–ˆì�„시...
for (int j = 0; j < 4; j++)
{
if (space[j] == random[j])
strike++; // 스트��� 카운터
for (int k = 0; k < 4; k++)
if (j != k && space[j] == random[k])
ball++; // ë³¼ ì¹´ìš´í„°
else
continue;
}
if (strike == 0 && ball == 0)
{
cout << "ê²°ê³¼ : ";
cout << "OUT!!"; // 스트ë�¼ì�´í�¬, ë³¼ì�´ 없는 겨우 'OUT' ì¶œë ¥
}
else if (strike == 4)
new_game(); // ì •í™•ížˆ ë§žì·„ì�„ 경우 new_game함수로 ì�´ë�™
else
{
cout << "ê²°ê³¼ : ";
cout << strike << "S" << " " << ball << "B";
} // ìž…ë ¥ì—� 대한 ê²°ê³¼ ì¶œë ¥
cout << endl;
strike = 0;
ball = 0;
success = 0; // success를 0으로 초기화함으로� while문 다시 시작
}
}
void new_game() // 게임�서 성공했�시 여기로 ��
{
cout << "맞추셨습니다. ë˜� í•˜ì‹œê² ìŠµë‹ˆê¹Œ? (Y/N) : ";
char ch;
cin >> ch;
while (ch != 'y' || ch != 'Y' || ch != 'n' || ch != 'N')
{
if (ch == 'y' || ch == 'Y')
{
while (cin.get() != '\n')
continue; // y를 ì¹˜ê³ ì—”í„°ë¥¼ 쳤ì�„때 ìƒ�기는 개행문ìž� ì œê±°
game();
break;
}
else if (ch == 'n' || ch == 'N')
{
cout << "Bye!!\n";
exit(0); // 게임 종료
}
else
{
cout << "맞추셨습니다. ë˜� í•˜ì‹œê² ìŠµë‹ˆê¹Œ? (Y/N) : ";
cin >> ch;
}
}
}
/*
Ver 1.3 Update
게임 �중� 종료기능 추가
Ver 1.2 Update
개행문ìž� ì œê±°í•˜ê¸° (무쟈게 ì–´ë ¤ì› ì–´ìš” ㅜㅜ)
Ver 1.1 Update
3ìž�리수ì—�서 4ìž�리수로 변경. 소스 대거 ìˆ˜ì •.
Ver 1.0
기본 í‹€ 완성. 게임ì�€ ì œëŒ€ë¡œ 구ë�™ë�˜ë‚˜ 숫ìž� ì�´ì™¸ì�˜ 문ìž� ìž…ë ¥ì‹œ 메트ë¦ìФ 모드 ë�Œìž… -_-;;;
*/
�효...무쟈게 힘들었� ㅜㅜ
그래� 성공하니 뿌듯하네요.
ê·¸ë¦¬ê³ ...
ì ˆëŒ€!!!!!!!!!!
�거 혼�한거 아님.
기본틀� 혼�서 다 했는�,
메트ë¦ìŠ¤ëª¨ë“œ ì œê±° ì�´ëŸ°ê±´ ë�„움좀 받았ì�Œ.
P.S. 윽...소스가 ì •ë¦¬ê°€ 안ë�˜ì–´ì„œ 보기ì—� 좋지는 않군 (쿨ëŸ) 비쥬얼C++ì—�다 ì§�ì ‘ 붙여서 보세요 ~_~
Digi-VM
그래� 성공하니 뿌듯하네요.
ê·¸ë¦¬ê³ ...
ì ˆëŒ€!!!!!!!!!!
�거 혼�한거 아님.
기본틀� 혼�서 다 했는�,
메트ë¦ìŠ¤ëª¨ë“œ ì œê±° ì�´ëŸ°ê±´ ë�„움좀 받았ì�Œ.
P.S. 윽...소스가 ì •ë¦¬ê°€ 안ë�˜ì–´ì„œ 보기ì—� 좋지는 않군 (쿨ëŸ) 비쥬얼C++ì—�다 ì§�ì ‘ 붙여서 보세요 ~_~
Digi-VM










