大家一起做游戏 c语言,c语言大家一起做游戏

自己写的,和答案不同但是不保证是高效程序。请勿抄袭。(妹的这个绝对和答案不同!答案用了一个什么什么函数还是公式,直接套公式做了(事后看了那个公式表示不太懂),我TM直接自己弄了个超复杂方法出来。编的时候因为太复杂修改了n次差点吐血!!!!!)

C语言大家一起做游戏

Cxy,Bit.

自己写的,和答案不同但是不保证是高效程序。请勿抄袭。(妹的这个绝对和答案不同!答案用了一个什么什么函数还是公式,直接套公式做了(事后看了那个公式表示不太懂),我TM直接自己弄了个超复杂方法出来。编的时候因为太复杂修改了n次差点吐血!!!!!)

题目:大家一起做游戏

幼儿园的小朋友们刚学习了如何数数,阿姨在下课时组织大家一起玩游戏。规则如下:所有的小朋友绕成一圈,顺序排号,从第一个小朋友开始报数,凡是报到固定数字(例如5)的,都退出该游戏,直到只剩下一位小朋友游戏才中止。

每个小朋友都希望自己能有更多的练习数数的机会,所以都希望成为最终被留下的那位。 现在,请大家帮小朋友们计算一下,在第一次排号的时候排到第几位才能成为最终被留下的小朋友。

输入:小朋友的个数(<=50) 要被练习的数字

输出:最终被留下的小朋友的序号

说明:如“要被练习的数字”是5,则每次数到5的同学要退出该游戏

代码:

#include

int main()

{int i,k=0,j,e,s,z=0,p,d,l=0,m=0,q;

static int a[52]={0},b[52]={0};

scanf("%d %d",&e,&s);

q=s;

for(i=1;i<=e;i++)

a[i]=i;

for(k=0;k<=52;k++)

{if(z!=0) {d=z;p=0;m=0;

for(j=1;j<=e;j++)

b[j]=0;

for(;z<=e;z++)

{ if(a[z]!=0) {p+=1;b[p]=a[z];}}

for(j=1;j<=e;j++)

{ if(p==0&&a[j]!=0) {b[1]=a[j];p+=1;}

else if(p!=0&&a[j]!=0) {if (p!=1&&a[j]==b[1]) break;

else {p+=1;b[p]=a[j];}}} for(j=1;j<=e;j++)

a[j]=0;

for(j=1;j<=e;j++)

{a[j]=b[j];}

k=0;z=0;}

for(i=1;i<=e;i++)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
以下是2048小游戏C语言完整版代码: ```c #include <stdio.h> #include <stdlib.h> #include <time.h> #include <conio.h> #define ROW 4 #define COL 4 int board[ROW][COL] = {0}; int score = 0; void init_board() { int i, j; for (i = 0; i < ROW; i++) { for (j = 0; j < COL; j++) { board[i][j] = 0; } } srand(time(NULL)); int r1 = rand() % ROW; int c1 = rand() % COL; board[r1][c1] = 2; int r2 = rand() % ROW; int c2 = rand() % COL; while (r2 == r1 && c2 == c1) { r2 = rand() % ROW; c2 = rand() % COL; } board[r2][c2] = 2; score = 0; } void draw_board() { system("cls"); printf("-----------------------------\n"); printf("| 2048 Game |\n"); printf("-----------------------------\n"); printf("Score: %d\n", score); int i, j; for (i = 0; i < ROW; i++) { printf("|"); for (j = 0; j < COL; j++) { if (board[i][j] == 0) { printf(" |"); } else { printf("%-6d|", board[i][j]); } } printf("\n"); printf("-----------------------------\n"); } } void merge(int arr[]) { int i, j; for (i = 0; i < COL - 1; i++) { if (arr[i] == 0) { continue; } for (j = i + 1; j < COL; j++) { if (arr[j] == 0) { continue; } if (arr[i] == arr[j]) { arr[i] += arr[j]; arr[j] = 0; score += arr[i]; break; } else { break; } } } } void shift_left() { int i, j; for (i = 0; i < ROW; i++) { merge(board[i]); for (j = 0; j < COL - 1; j++) { if (board[i][j] == 0) { int k; for (k = j + 1; k < COL; k++) { if (board[i][k] != 0) { board[i][j] = board[i][k]; board[i][k] = 0; break; } } } } } } void shift_right() { int i, j; for (i = 0; i < ROW; i++) { merge(board[i]); for (j = COL - 1; j > 0; j--) { if (board[i][j] == 0) { int k; for (k = j - 1; k >= 0; k--) { if (board[i][k] != 0) { board[i][j] = board[i][k]; board[i][k] = 0; break; } } } } } } void shift_up() { int i, j, k; for (j = 0; j < COL; j++) { int arr[ROW] = {0}; for (i = 0, k = 0; i < ROW; i++) { arr[k++] = board[i][j]; } merge(arr); for (i = 0, k = 0; i < ROW; i++) { board[i][j] = arr[k++]; } } } void shift_down() { int i, j, k; for (j = 0; j < COL; j++) { int arr[ROW] = {0}; for (i = ROW - 1, k = 0; i >= 0; i--) { arr[k++] = board[i][j]; } merge(arr); for (i = ROW - 1, k = 0; i >= 0; i--) { board[i][j] = arr[k++]; } } } int game_over() { int i, j; for (i = 0; i < ROW; i++) { for (j = 0; j < COL; j++) { if (board[i][j] == 0) { return 0; } if (i < ROW - 1 && board[i][j] == board[i + 1][j]) { return 0; } if (j < COL - 1 && board[i][j] == board[i][j + 1]) { return 0; } } } return 1; } int get_key() { int ch = getch(); if (ch == 0xE0 || ch == 0) { ch = getch(); switch (ch) { case 72: return 'w'; case 80: return 's'; case 75: return 'a'; case 77: return 'd'; } } return ch; } int main() { init_board(); draw_board(); while (1) { int key = get_key(); switch (key) { case 'w': shift_up(); break; case 's': shift_down(); break; case 'a': shift_left(); break; case 'd': shift_right(); break; case 'q': exit(0); default: continue; } if (game_over()) { printf("Game Over!\n"); break; } int r = rand() % ROW; int c = rand() % COL; while (board[r][c] != 0) { r = rand() % ROW; c = rand() % COL; } board[r][c] = 2; draw_board(); } return 0; } ``` 可以在命令行中编译运行,实现了基本的2048游戏功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值