上圖:

遊戲規則:按A,D鍵向左和向右移動小棍子,$表示金币,0表示炸彈,吃到金币+10分,吃到炸彈就GAME OVER。
大體思路和打字遊戲相同,都是使用數組,refresh和run函數進行,做了一些微調。
#include<bits/stdc++.h>
#include<conio.h>
#include<windows.h>
using namespace std;
char str[]=" $$$00";//随機掉落的字元,空格是沒有,$是金币, 0是炸彈
int score=0;
char a[8][8];
int now_x=0;
int start_time;
char temp;
int randbetween(int bottom,int top){
return rand()%(top-bottom)+bottom;
}
void refresh(){
for(int i=7;i>0;i--){
for(int j=0;j<8;j++){
a[i][j]=a[i-1][j];
}
}
for(int i=0;i<5;i++){
a[0][i]=str[randbetween(0,9)];
}
system("cls");
printf("SCORE..%08d\n",score);
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
printf("%c ",a[i][j]);
}
printf("\n");
}
for(int i=0;i<now_x;i++)printf(" ");
printf("|");
if(a[7][now_x]=='$')score+=10;
else if(a[7][now_x]=='0'){
printf("GAME OVER\n");exit(0);
}
a[7][now_x]=' ';
}
void run(){
system("cls");
printf("SCORE..%08d\n",score);
for(int i=0;i<8;i++){
for(int j=0;j<8;j++){
printf("%c ",a[i][j]);
}
printf("\n");
}
for(int i=0;i<now_x;i++)printf(" ");
printf("|");
if(a[7][now_x]=='$')score+=10;
else if(a[7][now_x]=='0'){
printf("GAME OVER\n");exit(0);
}
a[7][now_x]=' ';
}
int main(){
srand(time(0));
for(;;){
start_time=clock();
refresh();
while(clock()-start_time<=2000){//3秒以内
if(_kbhit()){
temp=getch();
if(temp=='A')now_x--;
else if(temp=='D')now_x++;
run();
}
}
}
}