马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
本帖最后由 kklloo 于 2015-1-6 16:39 编辑
这个是小组里一个学弟写的2048
相信大家都玩过2048八 快来玩玩八
温馨提示:用数字来代替上下左右键 5213分别代表上下左右#include<stdio.h>
#include<stdlib.h>
#include<time.h>
int num[5][5]; //定义函数和变量
int score;
void gett(int k);
void up();
void down();
void left();
void right();
void outt();
void nextt();
void endd();
int main(){ //赋初值
num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0;
num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0;
num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0;
num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0;
int i,j;
i=1+(int)(4.0*rand()/(RAND_MAX+1.0));
j=1+(int)(4.0*rand()/(RAND_MAX+1.0));
while (num[i][j]!=0){
i=1+(int)(4.0*rand()/(RAND_MAX+1.0));
j=1+(int)(4.0*rand()/(RAND_MAX+1.0));
}
num[i][j]=2;
i=1+(int)(4.0*rand()/(RAND_MAX+1.0));
j=1+(int)(4.0*rand()/(RAND_MAX+1.0));
while (num[i][j]!=0){
i=1+(int)(4.0*rand()/(RAND_MAX+1.0));
j=1+(int)(4.0*rand()/(RAND_MAX+1.0));
}
num[i][j]=2;
score=0;
outt();
endd();
return 0;
}
void endd(){
printf(" 2048 mini game \n");
printf(" \n");
printf(" GAME \n");
printf(" \n");
printf(" OVER \n");
printf(" \n");
printf(" YOUR FINAL \n");
printf(" \n");
printf(" SCORE=%d \n",score);
printf(" \n");
printf(" \n");
printf(" 2048 mini game \n");
}
void outt(){ //输出部分
printf(" 2048 mini game \n");
printf(" score=%d \n",score);
printf("┌-—┬-—┬-—┬—-┐\n");
printf("│%3d│%3d│%3d│%3d│\n",num[1][1],num[1][2],num[1][3],num[1][4]);
printf("├-—┼-—┼—-┼—-┤\n");
printf("│%3d│%3d│%3d│%3d│\n",num[2][1],num[2][2],num[2][3],num[2][4]);
printf("├-—┼—-┼—-┼—-┤\n");
printf("│%3d│%3d│%3d│%3d│\n",num[3][1],num[3][2],num[3][3],num[3][4]);
printf("├-—┼-—┼-—┼—-┤\n");
printf("│%3d│%3d│%3d│%3d│\n",num[4][1],num[4][2],num[4][3],num[4][4]);
printf("└-—┴-—┴—-┴—-┘\n");
printf(" By SHIRO-marisa\n");
int init;
scanf("%d",&init);
gett(init);
}
void gett(int k){ //跳转操作
if (k==5){up();}
if (k==2){down();}
if (k==1){left();}
if (k==3){right();}
}
void up(){ //上
int i,j,k;
int zz[5][5];
zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0;
zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0;
zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0;
zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0;
zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4];
zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4];
zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4];
zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4];
num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0;
num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0;
num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0;
num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0;
for (i=1;i<=4;i++){
k=1;
j=1;
while (j<5){
if (zz[j][i]!=0){
if (j==4) {num[k][i]=zz[j][i];j++; }
else {
if (zz[j][i]==zz[j+1][i]){
num[k][i]=zz[j][i]*2;
score=zz[j][i]*2+score;
k++;
j=j+2;
}
else {
num[k][i]=zz[j][i];
j=j+1;
k++;
}
}
}
else j++;
}
}
zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0;
zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0;
zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0;
zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0;
zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4];
zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4];
zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4];
zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4];
num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0;
num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0;
num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0;
num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0;
for (i=1;i<=4;i++){
k=1;
j=1;
while (j<5){
if (zz[j][i]!=0){
if (j==4) {num[k][i]=zz[j][i];j++; }
else {
if (zz[j][i]==zz[j+1][i]){
num[k][i]=zz[j][i]*2;
score=zz[j][i]*2+score;
k++;
j=j+2;
}
else {
num[k][i]=zz[j][i];
j=j+1;
k++;
}
}
}
else j++;
}
}
system("CLS");
nextt();
}
void down(){ //下
int i,j,k;
int zz[5][5];
zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0;
zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0;
zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0;
zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0;
zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4];
zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4];
zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4];
zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4];
num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0;
num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0;
num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0;
num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0;
for (i=1;i<=4;i++){
k=4;
j=4;
while (j>0){
if (zz[j][i]!=0){if (j==1) {num[k][i]=zz[j][i];j--; }
else {
if (zz[j][i]==zz[j-1][i]){
num[k][i]=zz[j][i]*2;
score=zz[j][i]*2+score;
k--;
j=j-2;
}
else {
num[k][i]=zz[j][i];
j=j-1;
k--;
}
}
}
else j--;
}
}
zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0;
zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0;
zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0;
zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0;
zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4];
zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4];
zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4];
zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4];
num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0;
num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0;
num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0;
num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0;
for (i=1;i<=4;i++){
k=4;
j=4;
while (j>0){
if (zz[j][i]!=0){if (j==1) {num[k][i]=zz[j][i];j--; }
else {
if (zz[j][i]==zz[j-1][i]){
num[k][i]=zz[j][i]*2;
score=zz[j][i]*2+score;
k--;
j=j-2;
}
else {
num[k][i]=zz[j][i];
j=j-1;
k--;
}
}
}
else j--;
}
}
system("CLS");
nextt();
}
void left(){ //左
int i,j,k;
int zz[5][5];
zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0;
zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0;
zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0;
zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0;
zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4];
zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4];
zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4];
zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4];
num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0;
num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0;
num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0;
num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0;
for (i=1;i<=4;i++){
k=1;
j=1;
while (j<5){
if (zz[i][j]!=0){if (j==4) {num[i][k]=zz[i][j];j++;
}
else {
if (zz[i][j]==zz[i][j+1]){
num[i][k]=zz[i][j]*2;
score=zz[i][j]*2+score;
k++;
j=j+2;
}
else {
num[i][k]=zz[i][j];
j=j+1;
k++;
}
}
}
else j++;
}
}
zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0;
zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0;
zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0;
zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0;
zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4];
zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4];
zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4];
zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4];
num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0;
num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0;
num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0;
num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0;
for (i=1;i<=4;i++){
k=1;
j=1;
while (j<5){
if (zz[i][j]!=0){if (j==4) {num[i][k]=zz[i][j];j++;
}
else {
if (zz[i][j]==zz[i][j+1]){
num[i][k]=zz[i][j]*2;
score=zz[i][j]*2+score;
k++;
j=j+2;
}
else {
num[i][k]=zz[i][j];
j=j+1;
k++;
}
}
}
else j++;
}
}
system("CLS");
nextt();
}
void right(){ //右
int i,j,k;
int zz[5][5];
zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0;
zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0;
zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0;
zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0;
zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4];
zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4];
zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4];
zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4];
num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0;
num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0;
num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0;
num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0;
for (i=1;i<=4;i++){
k=4;
j=4;
while (j>0){
if (zz[i][j]!=0){if (j==1) {num[i][k]=zz[i][j];j--; }
else {
if (zz[i][j]==zz[i][j-1]){
num[i][k]=zz[i][j]*2;
score=zz[i][j]*2+score;
k--;
j=j-2;
}
else {
num[i][k]=zz[i][j];
j=j-1;
k--;
}
}
}
else j--;
}
}
zz[1][1]=0;zz[1][2]=0;zz[1][3]=0;zz[1][4]=0;
zz[2][1]=0;zz[2][2]=0;zz[2][3]=0;zz[2][4]=0;
zz[3][1]=0;zz[3][2]=0;zz[3][3]=0;zz[3][4]=0;
zz[4][1]=0;zz[4][2]=0;zz[4][3]=0;zz[4][4]=0;
zz[1][1]=num[1][1];zz[1][2]=num[1][2];zz[1][3]=num[1][3];zz[1][4]=num[1][4];
zz[2][1]=num[2][1];zz[2][2]=num[2][2];zz[2][3]=num[2][3];zz[2][4]=num[2][4];
zz[3][1]=num[3][1];zz[3][2]=num[3][2];zz[3][3]=num[3][3];zz[3][4]=num[3][4];
zz[4][1]=num[4][1];zz[4][2]=num[4][2];zz[4][3]=num[4][3];zz[4][4]=num[4][4];
num[1][1]=0;num[1][2]=0;num[1][3]=0;num[1][4]=0;
num[2][1]=0;num[2][2]=0;num[2][3]=0;num[2][4]=0;
num[3][1]=0;num[3][2]=0;num[3][3]=0;num[3][4]=0;
num[4][1]=0;num[4][2]=0;num[4][3]=0;num[4][4]=0;
for (i=1;i<=4;i++){
k=4;
j=4;
while (j>0){
if (zz[i][j]!=0){if (j==1) {num[i][k]=zz[i][j];j--; }
else {
if (zz[i][j]==zz[i][j-1]){
num[i][k]=zz[i][j]*2;
score=zz[i][j]*2+score;
k--;
j=j-2;
}
else {
num[i][k]=zz[i][j];
j=j-1;
k--;
}
}
}
else j--;
}
}
system("CLS");
nextt();
}
void nextt(){ //随机生成新方块 开始下一次
srand((int)time(0));
int i,j,k;
k=0;
for (i=1;i<5;i++)
for (j=1;j<5;j++)
if (num[i][j]!=0) k++;
if (k==16) {return;}
i=1+(int)(4.0*rand()/(RAND_MAX+1.0));
j=1+(int)(4.0*rand()/(RAND_MAX+1.0));
while (num[i][j]!=0){
i=1+(int)(4.0*rand()/(RAND_MAX+1.0));
j=1+(int)(4.0*rand()/(RAND_MAX+1.0));
}
num[i][j]=2;
outt();
}
|