#include
#include
#include
using namespace std;
void show(int input)
{
switch(input)
{
case 1:cout<<("出的是石头!");
break;
case 2:cout<<("出的是剪刀!");
break;
case 3:cout<<("出的是布!");
break;
default:;
}
}
void compare(int inputPlay,int inputComputer)
{
if(inputPlay==1&&inputComputer==2||inputPlay==2&&inputComputer==3||inputPlay= =3&&inputComputer==1)
{
cout<<("\n玩家胜!\n");
}
else if(inputPlay==inputComputer)
cout<<("\n平局!\n");
}
else
{
cout<<("\n电脑胜!\n");
}
}
int main()
{
cout<<"欢迎您玩石头-剪子-布游戏(游戏作者:张龙)版本1.0\n"< cout<<"请合理安排时间,切勿沉迷于游戏!\n"< cout<<"游戏说明:数字1代表石头数字2代表剪子数字3代表布\n"< char isGoOn; int inputPlay; int inputComputer; cout<<("猜拳游戏\n"); cout<<("游戏说明:\n\n"); cout<<("数字1代表石头数字2代表剪子数字3代表布\n"); srand(time(NULL)); do cout<<("\n请输入您要猜的:\n"); cin>>inputPlay; if(inputPlay>=0&&inputPlay<=3) { cout<<("您"); show(inputPlay); inputComputer=rand()%3; cout<<("电脑"); show(inputComputer); compare(inputPlay,inputComputer); } else { cout<<("您输入有错误!\n"); cout<<("\n数字1代表石头数字2代表剪子数字3代表布\n"); } cout<<"\n您需要继续么? (y/n)"; cin>>isGoOn; }while(isGoOn=='y'||isGoOn=='Y'); cout<<"欢迎下次再玩!"; system("pause"); } #include #include using namespace std; int win_or_loss(int);//判断输赢的子函数 void baoshi(time_t&);//给出当前系统时间的子函数 void keep_window_open();//让程序运行完毕后,窗口不立马消失 int main() { time_t the_time_1,the_time_2; char q; int win(0),loss(0),ping(0); double gailv(0),sum(0); cout<<"欢迎您玩石头-剪子-布游戏(游戏作者:张龙)版本1.1\n"< cout<<"请合理安排时间,切勿沉迷于游戏!\n"< baoshi(the_time_1); cout<<"游戏说明:数字1代表石头数字2代表剪子数字3代表布\n"< do{ cout<<"\n请问您一共想要玩几次猜拳游戏,请输入大于0的正整数(建议您至少玩十次):"< double times; //输入的次数必须为大于0的正整数,不可为0,负数,浮点数,字符或者是字符串,如果出现非法输入,下面代码是用来处理这些非法输入 while(!(cin>>times)) { cout<<"您的输入不合法,必须为一个数字,请重新输入:"< cin.clear(); cin.sync(); } if(times<=0) { cout<<"您的输入不合法,必须为正整数!\n"< cin.clear(); cin.sync(); q='y'; continue; } else if(times!=int(times)) { cout<<"您的输入不合法,必须为正整数!\n"< cin.clear(); cin.sync(); q='y'; continue; } //游戏正式开始 for(int i=0;i { cout<<"\n请输入您打算猜的拳(用数字123代替,数字1代表石头数字2代表剪子数字3代表布)"< while(1) { double t; cin>>t; if(cin.bad()) { cerr<<"Sorry,出现了系统故障,请重新运行游戏!\n"< return 1; } //用来处理非法输入 if(cin.fail()) { cerr<<"Sorry!,请您必须输入一个合法的数字(1 or 2 or 3)"< cout<<"请输入您打算猜的拳(用数字123代替)"< cin.clear(); cin.sync(); continue; }else if(t!=1&&t!=2&&t!=3) { cerr<<"Sorry!,请您必须输入一个合法的数字(1 or 2 or 3)\n"< cout<<"请输入您打算猜的拳(用数字123代替)\n"< cin.clear(); cin.sync(); continue; }else { cout<<"第"< if(t==1) cout<<"您猜的拳是:石头"< else if(t==2) cout<<"您猜的拳是:剪刀"< else cout<<"您猜的拳是:布"< int n=win_or_loss(t); if(n==0) ++ping; else if(n>0) ++win;//统计赢的次数 else ++loss;//统计输的次数 break; } } if(i==times-1) cout<<"您的猜拳次数已经达到您所设定的"< } cout<<"请问是否还要继续本游戏(Y/other)"< cin>>q;//在玩够开始自己所设的次数后,如果仍然打算继续,则输入'y' }while(q=='Y'||q=='y'); //对整个游戏过程做一个完整统计 sum=win+loss+ping; gailv=win/sum; cout<<"\n本次游戏您一共猜拳:"< cout<<"其中一共胜利:"< cout<<"其中一共输了:"< cout<<"其中一共打平:"< cout<<"您的胜率为:"< cout<<"您的败率为:"< cout<<"您的打平的概率为:"<<(1-loss/sum-gailv)*100<<"%"< if(sum<10) cout<<"由于您猜拳的次数小于10次,不具有统计学意义,所以您与电脑到底谁厉害,无法评判,请大侠重新来过!\n"< else if(gailv<0.4) cout<<"您真是个菜鸟,继续努力哦!\n"< else cout<<"大侠好厉害啊,竟然赢了电脑,佩服佩服!\n"< baoshi(the_time_2); cout<<"本次游戏您一共花费了:"< keep_window_open(); return 0; } //游戏核心代码,判断输赢 int win_or_loss(int t) { time_t the_time; struct tm *tm_ptr; int rec_sec; //电脑的猜拳最好的办法是设定一组完全的随机数,但是一般很难设计出完全的随机数,因此想了一个很巧妙的方法,取玩游戏时的系统时间的秒,根据当前的秒,电脑给出相应猜出的拳 //这样用一种相对比较随机的方法,即便玩游戏的人知道了随机数的规律,也很难完全获胜 the_time=time((time_t *)0); tm_ptr=gmtime(&the_time); rec_sec=tm_ptr->tm_sec; int ans; //switch中主要分了三种情况,第一种是60以内的素数,然后又添加了几个其他的,凑够20;第二种是能被3除开的,然后再添加几个凑成20个;剩下的为第三种 switch(rec_sec) { case 2:case 8:case 5:case 7:case 11:case 13:case 17:case 19:case 23:case 29:case 31:case 37:case 41:case 43:case 47:case 53:case 59:case 22:case 38:case 56: cout<<"电脑游戏程序的猜的拳是:石头"< ans=1; break; case 0:case 3:case 6:case 9:case 12:case 15:case 18:case 21:case 24:case 27:case 30:case 33:case 36:case 39:case 42:case 45:case 48:case 51:case 54:case 57: cout<<"电脑游戏程序的猜的拳是:剪子"< ans=2; break; default: cout<<"电脑游戏程序的猜的拳是:布"< ans=3; break; } if(t==ans) { cout<<"您这次和电脑打了一个平手!"< return 0; } switch(t) { case 1: if(ans==2) { cout<<"恭喜您!您这次赢了电脑!\n"< return 1; } else { cout<<"哈哈!输给电脑了!再接再厉!"< return -1; } break; case 2: if(ans==3) { cout<<"恭喜您!您这次赢了电脑\n"< return 1; } else { cout<<"哈哈!输给电脑了!再接再厉!"< return -1; } break; case 3: if(ans==1) { cout<<"恭喜您!您这次赢了电脑\n"< return 1; } else { cout<<"哈哈!输给电脑了!再接再厉!"< return -1; } break; } } inline void keep_window_open() { cin.clear(); cout << "Please enter a character to exit\n"; char ch; cin >> ch; return; } inline void baoshi(time_t &timeval) { (void)time(&timeval); cout<<"当前北京时间为:"< return; } Java 程序设计 人机猜拳小游戏 实 验 报 告 专业:计算机科学与技术专业 班级: 学号: 姓名: 指导老师: 摘要 面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,它吸取了结构化程序设计的精华,以更接近人们通常思维的方式来处理问题,是一种全新的软件开发技术。 作为一种新的的编程语言,Java很大程度推广了面向对象的思想。随着计算机技术的发展,Java的强大展现出它不可替代的作用。Java的功能不仅体现在它网络方面的应用,对于应用程序设计、游戏设计等Java都能满足需求。 本文针对Java 的具体应用,设计了一个小游戏。根据游戏的规则,用户将可以和计算机进行简单对战。程序实现了友好的用户交互界面,让用户能很好地对游戏进行操作。 关键字:JAVA GUI 游戏 ABSTRACT The Object-Oriented Method is a method which apllies the Object-Oriented Design to the process of the software exploiture and directs the ploy of development. It extracts the prime of the Structured Design for Computer Programmers, deals matters with a folksy fashion, which is considered to be a grand new software-develop technique. As a new programming language, Java spread the Object-Oriented Design in a certain degree. With the development of the technique of computer, the insurmountable function of JA V A is exhibited for its’ mightines s. Not only applies in network, JA V A also can fulfill the requirement of the Application-Design and Game-Design. In this paper, to use the idiographic application of JA V A , I design a game called . Following the regular of the game, user can play a simple revalry with computer. This programme actualizes a folksy GUI mode, which will make user master game easily. Keywords: JA V A GUI Game 这是一个简单的猜拳游戏(剪子包子锤),让你与电脑对决。你出的拳头由你自己决定,电脑则随机出拳,最后判断胜负。 下面的代码会实现一个猜拳游戏,让你与电脑对决。你出的拳头由你自己决定,电脑则随机出拳,最后判断胜负。 代码实现: #include } srand((unsigned)time(NULL)); // 随机数种子 computer=rand()%3; // 产生随机数并取余,得到电脑出拳 result=(int)gamer+computer; // gamer 为char 类型,数学运算时要强制转换类型 printf("电脑出了"); switch (computer) { case 0:printf("剪刀\n");break; //4 1 case 1:printf("石头\n");break; //7 2 case 2:printf("布\n");break; //10 3 } printf("你出了"); switch (gamer) { case 4:printf("剪刀\n");break; case 7:printf("石头\n");break; case 10:printf("布\n");break; } if (result==6||result==7||result==11) printf("你赢了!"); else if (result==5||result==9||result==10) printf("电脑赢了!"); else printf("平手"); system("pause>nul&&cls"); // 暂停并清屏 } return 0; } 代码分析 1) 首先,我们需要定义3个变量来储存玩家出的拳头(gamer)、电脑出的拳头(computer)和最后的结果(result),然后给出文字提示,让玩家出拳。 接下来接收玩家输入: scanf("%c%*c",&gamer); 注意:由于每次输入以回车结束,缓冲区中除了玩家输入的字母,还有回车符。回车符要跳过,以免影响下次输入。Scanf() 函数的格式控制字符串个数可以多于参数个数,scanf("%c%*c",&gamer);的作用是从缓冲区多输出一个字符(回车符),却不赋给任何变量。 玩家输入结束,使用switch 语句判断输入内容,65(A)、97(a)、66(B)、98(b)、67(C)、99(c)、68(D)、100(d)为相应字符的ASCII码。 注意:system("cls"); 语句的作用是清屏。System() 函数用来执行dos 命令,这里相当于在dos 里输入cls命令。 2) 玩家出拳结束,电脑开始出拳。 Java程序设计实验报告 班级:11060341X 学号:50 姓名:马一桃 实验题目:猜拳小游戏 实验要求: 用java编写一个人机对战的猜拳小游戏。人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。有简单的操作界面。 实验内容: 1、问题分析过程: 人机猜拳:人可以通过选择出拳,通过键盘输入相应数字来实现。电脑则随机性出拳,由电脑产生随即数来实现。 通过游戏规则判断双方的输赢,显示当局的输赢情况,并记录当局的分数,并各方的输赢情况。游戏结束时显示双方的分数以及输赢情况。 面向的对象有人、电脑以及游戏规则。人、电脑都有实现自己出拳的方法,同时还要有判断各方输赢的方法。 2、主要实现代码:(要求有必要的注释): import java.util.Scanner; //通过import语句引入Scanner类 public class Game{ public static void main(String args[]){ int x=0; //用户的初始分数为0 int y=0; //电脑的初始分数为0 int z=0; //开始时决战次数为0 System.out.println("\n"); System.out.println("猜拳游戏现在开始,准备好了吗?"); System.out.println("===========游戏规则==========="); System.out.println(" 胜利加一分,否则不加分 "); System.out.println(" 当游戏结束时分高者为胜 "); System.out.println("=============================="); Scanner shuzi = new Scanner(System.in); //用户通过键盘输入 System.out.println("是否要开始游戏?"+"\n"+" y/n"); String m = shuzi.next(); while(m.equals("y")) { System.out.println("请选择数字出拳:"); System.out.println("1 石头 2 剪刀 3 布"); int A = shuzi.nextInt(); //利用switch语句,用户实现出拳 switch(A){ case 1: 大班体育游戏:猜拳跨步 活动目标: 1.遵守游戏规则,学习正确的猜拳与跨步。 2.两两合作,配合协调。 活动准备: 场地上贴好起止线、红蓝标记若干、课件。 活动过程: 1.热身操。(队形:半圆形,看到每一个幼儿) 喜欢运动吗?这儿有一段适合的音乐,找个空的地方跟着我一起动起来! 2.谈话导入。 哇,运动的感觉真好!知道吗?我小时候除了和你们一样喜欢做运动,还喜欢玩各种有趣的游戏。比如老鹰捉小鸡、跳房子、踢毽子,还有猜拳跨步。你们想玩吗?今天,我们就来玩一个猜拳跨步的游戏,好吗? 3.教师讲解游戏规则及玩法(队形:两竖排,让每一个幼儿看清楚游戏的玩法) 1 ————来源网络整理,仅供供参考 (1)玩这个游戏必须会猜拳会跨步,你们都会吗? ①猜拳怎么猜?剪刀赢?布赢?石头赢?非常清楚,真棒! ②跨步会吗?试试看?跨得又大又稳,真不错! (2)怎么玩呢?请一个孩子和我一起先来玩一下!看仔细,我们是怎样玩的! 这是起跑线,那是终点线。两个人站在起跑线上,然后猜拳,谁赢了,谁就往前跨一步,跨好后站着不能动,然后继续猜拳,最先到达终点的就是胜利者。明白了吗? 注意:只有猜拳胜出的才能向前跨一步,然后向原地后转再进行猜拳,没有决定胜负前,不能移动。 (3)我和他谁会先到到终点呢?请看仔细! 4.幼儿自主游戏2遍,教师观察指导。 (1)幼儿第一次两两合作玩游戏。 知道怎么玩了吗?找一个朋友,一起来玩一玩! (2)交流遇到的问题,重申活动规则。 刚才玩的时候有没有遇到什么问题?谁来说一说? (3)幼儿第二次两两合作玩游戏。 只有遵守规则,才能玩得快乐。换个朋友再来玩一玩。 ————来源网络整理,仅供供参考 2 幼儿园中班游戏教案:猜拳游戏 Game teaching plan of kindergarten middle class: guessing fist game 幼儿园中班游戏教案:猜拳游戏 前言:本文档根据题材书写内容要求展开,具有实践指导意义,适用于组织或个人。便于学习和使用,本文档下载后内容可按需编辑修改及打印。 目标: 1.观察游戏卡片上的图案,理解游戏中"石头、剪子、布"相互克制的关系。 2.在翻动、覆盖、叠加卡片的过程中提高判断能力和手 眼协调能力。 准备: 1.自制16宫格游戏底板一块。 2.用KT板自制的并用透明胶包起来的"石头、剪子、布"单面图案卡片各5张,另外增加1张"石头"卡片,一共16 张游戏卡片,所有游戏卡片的背面为白底。 3.每张游戏卡片的大小与游戏底板16宫格的格子大小一致。 玩法: 1.两名幼儿游戏。游戏前,幼儿共同把"石头、剪子、布"游戏卡片打乱,然后将其图案朝下,任意覆盖在16宫格游戏底板上。 2.游戏时,一名幼儿先选择翻开任意一张游戏卡片,另一名幼儿也选择翻开一张游戏卡片,随后,幼儿要快速判断自己所翻的游戏卡片能否克制对方翻开的游戏卡片。如果能够克制,则可以把自己的卡片叠放在对方的卡片上,覆盖住它的图案,比如"石头"可以覆盖"剪子","剪子"可以覆盖"布","布"可以覆盖"石头"。如果两张卡片不能形成互相克制的关系,则保持原有的翻开状态。 3.两名幼儿依次轮流游戏,幼儿每翻开一张卡片,都要观察和判断自己的卡片能否将游戏底板上翻开的任意一张卡片克制住。如果能克制住,则马上进行叠加,即覆盖在那张或那叠卡片上;如果没有能克制住的对象,就让卡片继续保持翻开状态。 4.当游戏底板上的卡片被全部翻完时,游戏双方就用猜拳方法来决定每次谁先行动。每次猜拳获胜者可以选择将游戏底板上任意一组形成相互克制关系的卡片叠加在一起。 5.当游戏底板上没有相互克制的卡片时,游戏结束。 #include 吉林省经济管理干部学院 吉林经济职业技术学院 2013-2014学年第一学期 课程设计 项目类别:游戏设计 设计题目:猜拳小游戏 班级: 学号: 姓名: 校内教师: 企业教师: 设计日期:2013年12月9 日——2013年12月20日 一、设计目标 首先是JAVA语言的初级编程。其次JAVA语言的猜拳小游戏的编程及设计。有JAVA平台软件eclipse的使用。并且使用软件eclipse对猜拳小游戏进行编程,设计游戏算法,实现游戏功能。 二、目标描述 程序总体介绍和设计要求程序使用J2SE语言编写,使用标准JDK平台编译和运行。程序使用已创建的类,设计并实现一个类来玩游戏。根据游戏规则玩家将和电脑进行比赛。 在这个课程设计中,我们做成了一个人机猜拳的小游戏。游戏与我们平时玩的“剪刀、石头、布”是一样的玩法,只不过是玩家与电脑进行猜拳,并且电脑是随机出拳的。 三、设计过程 总体设计 3.1 程序主要功能: 程序总体介绍和设计要求程序使用J2SE语言编写,使用标准JDK平台编译和运行。 程序使用已创建的PairOfDice类,设计并实现一个类来玩游戏。根据游戏规则玩家将和电脑进行比赛。 3.2本程序设计有一下几点设计要求: 1)用可视化编程控件实现该程序。 2)人和电脑对战,你输入石头或剪子或布后,电脑会说“你赢了”,“你输了”或“平”。 3)在游戏结束时,要显示你赢了多少局,电脑赢了多少局,你们平了多少局 3.3 用户动作事件描述: 1)进行游戏 2)清零 3)对本次游戏的用户和电脑数据进行清零,即重新开始游戏。 3.4程序中所用类说明 用户自定义类 类名:SmallGame 作用:实例化对象 主要成员变量: a.Frame myFrm // 定义主窗体 b.TextArea myText // 定义文本编辑区 c.Button BfontOK, Bfind, Breplace, Bnext, Bcancel //定义和创建各按钮 https://www.wendangku.net/doc/f413576267.html,bel Lf Lr, Ls //定义和创建各标签 e.MenuBar Mbbar //定义和创建主菜单 f.Menu Mfile,Medit,Mformation,Mhelp //定义和创建主菜单中的选项 g.Toolkit toolKit 南华大学计算机科学与技术学院实验报告 (2013 ~ 2014 学年度第一学期) 面向对象程序设 课程名称 实验名称人机猜拳游戏 姓名唐龙学号20139350106 专业船山软件班级13级1班 地点8—410 教师夏石莹 一、实验目的 本课程设计所要求达到的目的:通过Java程序设计的一些重要理论基础来实现“人机猜拳小游戏”的功能。通过利用所学到的计算科学的理论知识,提高解决实际问题的能力,增强运算、编程和使用技术资料的技能,通过实际问题的分析设计、编程和调试,掌握应用软件的分析方法和工程设计方法,能正确阐述设计和实验结果,逐步建立正确的全局观念。 二、实验设计与要求 问题定义:创建小游戏,实现电脑与玩家之间互动猜拳这主要功能,并能显示设置的图片,增加美观。 研究意义:通过本次程序设计,我掌握了Java语言的基本运用,提高了理论结合实际能力。 设计要求: 1)界面的左侧是电脑或者玩家的名字,让界面看起来一目了然。 2)系统界面的中间是电脑或者玩家出拳的图片。图片可以生动形象得表示出电脑或 者玩家出的拳,显示的图片在对话框中也相得益彰。在图片的下方会显示,人机 猜拳以后的输赢。 3)界面的右侧是三个剪刀石头布的按钮。玩家通过按钮出拳,电脑随机出拳,猜拳 的输赢结果在下方显示。 三、系统的主要功能 1.可以通过按钮的方式,与电脑进行猜拳游戏,电脑随机出拳; 2.可以显示出拳图片。 四、实验工具 Windows 7;jdk1.6.0_21;eclipse 五、项目实现 首先建立一个Test类,如下: import java.awt.Color; import java.awt.Image; import java.awt.event.ActionEvent; import java.awt.event.ActionListener; import javax.swing.AbstractButton; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JFrame; import javax.swing.JLabel; import javax.swing.JOptionPane; import javax.swing.JPanel; public class Test extends JFrame { JLabel jl,jl1; final JLabel jl2,jl3; JLabel jl4; public String person; public String m; int j; int i; final String[] arr = new String[3]; public void Win(String person) { arr[0] = "石头"; arr[1] = "剪刀"; arr[2] = "布"; person = arr[j]; i = (int) (Math.random() * 3); String c = arr[i]; //判断输赢 if (c.equals(person)) { jl4.setText("平手"); } else if (c.equals("剪刀") && person.equals("石头") || c.equals("石头")&& person.equals("布") || c.equals("布") && person.equals("剪刀")) { jl4.setText("你赢了"); } else { jl4.setText("你输了"); } } 幼儿园中班游戏教案:猜拳游戏 “石头、剪子、布”是一个传统的民间游戏。针对中班幼儿对输赢结果敏感度不高的特点,本游戏通过让幼儿翻游戏卡片的动作,产生观察、思考和判断。出国留学网小编准备了以下内容“幼儿园中班游戏教案:猜拳游戏”,供大家参考! 幼儿园中班游戏教案:猜拳游戏 目标: 1.观察游戏卡片上的图案,理解游戏中"石头、剪子、布"相互克制的关系。 2.在翻动、覆盖、叠加卡片的过程中提高判断能力和手眼协调能力。 准备: 1.自制16宫格游戏底板一块。 2.用KT板自制的并用透明胶包起来的"石头、剪子、布"单面图案卡片各5张,另外增加1张"石头"卡片,一共16张游戏卡片,所有游戏卡片的背 面为白底。 3.每张游戏卡片的大小与游戏底板16宫格的格子大小一致。 玩法: 1.两名幼儿游戏。游戏前,幼儿共同把"石头、剪子、布"游戏卡片打乱,然后将其图案朝下,任意覆盖在16宫格游戏底板上。 2.游戏时,一名幼儿先选择翻开任意一张游戏卡片,另一名幼儿也选择翻开一张游戏卡片,随后,幼儿要快速判断自己所翻的游戏卡片能否克制对方翻开的游戏卡片。如果能够克制,则可以把自己的卡片叠放在对方的卡片上,覆盖住它的图案,比如"石头"可以覆盖"剪子","剪子"可以覆盖"布","布"可以覆盖"石头"。如果两张卡片不能形成互相克制的关系,则保持原有的翻开状态。 3.两名幼儿依次轮流游戏,幼儿每翻开一张卡片,都要观察和判断自己的卡片能否将游戏底板上翻开的任意一张卡 片克制住。如果能克制住,则马上进行叠加,即覆盖在那张或那叠卡片上;如果没有能克制住的对象,就让卡片继续保持翻开状态。 4.当游戏底板上的卡片被全部翻完时,游戏双方就用猜拳方法来决定每次谁先行动。每次猜拳获胜者可以选择将游戏底板上任意一组形成相互克制关系的卡片叠加在一起。 5.当游戏底板上没有相互克制的卡片时,游戏结束。 6.最后,两名幼儿数数游戏底板上的卡片数,每叠卡片分别由几张卡片组成,比较每叠卡片的数量,多者为胜。 规则: 1.翻游戏卡片时,每次只能翻一张。一次猜拳游戏,胜出者也只能选择叠加一次。 2.叠加后的卡片应在被克制的一方格子内整齐放置,如果卡片倒下或超出格子,则需要重新叠放。 3.叠加的游戏卡片没有数量限制,只 目录 绪论............................................... 错误!未定义书签。 一、背景与意义..................................... 错误!未定义书签。 二、设计原理与方案................................. 错误!未定义书签。 一)方案....................................... 错误!未定义书签。 二)设计思路................................... 错误!未定义书签。 三)系统分析................................... 错误!未定义书签。 四)程序概要设计............................... 错误!未定义书签。 五)工作流程图................................ 错误!未定义书签。 六)程序框图.................................. 错误!未定义书签。 七)程序中所用类说明.......................... 错误!未定义书签。 八)程序运行效果及存在的问题................... 错误!未定义书签。 三、项目实现....................................... 错误!未定义书签。 一)程序用到的类库简介......................... 错误!未定义书签。 二)游戏主程序设计............................. 错误!未定义书签。 三)主界面PigPanel类......................... 错误!未定义书签。 四)具体实现.................................. 错误!未定义书签。 四、运行结果....................................... 错误!未定义书签。 一)结果截图................................... 错误!未定义书签。 二)系统在调度中经常出现的问题................. 错误!未定义书签。 五、心得........................................... 错误!未定义书签。 六、总结语......................................... 错误!未定义书签。 七、参考文献 (19) //JAVA人机猜拳小游戏代码 import java.util.Scanner; public class guess{ public static void main(String[] args){ Scanner in=new Scanner(System.in); System.out.println("-----猜拳游戏-------"); System.out.println("请出拳(1.剪刀2.石头3.布)"); int person=in.nextInt(); int computer=(int)(Math.random()*3)+1; String Marks="拳头";//这是给人做一个标记; String Marks2="拳头";//这是给电脑做一个标记; switch(person){ case 1: Marks="拳头"; break; case 2: Marks="石头"; break; case 3: Marks="布"; break; } switch(computer){ case 1: Marks2="拳头"; break; case 2: Marks2="石头"; break; case 3: Marks2="布"; break; } if(person==computer){ System.out.println("你出的是:"+Marks+"电脑出的是:"+Marks2+"---平局"); }else if(person==1&&computer==2||person==2&&computer==3||person==3&&computer= =1){ System.out.println("你出的是:"+Marks+"电脑出的是:"+Marks2+"—_—你输了!"); }else{ System.out.println("你出的是:"+Marks+"电脑出的是:"+Marks2+"^_^你赢了!"); } } 第一个文件: public class Computer { String name; int score; public int showfist(){ int quan; quan=(int)(Math.random()*10); if(quan<=2){ quan=1; }else if(quan<=5){ quan=2; }else{ quan=3; } switch(quan){ case 1:System.out.println(name+"出拳:剪刀");break; case 2:System.out.println(name+"出拳:石头");break; case 3:System.out.println(name+"出拳:布");break; } return quan; } } 第二个文件: import java.util.Scanner; public class Game { int count=0; int countP=0; Person person=new Person(); Computer computer=new Computer(); Scanner input=new Scanner(System.in); public void initial(){ System.out.print("请选择你的角色(1.刘备 2.孙权 3.曹操):"); int juese=input.nextInt(); switch(juese){ case 1:https://www.wendangku.net/doc/f413576267.html,="刘备"; break; case 2:https://www.wendangku.net/doc/f413576267.html,="孙权"; break; case 3:https://www.wendangku.net/doc/f413576267.html,="曹操"; break; } System.out.print("请选择对手角色(1.关羽 2.张飞 3.赵云):"); 先建立个Game 包然后我做的就是分了 5 个类来做的TestStartGuess 类package com、game、guess; public class TestStartGuess { /** * 人机互动版猜拳游戏 * 程序入口 */ public static void main(String[] args) { Game game=new Game(); game、initial(); game、startGame(); } } 2、Person 类 package com、game、guess; import java 、util 、Scanner; /** * 用户类 *阶段1 完成 * @param java人机猜拳 1.首先定义一个用户类:代码如下 package mypackage; import java.util.*; public class Person { String name=""; int score; public int showFist() { System.out.println("请出拳:1.剪刀2.石头3.布(输入相应数字)"); Scanner input =new Scanner(System.in); int number=input.nextInt(); switch(number) { case 1: System.out.println("玩家出:剪刀"); return number; case 2: System.out.println("玩家出:石头"); return number; case 3: System.out.println("玩家出:布"); return number; default: System.out.println("你出拳:剪刀"); return number; } } } 2.定义一个计算机类 package mypackage; public class Computer { int max =3; int min =1; int number= (int)(Math.random()*(max-min))+min; int score; String name="电脑"; public int showcomputer() { switch(number) { case 1: xx中班游戏教案:猜拳游戏 xx中班游戏教案:猜拳游戏 目标: 1.观察游戏卡片上的图案,理解游戏中"石头、剪子、布"相互克制的关系。 2.在翻动、覆盖、叠加卡片的过程中提高判断能力和手眼协调能力。 准备: 1.自制16宫格游戏底板一块。 2.用KT板自制的并用透明胶包起来的"石头、剪子、布"单面图案卡片各5张,另外增加1张"石头"卡片,一共16张游戏卡片,所有游戏卡片的背面为白底。 3.每张游戏卡片的大小与游戏底板16宫格的格子大小一致。 玩法: 1.两名幼儿游戏。游戏前,幼儿共同把"石头、剪子、布"游戏卡片打乱,然后将其图案朝下,任意覆盖在16宫格游戏底板上。 2.游戏时,一名幼儿先选择翻开任意一张游戏卡片,另一名幼儿也选择翻开一张游戏卡片,随后,幼儿要快速判断自己所翻的游戏卡片能否克制对方翻开的游戏卡片。如果能够克制,则可以把自己的卡片叠放在对方的卡片上,覆盖住它的图案,比如"石头"可以覆盖"剪子","剪子"可以覆盖"布","布"可以覆盖"石头"。如果两张卡片不能形成互相克制的关系,则保持原有的翻开状态。 3.两名幼儿依次轮流游戏,幼儿每翻开一张卡片,都要观察和判断自己的卡片能否将游戏底板上翻开的任意一张卡片克制住。如果能克制住,则马上进行叠加,即覆盖在那张或那叠卡片上;如果没有能克制住的对象,就让卡片继续保持翻开状态。 4.当游戏底板上的卡片被全部翻完时,游戏双方就用猜拳方法来决定每次谁先行动。每次猜拳获胜者可以选择将游戏底板上任意一组形成相互克制关系的卡片叠加在一起。 5.当游戏底板上没有相互克制的卡片时,游戏结束。 6.最后,两名幼儿数数游戏底板上的卡片数,每叠卡片分别由几张卡片组成,比较每叠卡片的数量,多者为胜。 规则: 1.翻游戏卡片时,每次只能翻一张。一次猜拳游戏,胜出者也只能选择叠加一次。 2.叠加后的卡片应在被克制的一方格子内整齐放置,如果卡片倒下或超出格子,则需要重新叠放。 3.叠加的游戏卡片没有数量限制,只要最上面的两张卡片图案能够形成相互克制关系,就可进行勘口。 评析: 教师将16张游戏卡片和16宫格游戏底板结合在一起,通过翻卡片决定输赢的方法,赋予了这一民间游戏新的价值。幼儿只要实际玩过这一游戏,就能理解"石头、剪子、布"三者之间的相克关系,就可以自主游戏。 该游戏的玩法设计颇有特色。幼儿的观察、思考和判断是与"石头、剪子、布"这一既靠运气也需智力参与来完成的游戏紧密结合在一起的。因为每次的游戏结果都不一样,这让幼儿乐此不疲。在游戏过程中,幼儿需要全面观察游戏底板上的卡片,快速寻找两张卡片之间的相克关系。为了把卡片叠加得更高,幼儿会尽量往厚的那叠卡片上叠加。 不仅如此,在游戏过程中,教师还通过提问帮助幼儿理解游戏规则,比如:"游戏卡片放哪儿?怎么玩?如果赢了,卡片放哪儿?出现什么情况时表示不输不赢?如果翻出的两张卡片是一样的怎么办?"从而引导幼儿通过动手动脑来增进对游戏规则的理解。教师投放材料后,并没有直接介绍玩法,而是 摘要 面向对象方法是一种把面向对象的思想应用于软件开发过程中,指导开发活动的系统方法,它吸取了结构化程序设计的精华,以更接近人们通常思维的方式来处理问题,是一种全新的软件开发技术。 作为一种新的的编程语言,Java很大程度推广了面向对象的思想。随着计算机技术的发展,Java的强大展现出它不可替代的作用。Java的功能不仅体现在它网络方面的应用,对于应用程序设计、游戏设计等Java都能满足需求。 本文针对Java 的具体应用,设计了一个小游戏。根据游戏的规则,用户将可以和计算机进行简单对战。程序实现了友好的用户交互界面,让用户能很好地对游戏进行操作。 关键字:JAVA GUI 游戏 ABSTRACT The Object-Oriented Method is a method which apllies the Object-Oriented Design to the process of the software exploiture and directs the ploy of development. It extracts the prime of the Structured Design for Computer Programmers, deals matters with a folksy fashion, which is considered to be a grand new software-develop technique. As a new programming language, Java spread the Object-Oriented Design in a certain degree. With the development of the technique of computer, the insurmountable function of JA V A is exhibited for its’ mightiness. Not only applies in network, JA V A also can fulfill the requirement of the Application-Design and Game-Design. In this paper, to use the idiographic application of JA V A , I design a game called . Following the regular of the game, user can play a simple revalry with computer. This programme actualizes a folksy GUI mode, which will make user master game easily. Keywords: JA V A GUI Game Java猜拳小游戏程序设计实验报告Java程序设计实验报告 班级: 学号: 姓名: 实验题目:猜拳小游戏 实验要求: 用java编写一个人机对战的猜拳小游戏。人选择性出拳,电脑随机出拳,判断 输赢,记录输赢情况。有简单的操作界面。 实验内容: 1、问题分析过程: (1)首先分析猜拳游戏本身的玩法: 人选择性出拳,电脑随机出拳,判断输赢,记录输赢情况。 (2)用面向对象的思想来分析: 在游戏过程中有几个对象组成 人 电脑 游戏规则 抽象出3个类:Person、Computer、Game Person类有哪些属性和行为呢, 属性:名字name,输赢次数(比分)score 行为:出拳ShowFirst() 选择性 Computer类有哪些属性和行为呢, 属性:名字name,输赢次数(比分)score 行为:出拳showFist() 随机 Game类有哪些属性和行为呢, 属性:游戏的双方(person、computer)、对战局数count 行为:产生角色initial()、游戏规则startGame()、显示比赛结果showResult()、统计 比赛结果calcResul() 2、主要实现代码: import java.util.*; public class StartGame { public static void main(String[]args){ Game start = new Game();//实例化游戏类 start.initial(); //调用初始化方法 start.startGame(); //调用游戏开始方法 start.showResult(); //调用游戏结果显示方法 } } import java.util.*; public class Person { String name;//名字属性 int score;//积分属性 //出拳方法 public int showFist(){ System.out.print("\n请出拳:1.剪刀2.石头3.布(输入相应数字):"); Scanner input = new Scanner(System.in); C语言猜拳游戏代码及分析 猜拳游戏需求分析说明书 1.引言 1.编写目的 小时候,我们喜欢以猜拳来赢得奖励。 现在,我们希望能开发一个猜拳的游戏。 2.定义 需求:用户解决问题或达到目标所需的条件或功能;系统或系统部件要满足合同、标准,规范或其它正式规 定文档所需具有的条件或权能。而且其很强的交互性及 简单易行性,可以让人在很短时间内熟悉它的操作方法,不论用户文化水平如何,都会很轻松的学会使用它。2.任务概述 1.目标 2.用户的特点 由于本程序简单易操作,交互性好,对用户没什么 特别要求。一般用户经过几分钟练系都可以熟悉本系统 的规则。 3.系统功能示例 3.需求细则 1. 对功能的规定 1.1 界面友好 属性:必选 描述:用户的一些操作前后做出一些必要的提示或确认。所有完成的功能都需要友好,例如: ● 增加失败提示; ● 删除失败和成功提示、删除前的确认; ● 修改失败和成功提示、修改前/后的确认; ● 查找失败提示、查找成功的确认; ● 退出系统时,要提示是否退出; ● 其它方面的界面问题; 1.2 用户注册 属性:必选 描述:登录界面可以用户注册,注册信息包含用户名和密码,例如: ● 不能使用已经存在的用户名 ● 密码不能少于6个字符 1.3 用户登录 属性:必选 描述:用户通过登录界面进行登录,必须输入正确的用户名和密码方可进入系统,例如: ● 提示输入用户名 ● 提示输入密码 ● 用户名和密码验证,都符合则进入系统,不然回到 第一步,超过三次登录,则提示登录次数超过三次,退 出系统 1.4 开始游戏 属性:必选 描述:金额大于1的用户可以开始游戏 ● 下注:提示用户下注的金额数 ● 猜拳:(必须先下注,如果用户下注金额小于等于0,不能进行游戏)与电脑进行猜拳游戏,如果猜输了,扣除你的金额(由下注决定),胜利将随机获得1~5倍的下注 金额奖励 n提示:电脑随机出拳,胜利奖励也是随机的,例如: n随机获得1~5数字代码:人机猜拳JAVA
这是一个简单的猜拳游戏
Java程序设计人机猜拳
大班体育游戏:猜拳跨步
幼儿园中班游戏教案:猜拳游戏
猜拳小游戏
《猜拳小游戏》课程设计报告
人机猜拳小游戏
幼儿园中班游戏教案:猜拳游戏
(完整word版)基于Java的猜拳小游戏设计
JAVA人机猜拳小游戏代码
Java猜拳小游戏源代码
人机猜拳思路
java人机猜拳-石头剪刀布
幼儿园中班游戏教案:猜拳游戏
人机猜拳小游戏JAVA
Java猜拳小游戏程序设计实验报告
C语言猜拳游戏代码及分析