此方法仅供参考
提取文件
1、 下载微信安装包
2、 将apk改为rar,解压安装包
3、 搜索dice出现骰子图标;搜索jsb出现石头剪刀布图标
4、 导出所需文件,留着备用。
制作
一、 打开ps
二、打开石头剪刀布图片(png格式)
三、窗口创建时间轴,点击转换为桢动画
四、将三个图片拖到同一文件内
五、制作显示图层,大概十个左右,每桢设置为0.2秒,最后一帧设置为240秒(极限值)
六、储存为web所用格式格式
七、仅保存为图像就可以
八、将图片发送给安卓系统的手机微信,保存后添加表情发送就可以啦。
九、制作骰子的方法与石头剪刀布方法类似。
第二篇:-石头—剪刀—布游戏
1
石头剪刀布游戏
1.课题简介
在游戏中,孩子们用手表示石头、剪刀或布中的一个,出拳头表示石头,伸出两根手指表示剪刀,伸手表示布,孩子们面对面地从1数到3时做出他们的选择,如果所作的选择是一样的,则表示平局,否则就按如下规则决定胜负:
(1) 石头砸坏剪刀;
(2) 剪刀剪碎布;
(3) 布覆盖石头。
编程实现计算机与人进行游戏。
2.设计过程
(一)系统功能分析:
游戏中可能出现的选择情况都可以估计到,因此,定义一个枚举类型把游戏中可能出现的选择项都列出来,包括cloth(布),hammer(锤子),scissors(剪刀),game(游戏结果),help(帮助),instructions(游戏方法指导),quit(退出游戏)。
例enum c_h_s{cloth,hammer,scissors,game
,help,instructions,quit};
定义一个类Game,把需要让外界调用的成员函数指定为公用的,所以,类中的公用部分应包含玩家选择命令(select( ))、机器选择(mach( ))、提示游戏规则(instruct( ))、判断输赢(Win_lose( ))、游戏结果(gameshow( ))、帮助(gamehelp( ))等成员函数,另外有一个用来赋初值构造函数;而为了保证类的封装性和信息的隐蔽,应把数据成员指定为私有的如图1所示。
2
(二)系统流程分析:
图1、定义类Game的函数调用,函数流程图如下所示:
图2、实现机器对锤子、剪刀或布选择的算法流程图,如下所示:
3
图3、游戏选择函数,算法流程图:
图4、输出游戏结果流程图如下所示:
4
图5、主函数实现流程图如下所示:
图6、统计游戏从开始运行到现在运行的结果流程图如下所示:
5
(三)具体设计分析如下:
1.1 Game类实现
1.1.1 数据成员说明:
6
int win; // 赢的次数
int lose; //输的次数
int tie; //平局次数
enum c_h_s player; //玩家的选择
enum c_h_s machine; //机器的选择
1.1.2 成员函数说明与实现
1.1.2.1
1.1.2.2 构造函数Game( ) 成员函数select( ) 函数:Game( )功能:对赢、输、平局的数据成员初始化为0。
函数:enum c_h_s select();//玩家选择一个命令
功能:获取玩家选择一个命令(即在石头、剪刀、布、游戏结果、游戏
1.1.2.3 帮助、游戏介绍、退出中做出选择),并将选择的结果返回。 成员函数mach( )
函数:enum c_h_s mach( )
功能:实现机器对锤子、剪刀或布选择。
1.1.2.4 成员函数gameshow(int win,int lose,int tie )
函数: void gameshow(int,int,int)
功能:输出游戏结果,包含有赢、输、平局以及游戏总次数的情况。
1.1.2.5 成员函数gamehelp( )
函数:void gamehelp( )
功能:输出各字符所表示的意义,以帮助玩家进行选择。
提示信息如下:
c 表示布
h 表示锤子
s 表示剪刀
g 查看游戏结果
p 可获得游戏帮助
I 游戏指导信息
q 退出游戏
算法:直接用cout语句 输出。
1.1.2.6 成员函数win_lose(enum c_h_s player,enum c_h_s machine ) 函数:int win_lose(enum c_h_s,enum c_h_s)
功能:读取玩家和电脑的选择,根据游戏规则判断玩家赢、输或平局,
7
返回判断结果。
1.1.2.7 成员函数instruct( )
函数: void instruct( )
功能:对游戏规则进行说明。
游戏规则:
**** 剪刀 锤子 布 ****
在这个游戏中
c 表示布 h 表示锤子 s 表示剪刀. 游戏者和机器都只选择 c,h,s中的一个.如果二者的选择相同,那么这一局就是平局.此外:
"布包锤子"(布获胜).
"锤子打烂剪刀"(锤子获胜).
"剪刀剪布"(剪刀获胜).
还有其它的选择是:
g 表示游戏的结果(至今获胜的次数) p 可获得帮助 i 可获得游戏方法的指导信息 q 表示退出游戏 这个游戏一直重复到游戏者选择 q 为止. 祝你好运!
算法:可用cout语句输出上述内容。
1.1.2.8 成员函数solution( )
函数:void solution( )
功能:统计游戏从开始运行到现在运行的结果,并输出每局的游戏结果。
1.2 主函数实现
功能:创建游戏类对象g,调用对象g的成员函数solution( ),开始游戏。
3.具体设计
8
/* 对游戏Game类的成员结构声明.h #ifndef GAME #define GAME enum
c_h_s{cloth,hammer,scissors,game,help,instructions,quit}; class Game { public:
Game();
enum c_h_s select(); enum c_h_s mach();
void gameshow(int,int,int); void gamehelp( );
/* Game类游戏的操作的函数定义.cpp #include<iostream.h> #include<time.h> #include<stdlib.h> #include"head.h" Game::Game() {
win=0; lose=0; tie=0; }
enum c_h_s Game::select() { char c; c_h_s p;
cout<<" "<<endl;
cout<<" 请选择c,h,或s:"<<endl; cout<<" "<<endl; cin>>c; switch(c) { case's':p=scissors;break; case'h':p=hammer;break;
case'c':p=cloth;break; case'g':p=game;break; case'p':p=help;break;
case'i':p=instructions;break;
case'q':p=quit;break;
default:cout<<"error"<<endl;
int win_lose(enum c_h_s,enum c_h_s); void instruct( ); void solution( ); protected: int win; int lose; int tie; enum c_h_s player; enum c_h_s machine; }; #endif
}
return p;
}
enum c_h_s Game::mach() { srand((unsigned)time(NULL)); int i=rand();
i=i%3;
if(i==0) return cloth; if(i==1)
return hammer; else
return scissors;
}
void Game::gameshow(int win, int lose, int tie) { cout<<endl;
cout<<" 游戏结果如下: "; cout<<endl;
cout<<" 玩家获胜的次数是:"<<win<<endl;
cout<<" 电脑获胜的次数是:"<<lose<<endl;
9
}
cout<<" 平局的次数是:"<<tie<<endl; cout<<" 游戏的总次数是:
{
cout<<" **** 剪刀 锤子 cout<<endl;
cout<<"在这个游戏中:"<<endl; cout<<"c 表示布"<<endl; cout<<"h 表示锤子"<<endl;
cout<<"游戏者和机器都只选择 c,h,s
"<<win+lose+tie<<endl; 布 **** "<<endl;
void Game::gamehelp() {
cout<<endl;
cout<<"s 表示剪子"<<endl;
cout<<" 玩家可以输入下列字符:
"<<endl;
cout<<endl;
中的一个.如果二者的选择相同,此外:"<<endl;
cout<<"“布包锤子”(布获胜)."<<endl;
cout<<" c 表示布 "<<endl; cout<<" h 表示锤子 "<<endl;
cout<<" s 表示剪刀 "<<endl; cout<<" g 查看游戏结果 "
cout<<"“锤子打烂剪刀”(锤子获胜)."<<endl;
cout<<"“剪刀剪布”(剪刀获
胜)."<<endl;
cout<<endl;
<<endl;
cout<<" p 可获得游戏帮助 "
cout<< "还有其它的选择是:"<<endl;
cout<< "g 表示游戏的结果(至今获胜
<<endl; "<<endl;
cout<<" I 游戏指导信息 的次数)"<<endl;
cout<< "p 可获得帮助"<<endl;
cout<<"i 可获得游戏方法的指导信息
cout<<" q 退出游戏
"<<endl;
int Game::win_lose(enum c_h_s player,enum c_h_s machine) { }
void Game::instruct()
int victory=0; if(player==cloth)
victory=machine==hammer; }
"<<endl;
cout<<"q 表示退出游戏"<<endl; cout<<"这个游戏一直重复到游戏者选
择 q 为止."<<endl; }
void Game::solution( ) {
instruct();
cout<<"祝你好运!"<<endl;
while((player=select( ))!=quit)
{
switch(player) {
case cloth: case hammer: case case game:
{ }
gameshow(win,lose,tie); break;
else
if (player==hammer) victory=machine==scissors;
else
victory=machine==cloth;
if(victory!=0)
return win; return lose; else
scissors:machine=mach();break;
case instructions:
10
{ }
instruct( ); break;
if(win_lose(player,machine)==win)
{ } else
cout<<"电脑获胜"<<endl; win++;
gameshow(win,lose,tie);
case help:
{ }
gamehelp(); break;
default:cout<<"对不起,您输入的信if(win_lose(player,machine)==lose)
{
cout<<"玩家获胜 lose++;
息有误!"<<endl;
}
"<<endl;
if(player==cloth||player==hammer||player==scissors)
{
cout<<"平局"<<endl; tie++;
if(machine==player)
gameshow(win,lose,tie); }
} }
cout<<"退出游戏"<<endl; cout<<"bye"<<endl;
gameshow(win,lose,tie);
/*定义Game类函数.cpp #include<iostream.h> #include"head.h" int main() {
} else
Game g; g.solution(); return 0; }
4.测试
11
1、游戏规则及说明截图:
图1、游戏规则及说明
2、游戏运行及统计结果截图
图 2、游戏运行及统计结果
3、游戏帮助截图:
12
图3、游戏帮助
5.总结
本设计在编程过程中使用到:①在头文件head.h中使用到条件预处理命令;②创建类对函数的整体定义,以及类的封装性;③用到了“srand((unsigned)time(NULL))”表示随机函数。
本设计完成了设计所要求的实现了计算机与人进行游戏的编程,通过对程序的测试,显示结果正确,符合设计要求。
设计体会
参考文献
[1]钱能.C++程序设计教程.北京:清华大学出版社,2004,8
[2]谭浩强.C语言教程.北京:清华大学出版社,2002,4
13