C언어 묵찌빠 게임입니다.....헬미!!!!!!!
아이뻐
여기에 랭킹기능을 추기시킬수잇을까요.............ㅠㅠ좀도와주세요
랭킹좀 추가시켜주세요 ㅠㅠ
#include Turboc.h
#define UP 72
#define DOWN 80
#define ENTER 13
int menu();
int rsp();
void start();
void drscreen();
void title();
void guide();
void ranking();
void gameboard();
void gameboard2();
void fight();
void fight2();
void effect();
void effect2();
void vsprint();
void restart();
void drrock(int place);
void drcutter(int place);
void drpaper(int place);
void drsecret(int place);
int menuselect;
int rspselect;
int attacker;
int end;
int vic;
int total=0;
int win=0;
int lose=0;
int main()
{
attacker = 0;
vic = 0;
setcursortype(NOCURSOR);//키보드 상하 움직임
randomize();//가위 바위 보 랜덤으로 나옴
title();//타이틀 표시
menu();//타이플 안에 메뉴 표시
for(;;)
{
switch (menuselect)
{
case 1:
start();
case 2:
guide();//게임설명
menu();
break;
case 3:
ranking();
menu();
break;
case 4:
return 0;
}
}
return 0;
}
void start()
{
while (1)
{
end = 0;
gameboard();
rsp();
effect();
fight();
vsprint();
if (attacker 3)
{
while (1)
{
if (attacker == 1)
{
gameboard2();
rsp();
effect2();
gameboard2();
fight2();
vsprint();
if(total0 && win == 1)
{
vic = vic + 1;
win=0;
lose=0;
total=0;
restart();}
}
else if (attacker == 2)
{
gameboard2();
rsp();
effect2();
gameboard2();
fight2();
vsprint();
if(total0 && lose == 3)
{
vic = 0;
win=0;
lose=0;
total=0;
restart();
for(;;)
{
switch (menuselect)
{
case 1:
start();
break;
case 2:
main();
break;
}
}
return 0;
}
}
}
}
}
}
void restart()
{
int choice;
int select;
int cursor;
select=1;
cursor=6;
drscreen();
gotoxy(0,6);puts (▣ ▶ 1. 계속!!! ▣);
gotoxy(0,12);puts(▣ 2. 메 뉴 로 ▣);
gotoxy(0,22);puts( 메뉴를 선택해주세요. (↑,↓ 선택 / ENTER 결정)\n);
for(;;)
{
switch (select)
{
case 1:
cursor=6;
break;
case 2:
cursor=12;
break;
}
//while(1)
//{
if (kbhit())//키보드로 메뉴 선택
{
choice=getch();
switch (choice)
{
case UP: //키보드로 상하 조절기능
select = (select == 1) ? 2 : select-1;
break;
case DOWN:
select = (select == 2) ? 1 : select+1;lect+1;
break;
case ENTER:
menuselect = select;
return 0;
}
gotoxy(28,6);puts( );
gotoxy(28,12);puts( );
gotoxy(28,cursor);puts(▶);
}
}
return 0;
/*
int choice;
int select;
int cursor;
select=1;
cursor=6;
drscreen();
setcursortype(NOCURSOR);//키보드 상하 움직임
randomize();//가위 바위 보 랜덤으로 나옴
while(1)
{
if (kbhit())//키보드로 메뉴 선택
{
choice=getch();
switch (choice)
{
case UP: //키보드로 상하 조절기능
select = (select == 1) ? 4 : select-1;
break;
case DOWN:
select = (select == 4) ? 1 : select+1;
break;
case ENTER:
menuselect = select;
return 0;
}
switch (select)
{
case 1:
cursor=6;
break;
case 2:
cursor=9;
break;
case 3:
cursor=12;
break;
}
gotoxy(28,6);puts( );
gotoxy(28,9);puts( );
gotoxy(28,12);puts( );
gotoxy(28,cursor);puts(▶);
}
gotoxy(0,6);puts (▣ ▶ 1. 연승해서 계속!!! ▣);
gotoxy(0,9);puts (▣ 2. 그만 할래 ▣);
gotoxy(0,12);puts(▣ 3. 메 뉴 로 ▣);
}
for(;;)
{
switch (menuselect)
{
case 1:
start();
case 2:
vic = 0;
return 0;
case 3:
menu();
break;
}
}
return 0;
*/
}
void vsprint()
{
if (end == 1)
{
if(win == 3)
{
vic = vic + 1;
}//연승표시
end = 0;
win = win + 1;
total= total + 1;
}
else if (end == 2)
{
total= total + 1;
lose = lose + 1;
end=0;
//return 0;
}
gotoxy(34,5);printf(%d전 %d승 %d패,total,win,lose);
}
void drscreen()
{
clrscr();
gotoxy(0,0);puts (▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣);
gotoxy(0,1);puts (▣ ▣);
gotoxy(0,2);puts (▣ ▣);
gotoxy(0,3);puts (▣ ▣);
gotoxy(0,4);puts (▣ ▣);
gotoxy(0,5);puts (▣ ▣);
gotoxy(0,6);puts (▣ ▣);
gotoxy(0,7);puts (▣ ▣);
gotoxy(0,8);puts (▣ ▣);
gotoxy(0,9);puts (▣p; ▣);
gotoxy(0,10);puts(▣ ▣);
gotoxy(0,11);puts(▣ ▣);
gotoxy(0,12);puts(▣ ▣);
gotoxy(0,13);puts(▣ ▣);
gotoxy(0,14);puts(▣ ▣);
gotoxy(0,15);puts(▣ ▣);
gotoxy(0,16);puts(▣ ▣);
gotoxy(0,17);puts(▣ ▣);
gotoxy(0,18);puts(▣ ▣);
gotoxy(0,19);puts(▣ ▣);
gotoxy(0,20);puts(▣ ▣);
gotoxy(0,21);puts(▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣▣);
}
void title()
{
drscreen();
gotoxy(0,6);puts (▣ ■■■■■■■■ ■■■■■■■ ■ ■ ■ ■ ■ ▣);
gotoxy(0,7);puts (▣ ■ ■ ■ ■ ■ ■ ■ ■ ■ ▣);
gotoxy(0,8);puts (▣ ■ ■ ■ ■ ■ ■ ■ ■ ■ ▣);
gotoxy(0,9);puts (▣ ■■■■■■■■ ■ ■ ■ ■ ■ ■ ■ ▣);
gotoxy(0,10);puts(▣ ■ ■ ■ ■ ■■■■■■■ ■■■ ▣);
gotoxy(0,11);puts(▣ ■■■■■■■■ ■ ■ ■ ■ ■ ■ ■ ■ ▣);
gotoxy(0,12);puts(▣ ■ ■ ■ ■ ■ ■ ■ ■ ■ ▣);
gotoxy(0,13);puts(▣ ■■■■■■■■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ▣);
gotoxy(0,14);puts(▣ ■ ■ ■ ■ ■ ■ ■ ■ ■ ■ ▣);
gotoxy(0,15);puts(▣&nbnbsp; ■ ■ ■ ■ ■ ■ ■■■■■■■ ■ ▣);
gotoxy(0,22);puts( 아무 키나 누르세요.);
getch();
}
int menu()
{
int choice;
int select;
int cursor;
select=1;
cursor=6;
drscreen();
gotoxy(0,5);puts (▣ ▣);
gotoxy(0,6);puts (▣ ▶ 1. 게임 시작 ▣);
gotoxy(0,9);puts (▣ 2. 게임 설명 ▣);
gotoxy(0,12);puts(▣ 3. 랭킹 확인 ▣);
gotoxy(0,15);puts(▣ 4. 게임 종료 ▣);
gotoxy(0,22);puts( 메뉴를 선택해주세요. (↑,↓ 선택 / ENTER 결정)\n);
while(1)
{
if (kbhit())//키보드로 메뉴 선택
{
choice=getch();
switch (choice)
{
case UP: //키보드로 상하 조절기능
select = (select == 1) ? 4 : select-1;
break;
case DOWN:
select = (select == 4) ? 1 : select+1;
break;
case ENTER:
menuselect = select;
return 0;
}
switch (select)
{
case 1:
cursor=6;
break;
case 2:
cursor=9;
break;
case 3:
cursor=12;
break;
case 4:
cursor=15;
}
gotoxy(28,6);puts( );
gotoxy(28,9);puts( );
gotoxy(28,12);puts( );
gotoxy(28,15);puts( );
gotoxy(28,cursor);puts(▶);
}
}
return 0;
}
void guide()//게임 설명
{
drscreen();
gotoxy(0,3);puts (▣ 묵찌빠 하는 방법 ▣);
gotoxy(0,7);puts (▣ 1. 시작은 가위바위보로 공격자와 수비자를 정합니다. ▣);
gotoxy(0,9);puts (▣ 2. 공격자에게 공격권이 주어집니다. ▣);
gotoxy(0,11);puts(▣ 3. 공격자가 낸 것과 수비자가 낸 것이 같으면 공격자가 승리합니다. ▣);
gotoxy(0,13);puts(▣ 4. 공격자와 수비자가 낸 것이 다르면 수비에 성공합니다. ▣);
gotoxy(0,15);puts(▣ 5. 수비에 성공하면 현재 낸 것을 가위바위보 식으로 따집니다. ▣);
gotoxy(0,17);puts(▣ 6. 가위바위보에 이긴 사람을 새로운 공격자로 정하고 반복합니다. ▣);
gotoxy(0,22);puts( 아무 키나 누르면 메뉴로 돌아갑니다.);
getch();
}
void ranking()//랭킹 없음
{
drscreen();
gotoxy(0,10);puts(▣ 추후 추가 예정 입니다. ▣);
gotoxy(0,22);puts( 아무 키나 누르면 메뉴로 돌아갑니다.);
getch();
}
void gameboard() // 내 묵찌빠 화면
{
clrscr();
vsprint();
drsecret(0);
drsecret(48);
gotoxy(37,3);printf(%d 연승,vic);
gotoxy(0,16);puts( Y O U);
gotoxy(48,16);puts( C P U);
}
void gameboard2() //컴퓨터 묵찌빠 화면
{
clrscr();
vsprint();
drsecret(0);
drsecret(48);
gotoxy(37,3);printf(%d 연승,vic);
gotoxy(0,16);puts( Y O U);
gotoxy(48,16);puts( C P U);
if (attacker == 1)//공격 수비 교환
{
gotoxy(22,16);puts((공격자));
gotoxy(70,16);puts((수비자));
}
else if (attacker == 2)
{
gotoxy(22,16);puts((수비자));
gotoxy(70,16);puts((공격자));
}
}
int rsp()// 게임시작 시 가위바위보 선택
{
int choice;
int select;
int cursor;
select=1;
cursor=20;
choice=0;
gotoxy(0,18);puts( 무엇을 내시겠습니까?);
gotoxy(0,20);puts(&n ▶ 가위);
gotoxy(0,21);puts( 바위);
gotoxy(0,22);puts( 보);
while(1)
{
if (kbhit())
{
choice=getch();
switch (choice)
{
case UP:
select = (select == 1) ? 3 : select-1;
break;
case DOWN:
select = (select == 3) ? 1 : select+1;
break;
case ENTER://엔터 누르면 선택됨
rspselect = select;
return 0;
}
switch (select)
{
case 1:
cursor=20;
break;
case 2:
cursor=21;
break;
case 3:
cursor=22;
}
gotoxy(0,20);puts( 가위);
gotoxy(0,21);puts( 바위);
gotoxy(0,22);puts( 보);
gotoxy(0,cursor);puts( ▶);
}
}
}
void effect() //내 묵찌빠 화면 랜덤으로 돌아가기
{
int i;
gameboard();
for (i=0;i5;i++)
{
drrock(0);
drcutter(48);
delay(60);
drcutter(0);
drpaper(48);
delay(60);
drpaper(0);
drrock(48);
delay(60);
}
}
void effect2()//컴퓨터 묵찌빠 화면 랜덤으로 돌아가기
{
int i;
gameboard2();
for (i=0;i5;i++)
{
drrock(0);
drcutter(48);
delay(60);
drcutter(0);
drpaper(48);
delay(60);
drpaper(0);
drrock(48);
delay(60);
}
}
void fight()//가위바위보로 공격자위 수비자 결정 하기
{
int choice;
int cpuselect;
cpuselect = random(3);
gameboard();
gotoxy(39,20);puts(VS);
if (rspselect == 1)
{
drcutter(0);
gotoxy(23,20);puts(가위);
}
else if (rspselect == 2)
{
drrock(0);
gotoxy(23,20);puts(바위);
}
else if (rspselect == 3)
{
drpaper(0);
gotoxy(25,20);puts(보);
}
if (cpuselect == 0)
{
drcutter(48);
gotoxy(53,20);puts(가위);
}
else if (cpuselect == 1)
{
drrock(48);
gotoxy(53,20);puts(바위);
}
else if (cpuselect == 2)
{
drpaper(48);
gotoxy(53,20);puts(보);
}
if ((rspselect - cpuselect) == 1)
{
gotoxy(0,23);puts( 비겼습니다.);
attacker=3;
choice=getch();
}
else if ((rspselect - cpuselect) == 0 || (rspselect - cpuselect) == 3)
{
gotoxy(0,23);puts( CPU가 이겼습니다. CPU가 공격자 입니다.);
attacker=2;
choice=getch();
}
else if ((rspselect - cpuselect) == -1 || (rspselect - cpuselect) == 2)
{
gotoxy(0,23);puts( 당신이 이겼습니다. 당신이 공격자 입니다.);
attacker=1;
choice=getch();
}
}
void fight2()// 공적자와 수비자 결정후 묵찌빠 시작
{
int choice;
int cpuselect;
cpuselect = random(3);
if (attacker == 1)
gameboard2();
else if (attacker == 2)
gameboard2();
gotoxy(39,20);puts(VS);
if (rspselect == 1)
{
drcutter(0);
gotoxy(23,20);puts(가위);
}
else if (rspselect == 2)
{
drrock(0);
gotoxy(23,20);puts(바위);
}
else if (rspselect == 3)
{
drpaper(0);
gotoxy(25,20);puts(보);
}
if (cpuselect == 0)
{
drcutter(48);
gotoxy(53,20);puts(가위);
}
else if (cpuselect == 1)
{
drrock(48);
gotoxy(53,20);puts(바위);
}
else if (cpuselect == 2)
{
drpaper(48);
gotoxy(53,20);puts(보);
}
if ((rspselect - cpuselect) == 1)
{
if (attacker == 1)
{
gotoxy(0,23);puts( 당신이 이겼습니다!);
end = 1;
getch();
}
else if (attacker == 2)
{
gotoxy(0,23);puts( CPU가 이겼습니다!);
end = 2;
getch();
//delay(2000);
}
}
else if ((rspselect - cpuselect) == 0 || (rspselect - cpuselect) == 3)//공격실패시 공격자가 컴퓨터로 바낀다
{
if (attacker == 1)
{
gotoxy(0,23);puts( 공격 실패! 새로운 공격자는 CPU 입니다.);
}
else if (attacker == 2)
{
gotoxy(0,23);puts( 수비 성공! CPU 공격이 계속해서 이어집니다.);
}
attacker = 2;
choice=getch();
//delay(2000);
}
else if ((rspselect - cpuselect) == -1 || (rspselect - cpuselect) == 2)//수비 성공시 공격자가 나에게로 넘어온다
{
if (attacker == 1)
{
gotoxy(0,23);puts( 공격 실패! 계속해서 공격합니다.);
}
else if (attacker == 2)
{
gotoxy(0,23);puts( 수비 성공! 새로운 공격자는 당신입니다.);
}
attacker = 1;
choice=getch();
//delay(2000);
}
}
void drrock(int place)
{
int i;
i = place;
gotoxy(i,0);puts (□□□□□□□□□□□□□□□□);
gotoxy(i,1);puts (□&nbnbsp; □\n);
gotoxy(i,2);puts (□ □\n);
gotoxy(i,3);puts (□ ■■■■■ □\n);
gotoxy(i,4);puts (□ ■ ■ ■■■ □\n);
gotoxy(i,5);puts (□ ■ ■ ■ ■■■ □\n);
gotoxy(i,6);puts (□ ■■■■■ ■ ■ □\n);
gotoxy(i,7);puts (□ ■■ ■ ■ ■ □\n);
gotoxy(i,8);puts (□ ■ ■■■■■ ■ □\n);
gotoxy(i,9);puts (□ ■ ■■ ■■ □\n);
gotoxy(i,10);puts(□ ■ ■ ■ □\n);
gotoxy(i,11);puts(□ ■■ ■ □\n);
gotoxy(i,12);puts(□ ■■ ■■ □\n);
gotoxy(i,13);puts(□ ■■■■■■■ □\n);
gotoxy(i,14);puts(□□□□□□□□□□□□□□□□\n\n);
}
void drcutter(int place)
{
int i;
i = place;
gotoxy(i,0);puts (□□□□□□□□□□□□□□□□\n);
gotoxy(i,1);puts (□ ■■■ ■■■ □\n);
gotoxy(i,2);puts (□ ■ ■ ■ ■ □\n);
gotoxy(i,3);puts (□ ■ ■ ■ ■ □\n);
gotoxy(i,4);puts (□ ■ ■ ■ ■ □\n);
gotoxy(i,5);puts (□ ■ ■■ ■ □\n);
gotoxy(i,6);puts (□ ■ ■ ■■■ □\n);
gotoxy(i,7);puts (□ ■■■■■ ■■■ □\n);
gotoxy(i,8);puts (□ ■■ ■ ■ ■ □\n);
gotoxy(i,9);puts (□ ■ ■■■■■ ■ □\n);
gotoxy(i,10);puts(□ ■ ■■ ■ □\n);
gotoxy(i,11);puts(□ ■■ ■ □\n);
gotoxy(i,12);puts(□ ■■ ■■ □\n);
gotoxy(i,13);puts(□ ■■■■■■■ □\n);
gotoxy(i,14);puts(□□□□□□□□□□□□□□□□\n\n);
}
void drpaper(int place)
{
int i;
i = place;
gotoxy(i,0);puts (□□□□□□□□□□□□□□□□\n);
gotoxy(i,1);puts (□ ■■■■■■ □\n);
gotoxy(i,2);puts (□ ■■■ ■ ■■■ □\n);
gotoxy(i,3);puts (□ ■ ■ ■ ■ ■ □\n);
gotoxy(i,4);puts (□ ■ ■ ■ ■ ■ □\n);
gotoxy(i,5);puts (□ ■ ■ ■ ■ ■ □\n);
gotoxy(i,6);puts (□ ■■■ ■ □\n);
gotoxy(i,7);puts (□ ■ ■ ■■■■■ ■ □\n);
gotoxy(i,8);puts (□ ■ ■■ ■ □\n);
gotoxy(i,9);puts (□ ■ ■■ ■ □\n);
gotoxy(i,10);puts(□ ■■ ■■ ■ □\n);
gotoxy(i,11);puts(□ ■■ ■ □\n);
gotoxy(i,12);puts(□ ■■ ■■ □\n);
gotoxy(i,13);puts(□ ■■■■■■■ □\n);
gotoxy(i,14);puts(□□□□□□□□□□□□□□□□\n\n);
}
void drsecret(int place)
{
int i;
i = place;
gotoxy(i,0);puts (□□□□□□□□□□□□□□□□);
gotoxy(i,1);puts (□ ■■■■ □\n);
gotoxy(i,2);puts (□ ■■■■■■ □\n);
gotoxy(i,3);puts (□ ■■■ ■■■ □\n);
gotoxy(i,4);puts (□ ■■ ■■ □\n);
gotoxy(i,5);puts (□ ■■ ■■ □\n);
gotoxy(i,6);puts (□ ■■ ■■■ □\n);
gotoxy(i,7);puts (□ ■■■ □\n);
gotoxy(i,8);puts (□ ■■■ □\n);
gotoxy(i,9);puts (□ ■■ □\n);
gotoxy(i,10);puts(□ ■■ □\n);
gotoxy(i,11);puts(□ □\n);
gotoxy(i,12);puts(□ ■■ □\n);
gotoxy(i,13);puts(□ ■■ □\n);
gotoxy(i,14);puts(□□□□□□□□□□□□□□□□\n\n);
}
-
예다움
소스좀 수정해주세요 ㅠㅠ
번호 | 제 목 | 글쓴이 | 날짜 |
---|---|---|---|
2676182 | 숫자 순서대로 배열하는법 | 권뉴 | 2024-11-24 |
2676152 | 기본적인거 하나 질문드립니다. | 개미 | 2024-11-24 |
2676124 | 함수선언관련 질문이에요~...털썩..수정완료 (2) | 가지 | 2024-11-24 |
2676092 | C언어 책 (2) | 아서 | 2024-11-24 |
2676065 | 웹사이트 또는 메신저 등에서 원하는 텍스트를 검사하는방법?? (1) | 모든 | 2024-11-23 |
2676033 | 배열 기초연습중 발생하는 에러 ㅠㅜ... | Creative | 2024-11-23 |
2676005 | keybd_event 게임 제어 | 영글 | 2024-11-23 |
2675900 | 진짜기본적인질문 | 글길 | 2024-11-22 |
2675845 | 수정좀해주세요ㅠㅠㅠ | 해골 | 2024-11-21 |
2675797 | 병합 정렬 소스 코드 질문입니다. (2) | 도래솔 | 2024-11-21 |
2675771 | 큐의 활용이 정확히 어떻게 되죠?? | 해긴 | 2024-11-21 |
2675745 | 도서관리 프로그램 질문이요 | 도리도리 | 2024-11-20 |
2675717 | 2진수로 변환하는것! (3) | 동생몬 | 2024-11-20 |
2675599 | for문 짝수 출력하는 법 (5) | 널위해 | 2024-11-19 |
2675575 | Linux 게시판이 없어서.. | 첫삥 | 2024-11-19 |
2675545 | 구조체 이용할 때 함수에 자료 넘겨주는 것은 어떻게 해야 하나요? | 아연 | 2024-11-19 |
2675518 | 사각형 가로로 어떻게 반복해서 만드는지좀.. 내용 | 신당 | 2024-11-18 |
2675491 | !느낌표를 입력하는것은 어떻게합니까~~?ㅠㅠ (5) | 사지타리우스 | 2024-11-18 |
2675411 | 파일입출력으로 받아온 파일의 중복문자열을 제거한 뒤 파일출력 | 앨버트 | 2024-11-17 |
2675385 | 링크드리스트 주소록 질문드립니다. (1) | 겨루 | 2024-11-17 |