“贪吃蛇”C代码,在dev C++试验通过(用4个方向键控制)
最简单的小游戏代码 最简单的小游戏代码是什么
最简单的小游戏代码 最简单的小游戏代码是什么
#include
#include
#include
#include
#include
#define W 78 //游戏框的宽,x轴
#define H 26 //游戏框的高,y轴
int dir=3; //方向变量,初值3表示向“左”
int Flag=0; //吃了食物的标志(1是0否)
int score=0; //玩家得分
struct food{ int x; //食物的x坐标
int y; //食物的y坐标
}fod; //结构体fod有2个成员
struct snake{ int len; //蛇身长
int speed; //移动速度
int x[100]; //蛇身某节x坐标
int y[100]; //蛇身某节y坐标
}snk; //结构体snk有4个成员
void gtxy( int x,int y) //控制光标移动的函数
{ COORD coord;
coord.X=x;
coord.Y=y;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE), coord);
}void gtxy( int x,int y); //以下声明要用到的几个自编函数
void csh( ); //初始化界面
void keymove( ); //按键作移动蛇
void putFod( ); //投放食物
int Over( ); //游戏结束(1是0否)
void Color(int a); //设定显示颜色的函数
int main( ) //主函数
{ csh( );
while(1)
{ Sleep(snk.speed);
keymove( );
putFod( );
if(Over( ))
{ (“cls”);
gtxy(W/2+1,H/2); printf(“游戏结束!T__T”);
gtxy(W/2+1,H/2+2); printf(“玩家总分:%d分”,score);
getch( );
break;
}}
return 0;
}void csh( ) //初始化界面
{ int i;
gtxy(0,0);
CONSOLE_CURSOR_INFO cursor_={1,0}; //以下两行是隐藏光标的设置
SetConsoleCursorInfo(GetStdHandle(STD_OUTPUT_HANDLE),&cursor_);
for(i=0;i<=W;i=i+2) //横坐标要为偶数,因为这个要打印的字符占2个位置
{Color(2); //设定打印颜色为绿色
gtxy(i,0); printf("■"); //打印上边框
gtxy(i,H); printf("■"); //打印下边框
}for(i=1;i { gtxy(0,i); printf("■"); //打印左边框 gtxy(W,i); printf("■"); //打印右边框 }while(1) { srand((unsigned)time(NULL)); //初始化随机数发生器srand( ) fod.x=rand()%(W-4)+2; //随机函数rand( )产生一个从0到比”(W-4)”小1的数再加2 fod.y=rand()%(H-2)+1; //随机函数rand( )产生一个从0到比”(H-2)”小1的数再加1 if (fod.x%2==0) break; //fod.x是食物的横坐标,要是2的倍数(为偶数) }Color(12); //设定打印颜色为淡红 gtxy(fod.x,fod.y); printf("●"); //到食物坐标处打印初试食物 snk.len=3; //蛇身长初值为3节 snk.speed=350; //刷新蛇的时间,即移动速度初值为350毫秒 snk.x[0]=W/2+1; //蛇头横坐标要为偶数(因为W/2=39) snk.y[0]=H/2; //蛇头纵坐标 Color(9); //设定打印颜色为淡蓝 gtxy(snk.x[0], snk.y[0]); printf("■"); //打印蛇头 for(i=1;i { snk.x[i]=snk.x[i-1]+2; snk.y[i]=snk.y[i-1]; gtxy(snk.x[i],snk.y[i]); printf("■"); //打印蛇身 }Color(7, 0); //恢复默认的白字黑底 return; }void keymove( ) //按键作移动蛇 { int key; if( kbhit( ) ) //如有按键输入才执行下面作 { key=getch( ); if (key==224) //值为224表示按下了方向键,下面要再次获取键值 { key=getch( ); if(key==72&&dir!=2)dir=1; //72表示按下了向上方向键 if(key==80&&dir!=1)dir=2; //80为向下 if(key==75&&dir!=4)dir=3; //75为向左 if(key==77&&dir!=3)dir=4; //77为向右 }if (key==32) { while(1) if((key=getch( ))==32) break; } //32为空格键,这儿用来暂停 }if (Flag==0) //如没吃食物,才执行下面作擦掉蛇尾 { gtxy(snk.x[snk.len-1],snk.y[snk.len-1]); printf(" "); } int i; for (i = snk.len - 1; i > 0; i--) //从蛇尾起每节存储前一节坐标值(蛇头除外) { snk.x[i]=snk.x[i-1]; snk.y[i]=snk.y[i-1]; } switch (dir) //判断蛇头该往哪个方向移动,并获取最新坐标值 { case 1: snk.y[0]--; break; //dir=1要向上移动 case 2: snk.y[0]++; break; //dir=2要向下移动 case 3: snk.x[0]-=2; break; //dir=3要向左移动 case 4: snk.x[0]+=2; break; //dir=4要向右移动 }Color(9); gtxy(snk.x[0], snk.y[0]); printf("■"); //打印蛇头 if (snk.x[0] == fod.x && snk.y[0] == fod.y) //如吃到食物则执行以下作 { printf("7"); snk.len++; score += 100; snk.speed -= 5; Flag = 1; } //7是响铃 else Flag = 0; //没吃到食物Flag的值为0 if(snk.speed<150) snk.speed= snk.speed+5; //码,不让速度无限加快 }void putFod( ) //投放食物 { if (Flag == 1) //如吃到食物才执行以下作,生成另一个食物 { while (1) { int i,n= 1; srand((unsigned)time(NULL)); //初始化随机数发生器srand( ) fod.x = rand( ) % (W - 4) + 2; //产生在游戏框范围内的一个x坐标值 fod.y = rand( ) % (H - 2) + 1; //产生在游戏框范围内的一个y坐标值 for (i = 0; i < snk.len; i++) //随机生成的食物不能在蛇的身体上 { if (fod.x == snk.x[i] &&fod.y == snk.y[i]) { n= 0; break;} } if (n && fod.x % 2 == 0) break; //n不为0且横坐标为偶数,则食物坐标取值成功 }Color(12); //设定字符为红色 gtxy(fod.x, fod.y); printf("●"); //光标到取得的坐标处打印食物 }return; }int Over( ) //判断游戏是否结束的函数 { int i; Color(7); gtxy(2,H+1); printf(“暂停键:space.”); //以下打印一些其它信息 gtxy(2,H+2); printf(“游戏得分:%d”,score); if (snk.x[0] == 0 || snk.x[0] == W) return 1; //蛇头触碰左右边界 if (snk.y[0] == 0 || snk.y[0] == H) return 1; //蛇头触碰上下边界 for (i = 1; i < snk.len; i++) { if (snk.x[0] == snk.x[i] && snk.y[0] == snk.y[i]) return 1; } //蛇头触碰自身 return 0; //没碰到边界及自身时就返回0 }void Color(int a) //设定颜色的函数 { SetConsoleTextAttribute(GetStdHandle( STD_OUTPUT_HANDLE ),a ); } 贪吃蛇的源代码 #include #include #include #include typedef struct snake {int a; int b; struct snake u; struct snake n; }snake,snake1; typedef struct food {int a; int b; }food; void main() {char c,c0 = 'd'; int i,j,k,n=1,t,at; snake p,q; snake dd,dd0,dd1,dd2; food f; srand(time(NULL)); p.u = NULL; p.n = &q; p.a = 5;p.b = 6;q.a = 5;q.b = 5; q.u = &p;q.n = NULL; dd=dd2= &q; f.a=(rand()%15+1); f.b=(rand()%15+1); while(1) {srand(time(NULL)); ("cls"); for(i = 0;i < 17;i ++) {for(j = 0; j < 17;j++) {if(i == 0 ) printf("▁"); else if(i == 16) printf("▔"); else if(j == 0) printf("▕"); else if(j == 16) printf("▏"); else if(i == p.a && j == p.b) printf("■"); else if(i == f.a && j == f.b) printf("★"); else {t = 0; dd = dd2; for(k = 0; k < n ;k++) {if(i == dd->a && j == dd->b) {printf("□"); t = 1; break; }dd = dd->u; }if(t == 0) printf(" "); }}printf("n"); }at = 0; dd =dd2; for(i=0;i {if(p.a == dd->a && p.b == dd->b) {printf(" over!!n"); exit(0); }dd = dd->u; }if(p.a == f.a && p.b == f.b) {dd = dd2; at =1; f.a = (rand()%15+1); f.b = (rand()%15+1); for(i=0;i {if(f.a == dd->a && f.b == dd->b) {f.a = dd2->a; f.b = dd2->b; break; }} n++; }if(kbhit()) {c = getch(); dd = dd2; if(c == 'w' && c0 != 's') {if(at == 1) {dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; }dd = dd2; for(i = 0; i {dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; }if(p.a == 1) p.a = 15; else p.a = (p.a-1)%15; }else if(c == 's' && c0 != 'w') {if(at == 1) {dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; }dd = dd2; for(i = 0; i {dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; }p.a = (p.a%15)+1; }else if(c == 'a' && c0 != 'd') {if(at == 1) {dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; }dd = dd2; for(i = 0; i {dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; }if(p.b == 1) p.b = 15; else p.b = (p.b-1)%15; }else if(c == 'd' && c0 != 'a') {if(at == 1) {dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; }dd = dd2; for(i = 0; i {dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; }p.b = (p.b%15)+1; }else {goto qq; }c0 = c; }else {qq: if(c0 == 'w') {if(at == 1) {dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; }dd = dd2; for(i = 0; i {dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; }if(p.a == 1) p.a = 15; else p.a=(p.a-1)%15; }else if(c0 == 's') {if(at == 1) {dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; }dd = dd2; for(i = 0; i {dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; }p.a=(p.a%15)+1; }else if(c0 == 'a') {if(at == 1) {dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; }dd = dd2; for(i = 0; i {dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; }if(p.b == 1) p.b = 15; else p.b=(p.b-1)%15; }else if(c0 == 'd') {if(at == 1) {dd0 =(snake1)malloc(sizeof(snake)); dd0->a = dd2->a;dd0->b = dd2->b; dd0->n = NULL;dd0->u = dd2; dd2=dd0; }dd = dd2; for(i = 0; i {dd1 = dd->u; dd->b = dd1->b; dd->a = dd1->a; dd = dd->u; }p.b=(p.b%15)+1; }} fflush(stdin); dd = &q; _sleep(0); }} 我是一个新手。 下面有一个游戏: “坑人的无限”(一) #include #include #include #include #include using namespace std; int a; class Screen {private: int n; public: Screen() {n=5; }void move1()//注意只是循环输出各个数字,不能对循环输出再进行循环(如果对循环输出0123456789再进行循环,则move1就变成一个无限循环的函数,则下面的screen循环就进行不下去了) {for(int i=0;i<10;++i) {cout< }} void move2() {char i; for(i='a';i<='z';++i) {cout< }} void screen() {int t; while(!kbhit()) {t=time(0)%(2n);//如果是放在循环外面的话,time(0)的值就一直不变,放在循环里面,一秒钟进行一次判断,一秒钟进行一次循环 if(t move1(); else move2(); }} }; int main(){ cout<<"欢迎来到“无限 ”游戏"< cout<<"下面会输出无限个笑脸"< cout<<"按'enter'取消"< Sleep(4000); Screen s; s.screen(); cout< cout<<"接下来会更让你丧心病狂的!"< cout<<"但是坚持过后必有彩蛋!!!!!!加油!!"; cout< Sleep(10000); for(int as=0;as<=50;as++){ for(int i=0;i<=100;i++){ for(int j=0;j<=10;j++){ cout< }cout< }for(int i=0;i<=100;i++){ for(int j=0;j<=10;j++){ cout< }cout< }} cout<<"你居然坚持下来了!"< for(int i=0;i<=10;i++){ cout<<"-----------------------------------------------"< }cout<<"敬请期待!等待无限游戏(二)!"; return 0; } //这是一个显示方格的小程序,小方格可一左右移动的,可以按A键、D键、方向键,按n //时则退出程序。这个程序整体很简单你看一会就能明白了,上下移动还没弄好。 #include void main(){ int i,keyCount=0; int n=196,e=179,wu=218,eu=1,wd=192,ed=217; //定义方格边框 char move=''; while(1){ move=getch(); if(move==0) move=getch(); if(move=='n') break; if((move=='a'||move=='A'||move==75)&&keyCount>0) keyCount--; if((move=='d'||move=='D'||move==77)&&keyCount<76) keyCount++; printf("--------------------------------------------n"); //线条打印 printf("Press 'a' the square move left ,n and press 'd' the square move right!nPress 'n' to exit!n"); //打印说明 printf("--------------------------------------------n"); for(i=1;i<=16;i++) printf("n"); for(i=1;i<=keyCount;i++) printf(" "); printf("%c%c%cn",wu,n,eu); //打印上边框 for(i=1;i<=keyCount;i++) printf(" "); printf("%c %cn",e,e) ; //打印中间边框 for(i=1;i<=keyCount;i++) printf(" "); printf("%c%c%cn",wd,n,ed); //打印底边框 }} 利用随机数猜大小,如下: 1、代码的行,是一个include语句。没有它我们的程序会编译不过。有了它就是告诉编译器在对代码进行编译之前,必须要包含程序需要的文件。这里的stdio.h就是我们需要的头文件。 2、代码第二行是一个main函数,这个main函数的返回值是一个int整型数据。刚开始学习编程的时候我们可以认为程序运行的时候是从main函数开始的。后续会专门给大家做一个介绍向大家说明在main函数之前还做了哪些事情。 3、每个函数都用一对“{}”进行包含,表示着函数体的开始和结束,当然后面说到控制语句的时候它还表示一段控制语句的开始和结束。 4、main函数中调用了一个printf函数。它是用来向控制台输出我们想要的内容。printf的函数定位格式为:int printf(constcharformat,...)。format中定义了输出内容和格式。 5、return函数执行完后。在退出函数体之前,会将函数进行返回。return后的内容根据函数返回值定义而定。在本段程序中返回的是整型数据0。 #include #include #include #include int main() {printf("版权所有,不得个人名义翻录,但是使用不要钱n"); printf("注意小心按键……nn"); srand(time(0)); int i,j,t,q,n,q1; int m,b,y,z1,z2,h,o,v; long k; char c; printf("ttt剪刀石头布n"); printf("你想让电脑出什么?1:剪刀 2:石子 3:布n"); scanf("%d",&j); printf("1:剪刀 2:石头 3:布n"); scanf("%ld",&k); t=0;q=0; b=y=z1=z2=h=o=n=0; m=0; while(1) {while(k!=0) {i=k%10; k=k/10; if(i>0&&i<4) {if(i==1) printf("你出的是剪刀! n"); if(i==2) printf("你出的是石头!n"); if(i==3) printf("你出的是布!n"); if(b!=0) {printf("电脑思考中!n"); ("pause"); j=i-1; if(j==0) j=3; if(j==1) printf("电脑出的是剪刀!n"); if(j==2) printf("电脑出的是石头!n"); if(j==3) printf("电脑出的是布!n"); t++;printf("你赢了!%d连胜!nn",t);q=0; b--; if(b==0){printf("百战百胜的时效到了!nn");n=0;} }else if(y!=0) {printf("电脑晕菜中!n"); t++;printf("你赢了!%d连胜!nn",t);q=0; y--; if(y==0) {j=rand()%3; if(j==1||j==2){printf("电脑醒了,但你踩了他一脚,他又晕了!n");y=5;}else{printf("电脑醒了!n");n=0;} }("pause"); }else if(z2!=0) {printf("电脑正在往回赶!n"); t++;printf("你赢了!%d连胜!nn",t);q=0; z2--; if(z2==0){printf("他终于回来了!n");n=0;} ("pause"); }else if(z1!=0) {printf("电脑正在天上飞!n"); t++;printf("你赢了!%d连胜!nn",t);q=0; z1--; if(z1==0){printf("电脑终于落地了!nn");z2=rand()%6+5;} ("pause"); }else {printf("电脑思考中!n"); ("pause"); if(j==1) printf("电脑出的是剪刀 n"); if(j==2) printf("电脑出的是石头!n"); if(j==3) printf("电脑出的是布!n"); o=rand()%4; if(o<3&&h!=0){printf("电脑突然病发,晕过去了!");t++;printf("你赢了!%d连胜!加%d元钱!nn",t,t);q=0;m+=t;h--;if(h==0){printf("电脑的病好了!nn");n=0;}}else if(i==j)printf("平局不算!nn");else if(j-i==1){q++;printf("电脑赢了!电脑%d连胜!nn",q);t=0;}else if(j==1&&i==3){q++;printf("电脑赢了!电脑%d连胜!nn",q);t=0;}else {t++;printf("你赢了!%d连胜!加%d元钱!nn",t,t);m+=t;q=0;} }if(t==30){printf("强人!连胜三十回合!游戏结束!n"); ("pause");return 0;} if(q==10){printf("电脑十连胜,你不要活了……n");("pause");return 0;} }else{printf("你个疯子!!!n");("pause");return 0;} }if(m>=10&&n==0){printf("你有%d元钱,是否购买百战百胜?10元 1:要 0:不要",m);scanf("%d",&v);if(v==1){printf("已购买!nn");m-=10;b=5;n=1;}} if(m>=15&&n==0){printf("你有%d元钱,是否购买飞飞?15元 1:要 0:不要",m);scanf("%d",&v);if(v==1){printf("你把电脑绑在上,碰!!!nn");m-=15;z1=3;n=1;}} if(m>=20&&n==0){printf("你有%d元钱,是否购买晕眩?20元 1:要 0:不要",m);scanf("%d",&v);if(v==1){printf("电脑中了晕眩!nn");m-=20;y=5;n=1;}} if(m>=25&&n==0){printf("你有%d元钱,是否购买灰鸽子+熊猫烧香+蠕虫王?1:要 0:不要",m);scanf("%d",&v);if(v==1){printf("电脑中了!nn");m-=25;h=20;n=1;}} printf("1:剪刀 2:石头 3:布n"); scanf("%ld",&k); q1=-1; }printf("你个疯子!!!n"); ("pause"); } #include #include #include #include int main() {printf("版权所有,不得个人名义翻录,但是使用不要钱n"); printf("注意小心按键……nn"); srand(time(0)); int i,j,t,q,n,q1; int m,b,y,z1,z2,h,o,v; long k; char c; printf("ttt剪刀石头布n"); printf("你想让电脑出什么?1:剪刀 2:石子 3:布n"); scanf("%d",&j); printf("1:剪刀 2:石头 3:布n"); scanf("%ld",&k); t=0;q=0; b=y=z1=z2=h=o=n=0; m=0; while(1) {while(k!=0) {i=k%10; k=k/10; if(i>0&&i<4) {if(i==1) printf("你出的是剪刀! n"); if(i==2) printf("你出的是石头!n"); if(i==3) printf("你出的是布!n"); if(b!=0) {printf("电脑思考中!n"); ("pause"); j=i-1; if(j==0) j=3; if(j==1) printf("电脑出的是剪刀!n"); if(j==2) printf("电脑出的是石头!n"); if(j==3) printf("电脑出的是布!n"); t++;printf("你赢了!%d连胜!nn",t);q=0; b--; if(b==0){printf("百战百胜的时效到了!nn");n=0;} }else if(y!=0) {printf("电脑晕菜中!n"); t++;printf("你赢了!%d连胜!nn",t);q=0; y--; if(y==0) {j=rand()%3; if(j==1||j==2){printf("电脑醒了,但你踩了他一脚,他又晕了!n");y=5;}else{printf("电脑醒了!n");n=0;} }("pause"); }else if(z2!=0) {printf("电脑正在往回赶!n"); t++;printf("你赢了!%d连胜!nn",t);q=0; z2--; if(z2==0){printf("他终于回来了!n");n=0;} ("pause"); }else if(z1!=0) {printf("电脑正在天上飞!n"); t++;printf("你赢了!%d连胜!nn",t);q=0; z1--; if(z1==0){printf("电脑终于落地了!nn");z2=rand()%6+5;} ("pause"); }else {printf("电脑思考中!n"); ("pause"); if(j==1) printf("电脑出的是剪刀 n"); if(j==2) printf("电脑出的是石头!n"); if(j==3) printf("电脑出的是布!n"); o=rand()%4; if(o<3&&h!=0){printf("电脑突然病发,晕过去了!");t++;printf("你赢了!%d连胜!加%d元钱!nn",t,t);q=0;m+=t;h--;if(h==0){printf("电脑的病好了!nn");n=0;}}else if(i==j)printf("平局不算!nn");else if(j-i==1){q++;printf("电脑赢了!电脑%d连胜!nn",q);t=0;}else if(j==1&&i==3){q++;printf("电脑赢了!电脑%d连胜!nn",q);t=0;}else {t++;printf("你赢了!%d连胜!加%d元钱!nn",t,t);m+=t;q=0;} }if(t==30){printf("强人!连胜三十回合!游戏结束!n"); ("pause");return 0;} if(q==10){printf("电脑十连胜,你不要活了……n");("pause");return 0;} }else{printf("你个疯子!!!n");("pause");return 0;} }if(m>=10&&n==0){printf("你有%d元钱,是否购买百战百胜?10元 1:要 0:不要",m);scanf("%d",&v);if(v==1){printf("已购买!nn");m-=10;b=5;n=1;}} if(m>=15&&n==0){printf("你有%d元钱,是否购买飞飞?15元 1:要 0:不要",m);scanf("%d",&v);if(v==1){printf("你把电脑绑在上,碰!!!nn");m-=15;z1=3;n=1;}} if(m>=20&&n==0){printf("你有%d元钱,是否购买晕眩?20元 1:要 0:不要",m);scanf("%d",&v);if(v==1){printf("电脑中了晕眩!nn");m-=20;y=5;n=1;}} if(m>=25&&n==0){printf("你有%d元钱,是否购买灰鸽子+熊猫烧香+蠕虫王?1:要 0:不要",m);scanf("%d",&v);if(v==1){printf("电脑中了!nn");m-=25;h=20;n=1;}} printf("1:剪刀 2:石头 3:布n"); scanf("%ld",&k); q1=-1; }printf("你个疯子!!!n"); ("pause"); } #include #include #include #include int main() {printf("版权所有,不得个人名义翻录,但是使用不要钱n"); printf("注意小心按键……nn"); srand(time(0)); int i,j,t,q,n,q1; int m,b,y,z1,z2,h,o,v; long k; char c; printf("ttt剪刀石头布n"); printf("你想让电脑出什么?1:剪刀 2:石子 3:布n"); scanf("%d",&j); printf("1:剪刀 2:石头 3:布n"); scanf("%ld",&k); t=0;q=0; b=y=z1=z2=h=o=n=0; m=0; while(1) {while(k!=0) {i=k%10; k=k/10; if(i>0&&i<4) {if(i==1) printf("你出的是剪刀! n"); if(i==2) printf("你出的是石头!n"); if(i==3) printf("你出的是布!n"); if(b!=0) {printf("电脑思考中!n"); ("pause"); j=i-1; if(j==0) j=3; if(j==1) printf("电脑出的是剪刀!n"); if(j==2) printf("电脑出的是石头!n"); if(j==3) printf("电脑出的是布!n"); t++;printf("你赢了!%d连胜!nn",t);q=0; b--; if(b==0){printf("百战百胜的时效到了!nn");n=0;} }else if(y!=0) {printf("电脑晕菜中!n"); t++;printf("你赢了!%d连胜!nn",t);q=0; y--; if(y==0) {j=rand()%3; if(j==1||j==2){printf("电脑醒了,但你踩了他一脚,他又晕了!n");y=5;}else{printf("电脑醒了!n");n=0;} }("pause"); }else if(z2!=0) {printf("电脑正在往回赶!n"); t++;printf("你赢了!%d连胜!nn",t);q=0; z2--; if(z2==0){printf("他终于回来了!n");n=0;} ("pause"); }else if(z1!=0) {printf("电脑正在天上飞!n"); t++;printf("你赢了!%d连胜!nn",t);q=0; z1--; if(z1==0){printf("电脑终于落地了!nn");z2=rand()%6+5;} ("pause"); }else {printf("电脑思考中!n"); ("pause"); if(j==1) printf("电脑出的是剪刀 n"); if(j==2) printf("电脑出的是石头!n"); if(j==3) printf("电脑出的是布!n"); o=rand()%4; if(o<3&&h!=0){printf("电脑突然病发,晕过去了!");t++;printf("你赢了!%d连胜!加%d元钱!nn",t,t);q=0;m+=t;h--;if(h==0){printf("电脑的病好了!nn");n=0;}}else if(i==j)printf("平局不算!nn");else if(j-i==1){q++;printf("电脑赢了!电脑%d连胜!nn",q);t=0;}else if(j==1&&i==3){q++;printf("电脑赢了!电脑%d连胜!nn",q);t=0;}else {t++;printf("你赢了!%d连胜!加%d元钱!nn",t,t);m+=t;q=0;} }if(t==30){printf("强人!连胜三十回合!游戏结束!n"); ("pause");return 0;} if(q==10){printf("电脑十连胜,你不要活了……n");("pause");return 0;} }else{printf("你个疯子!!!n");("pause");return 0;} }if(m>=10&&n==0){printf("你有%d元钱,是否购买百战百胜?10元 1:要 0:不要",m);scanf("%d",&v);if(v==1){printf("已购买!nn");m-=10;b=5;n=1;}} if(m>=15&&n==0){printf("你有%d元钱,是否购买飞飞?15元 1:要 0:不要",m);scanf("%d",&v);if(v==1){printf("你把电脑绑在上,碰!!!nn");m-=15;z1=3;n=1;}} if(m>=20&&n==0){printf("你有%d元钱,是否购买晕眩?20元 1:要 0:不要",m);scanf("%d",&v);if(v==1){printf("电脑中了晕眩!nn");m-=20;y=5;n=1;}} if(m>=25&&n==0){printf("你有%d元钱,是否购买灰鸽子+熊猫烧香+蠕虫王?1:要 0:不要",m);scanf("%d",&v);if(v==1){printf("电脑中了!nn");m-=25;h=20;n=1;}} printf("1:剪刀 2:石头 3:布n"); scanf("%ld",&k); q1=-1; }printf("你个疯子!!!n"); ("pause"); } 那你就自己做个猜数字好了 import ja.util.; import ja.io.; public class CaiShu{ public static void main(String[] args) throws IOException{ Random a=new Random(); int num=a.nextInt(100); System.out.println("请输入一个100以内的整数:"); for (int i=0;i<=9;i++){ BufferedReader bf=new BufferedReader(new InputStreamReader(System.in)); String str=bf.readLine(); int shu=Integer.parseInt(str); if (shu>num) System.out.println("输入的数大了,输小点的!"); else if (shu System.out.println("输入的数小了,输大点的!"); else { System.out.println("恭喜你,猜对了!"); if (i<=2) System.out.println("你真是个天才!"); else if (i<=6) System.out.println("还将就,你过关了!"); else if (i<=8) System.out.println("但是你还……真笨!"); else System.out.println("你和猪没有两样了!"); break;} }} } import ja.util.Scanner; import ja.util.Random; public class Fangfa{ static int sum,sum1=0; public static void main(String [] args){ int a=1,b=1,c=1; int k=0,m=1; int money =5000; int zhu =0; boolean flag = true; Random rand = new Random(); Scanner input = new Scanner(System.in); while(m==1){ while(flag){ System.out.println("掷色子开始!"); System.out.println("请 注:金额只能是50的倍数且不能超过1000"); zhu=input.nextInt(); if(zhu%50==0&&zhu<=1000&&zhu<=money){ System.out.println("成功"); System.out.println("买大请输入数字1,买小输入数字2"); k=input.nextInt(); a= rand.nextInt(6)+1; b= rand.nextInt(6)+1; c= rand.nextInt(6)+1; sum=a+b+c; if(k==1){ if(sum>9){ money+=zhu; System.out.println("恭喜您猜对了,点数为"+sum+"结果是大"+"余额为"+money); }else{ money-=zhu; System.out.println("很遗憾,点数为"+sum+"结果是小"+"余额为"+money); }} if(k==2){ if(sum<=9){ money+=zhu; System.out.println("恭喜您猜对了,点数为"+sum+"结果是小"+"余额为"+money); }else{ money-=zhu; System.out.println("很遗憾,点数为"+sum+"结果是大"+"余额为"+money); }} flag= false; System.out.println("继续请按1,退出请按任意键"); m=input.nextInt(); if(m==1){ flag=true; System.out.println("您选择的是继续"); }else{ flag=false; System.out.println("欢迎您下次再来玩"); }}else{ System.out.println("失败"+"余额为"+money); }} }} } 连连看的小源码 package Lianliankan; import jax.swing.; import ja.awt.; import ja.awt.nt.; public class lianliankan implements ActionListener {JFrame mainFrame; //主面板 Container thisContainer; JPanel centerPanel,southPanel,northPanel; //子面板 JButton diamondsButton[][] = new JButton[6][5];//游戏按钮数组 JButton exitButton,resetButton,newlyButton; //退出,重列,重新开始按钮 JLabel fractionLable=new JLabel("0"); //分数标签 JButton firstButton,secondButton; //分别记录两次被选中的按钮 int grid[][] = new int[8][7];//储存游戏按钮位置 static boolean pressInformation=false; //判断是否有按钮被选中 int x0=0,y0=0,x=0,y=0,fristMsg=0,secondMsg=0,validateLV; //游戏按钮的位置坐标 int i,j,k,n;//消除方法控制 public void init(){ mainFrame=new JFrame("JKJ连连看"); thisContainer = mainFrame.getContentPane(); thisContainer.setLayout(new BorderLayout()); centerPanel=new JPanel(); southPanel=new JPanel(); northPanel=new JPanel(); thisContainer.add(centerPanel,"Center"); thisContainer.add(southPanel,"South"); thisContainer.add(northPanel,"North"); centerPanel.setLayout(new GridLayout(6,5)); for(int cols = 0;cols < 6;cols++){ for(int rows = 0;rows < 5;rows++ ){ diamondsButton[cols][rows]=new JButton(String.valueOf(grid[cols+1][rows+1])); diamondsButton[cols][rows].addActionListener(this); centerPanel.add(diamondsButton[cols][rows]); }} exitButton=new JButton("退出"); exitButton.addActionListener(this); resetButton=new JButton("重列"); resetButton.addActionListener(this); newlyButton=new JButton("再来一局"); newlyButton.addActionListener(this); southPanel.add(exitButton); southPanel.add(resetButton); southPanel.add(newlyButton); fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText()))); northPanel.add(fractionLable); mainFrame.setBounds(280,100,500,450); mainFrame.setVisible(true); }public void randomBuild() { int randoms,cols,rows; for(int twins=1;twins<=15;twins++) { randoms=(int)(Math.random()25+1); for(int alike=1;alike<=2;alike++) { cols=(int)(Math.random()6+1); rows=(int)(Math.random()5+1); while(grid[cols][rows]!=0) { cols=(int)(Math.random()6+1); rows=(int)(Math.random()5+1); }this.grid[cols][rows]=randoms; }} }public void fraction(){ fractionLable.setText(String.valueOf(Integer.parseInt(fractionLable.getText())+100)); }public void reload() { int se[] = new int[30]; int n=0,cols,rows; int grid[][]= new int[8][7]; for(int i=0;i<=6;i++) { for(int j=0;j<=5;j++) { if(this.grid[i][j]!=0) { se[n]=this.grid[i][j]; n++; }} }n=n-1; this.grid=grid; while(n>=0) { cols=(int)(Math.random()6+1); rows=(int)(Math.random()5+1); while(grid[cols][rows]!=0) { cols=(int)(Math.random()6+1); rows=(int)(Math.random()5+1); }this.grid[cols][rows]=se[n]; n--; }mainFrame.setVisible(false); pressInformation=false; //这里一定要将按钮点击信息归为初始 init(); for(int i = 0;i < 6;i++){ for(int j = 0;j < 5;j++ ){ if(grid[i+1][j+1]==0) diamondsButton[i][j].setVisible(false); }} }public void estimateEven(int placeX,int placeY,JButton bz) { if(pressInformation==false) { x=placeX; y=placeY; secondMsg=grid[x][y]; secondButton=bz; pressInformation=true; }else { x0=x; y0=y; fristMsg=secondMsg; firstButton=secondButton; x=placeX; y=placeY; secondMsg=grid[x][y]; secondButton=bz; if(fristMsg==secondMsg && secondButton!=firstButton){ xiao(); }} }public void xiao() { //相同的情况下能不能消去。仔细分析,不一条条注释 if((x0==x &&(y0==y+1||y0==y-1)) || ((x0==x+1||x0==x-1)&&(y0==y))){ //判断是否相邻 remove(); }else{ for (j=0;j<7;j++ ) { if (grid[x0][j]==0){ //判断个按钮同行哪个按钮为空 if (y>j) { //如果第二个按钮的Y坐标大于空按钮的Y坐标说明按钮在第二按钮左边 for (i=y-1;i>=j;i-- ){ //判断第二按钮左侧直到按钮中间有没有按钮 if (grid[x][i]!=0) { k=0; break; }else{ k=1; } //K=1说明通过了次验证 }if (k==1) { linePassOne(); }} if (y for (i=y+1;i<=j ;i++ ){ //判断第二按钮左侧直到按钮中间有没有按钮 if (grid[x][i]!=0){ k=0; break; }else { k=1; } }if (k==1){ linePassOne(); }} if (y==j ) { linePassOne(); }} if (k==2) { if (x0==x) { remove(); }if (x0 for (n=x0;n<=x-1;n++ ) { if (grid[n][j]!=0) { k=0; break; }if(grid[n][j]==0 && n==x-1) { remove(); }} }if (x0>x) { for (n=x0;n>=x+1 ;n-- ) { if (grid[n][j]!=0) { k=0; break; }if(grid[n][j]==0 && n==x+1) { remove(); }} }} }for (i=0;i<8;i++ ) { //列 if (grid[i][y0]==0) { if (x>i) { for (j=x-1;j>=i ;j-- ) { if (grid[j][y]!=0) { k=0; break; }else { k=1; } }if (k==1) { rowPassOne(); }} if (x for (j=x+1;j<=i;j++ ) { if (grid[j][y]!=0) { k=0; break; }else { k=1; } }if (k==1) { rowPassOne(); }} if (x==i) { rowPassOne(); }} if (k==2){ if (y0==y) { remove(); }if (y0 for (n=y0;n<=y-1 ;n++ ) { if (grid[i][n]!=0) { k=0; break; }if(grid[i][n]==0 && n==y-1) { remove(); }} }if (y0>y) { for (n=y0;n>=y+1 ;n--) { if (grid[i][n]!=0) { k=0; break; }if(grid[i][n]==0 && n==y+1) { remove(); }} }} }} }public void linePassOne(){ if (y0>j){ //按钮同行空按钮在左边 for (i=y0-1;i>=j ;i-- ){ //判断按钮同左侧空按钮之间有没按钮 if (grid[x0][i]!=0) { k=0; break; }else { k=2; } //K=2说明通过了第二次验证 }} if (y0 for (i=y0+1;i<=j ;i++){ if (grid[x0][i]!=0) { k=0; break; }else{ k=2; } }} }public void rowPassOne(){ if (x0>i) { for (j=x0-1;j>=i ;j-- ) { if (grid[j][y0]!=0) { k=0; break; }else { k=2; } }} if (x0 for (j=x0+1;j<=i ;j++ ) { if (grid[j][y0]!=0) { k=0; break; }else { k=2; } }} }public void remove(){ firstButton.setVisible(false); secondButton.setVisible(false); fraction(); pressInformation=false; k=0; grid[x0][y0]=0; grid[x][y]=0; }public void actionPerformed(ActionEvent e) { if(e.getSource()==newlyButton){ int grid[][] = new int[8][7]; this.grid = grid; randomBuild(); mainFrame.setVisible(false); pressInformation=false; init(); }if(e.getSource()==exitButton) System.exit(0); if(e.getSource()==resetButton) reload(); for(int cols = 0;cols < 6;cols++){ for(int rows = 0;rows < 5;rows++ ){ if(e.getSource()==diamondsButton[cols][rows]) estimateEven(cols+1,rows+1,diamondsButton[cols][rows]); }} }public static void main(String[] args) { lianliankan llk = new lianliankan(); llk.randomBuild(); llk.init(); }} //old 998 lines //new 318 lines 停留在HelloWorld的水平 这个就比较难了 你还是你弄弄数组或者list各种排序问题,比较一下效率(可以数据量大点)或者比如 输入两数字 比较大小 然后计算两数字之间的偶数和之类的吧求几C语言个小游戏代码,简单的,要注释、、谢谢了、
怎么编程一个最简单游戏代码?
谁有一些简单小游戏的C语言程序?
求一个简单又有趣的JAVA小游戏代码
版权声明:本文内容由互联。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发 836084111@qq.com 邮箱删除。