C语言课程设计猜拳游戏
- 格式:pdf
- 大小:327.91 KB
- 文档页数:9
c 猜拳小游戏课程设计一、课程目标知识目标:1. 学生能够理解猜拳小游戏的规则及基本算法。
2. 学生能够掌握运用条件语句和循环结构进行程序设计。
3. 学生能够运用基本的算术运算和比较运算完成猜拳游戏的逻辑判断。
技能目标:1. 学生能够运用所学编程知识,独立设计并实现一个简单的猜拳小游戏。
2. 学生能够通过编写代码,培养逻辑思维和问题解决能力。
3. 学生能够通过团队协作,提高沟通与协作能力。
情感态度价值观目标:1. 学生对编程产生兴趣,增强学习信息技术的积极性。
2. 学生能够体验编程的乐趣,培养创新意识和实践能力。
3. 学生在团队协作中学会互相尊重,培养良好的合作精神。
课程性质:本课程为信息技术学科,以实践操作为主,注重培养学生的动手能力和逻辑思维能力。
学生特点:六年级学生具备一定的信息素养,对计算机操作和编程有一定的基础,好奇心强,喜欢动手实践。
教学要求:课程要求学生在掌握基本编程知识的基础上,能够独立设计并实现猜拳小游戏,培养其编程兴趣和实际操作能力。
教师应将课程目标分解为具体的学习成果,通过引导、辅导和评估,帮助学生达成课程目标。
二、教学内容1. 猜拳游戏规则介绍:介绍猜拳游戏的基本规则,引导学生理解游戏胜负判断的逻辑。
2. 编程环境准备:指导学生熟悉编程环境,掌握基本的输入输出操作。
- 教材章节:《信息技术》第3章“编程环境与基本操作”3. 算法设计与分析:讲解猜拳游戏中的算法设计,引导学生学会运用条件语句和循环结构。
- 教材章节:《信息技术》第4章“算法设计与分析”4. 编程实现:教授如何运用所学知识编写猜拳游戏的代码。
- 教材章节:《信息技术》第5章“程序设计基础”5. 逻辑判断与算术运算:讲解猜拳游戏中逻辑判断和算术运算的应用。
- 教材章节:《信息技术》第6章“逻辑判断与算术运算”6. 测试与调试:指导学生进行猜拳游戏的测试与调试,确保程序正常运行。
- 教材章节:《信息技术》第7章“程序测试与调试”教学进度安排:第1课时:介绍猜拳游戏规则,熟悉编程环境与基本操作。
课程设计说明书课程名称:高级语言程序设计设计题目:石头剪刀布游戏院部:计算机科学与信息工程学院学生:学号:专业班级:计算机科学与技术(信息技术方向)指导教师:2015年 6月课程设计任务书目录一前言 (1)二需求分析 (1)三概要设计 (1)四详细设计 (3)五改进或增加功能模块说明 (4)六程序测试 (4)七课程设计总结 (5)八致 (5)九参考文献 (5)十源程序 (6)五子棋游戏一前言猜拳游戏是由锤子、剪刀、布三部分组成。
玩家可以在游戏区逐次猜拳,系统会给出玩家每次猜拳后的提示,显示成功或者失败或者是平手。
二需求分析1 要求(1)用C语言实现程序设计;(2)定义各个函数分别完成不同功能,如背景设计,判断等;(3)画出查询模块的流程图;(4)系统的各个功能用函数调用的形式实现;(5)界面友好(良好的人机互交),程序要有注释。
2 任务(1)定义各类头文件,变量及宏定义;(2)图形模块,设计出棋盘背景界面;(3)设定玩家操作模块和胜负判断模块;(4)画出部分模块的流程图;(5)编写代码;(6)程序分析与调试。
3 运行环境(1)WINDOWS2000/XP系统(2)TurboC2.0编译环境4 开发工具C语言三概要设计1 模块组成图功能模块图2 查询函数流程图猜拳游戏从开始到结束的操作步骤的系统流程图函数流程图四详细设计在程序的开头部分定义要用到的头文件,以及各种常量,设定选手及游戏模式。
#include<stdio.h> /*标准输入/输出函数库*/#include<stdlib.h> / *标准函数库*/#include<string.h>#include<time.h>#include<windows.h>#inlcude<iostream>using namespace std;void SetColor(unsigned shortForeColor,unsigned short BackGroundColor){HANDLE hCon = GetStdHandle(STD_OUTPUT_HANDLE);SetConsoleTextAttribute(hCon,(ForeColor%16)|(BackgrundColor%16*16));}void face();void shuoming();void shezhi();void zuce();void tuichu();void paixu();void paihangbang();int cmp();int N = 20,maxx = 0,M;struct PP{char name[10];int score;}P[1000];输入函数,即为选手每一次出拳,用1、2、3分别表示石头、剪刀、布,通过输入数字来确定要出的是哪一个,每出一次进行判断是否合理(如是否是三者中的一个)并通过调用函数记录比赛的结果,则通过变量记录下获胜的次数,如果比赛完了主函数void youxi(){int wan = 1;while(wan <= M){P[wan - 1].score = 0;system("CLS");SetColor(14,0);printf("\n\n\n\n\n\n\n\n\n\t\t\t 下面有请 ");SetColor(12,0);printf("玩家 %d",wan);SetColor(14,0);printf(" 准备比赛!");SetColor(12,0);printf("\n\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t【按任意键开始游戏】"); _sleep(2000);getchar();getchar();int a,i = 0;for(; i < N; i++){system("CLS");srand((unsigned)time(NULL));/*随机种子*/int n=rand()%(3-1+1)+1;/*n为1~3之间的随机数*/SetColor(13,0);printf("\n\n\n\n\t\t\t\t每 %d 回合为一轮\n",N);SetColor(14,0);printf("\n\n\t\t\t\t\t\t\t (第 %d 回合)",i+1);SetColor(15,0);printf("\n\n\n\n\n\t请输入你的要出的: ");SetColor(12,0);scanf("%d",&a);//getchar();system("CLS");printf("\n\n\n\n\n\n\n\n\n\n\t\t\t");SetColor(13,0);if(a==1){switch(n){case 1:printf("双方都是石头......平手\n");break;case 2:printf("您出的是石头,电脑出的是剪刀,......您赢了!\n"),P[wan-1].score++;break;default:printf("您出的是石头,电脑出的是布......电脑赢了\n");_sleep(1000);}}else if(a==2){switch(n){case 1:printf("您出的是剪刀,电脑出的是石头......电脑赢了\n");break;case 2:printf("双方出的都是剪刀......平手\n");break;default:printf("您出的是剪刀,电脑出的是布.....您赢了!\n"),P[wan-1].score++;_sleep(1000);}}else if(a==3){switch(n){case 1:printf("您出的是布,电脑出的是石头......您赢了!\n"),P[wan-1].score++;break;case 2:printf("您出的是布,电脑出的是剪刀......电脑赢了\n");break;default:printf("双方出的都是布......平手\n");_sleep(1000);}}else{printf("你输入的有误,请重新输入!");i--;}SetColor(13,0);printf("\n\n\t\t\t\t战斗仍未结束,同志还需努力!");printf("\n\n\n\n\n\n\n 【按t退出当前玩家】\t 【按T退出到主页面】\t【按其他任意键继续游戏】\n");getchar();char c;scanf("%c",&c);if(c == 't'){break;}if(c == 'T'){face();}}wan++;if(i >= N){P[wan-1].score = (P[wan-1].score/N)*100;}else{P[wan - 1].score = 0;}paixu();}system("CLS");SetColor(12,0);printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t所有的对局已结束!");printf("\n\n\n\n\n\n\n\n\n\n\t\t\t\t\t\t\t\【按任意键返回主页面】\n");getchar();getchar();face();}五改进或增加功能模块说明在游戏运行过程中,没次比赛结束,此程序中都会产升新的对决界面,在屏幕上显示相对比较繁琐,因此这里用到了屏幕刷新函数system("cls");,为了让界面好看,添加了改变字体颜色的函数SetColor(7,0);代码如下。
C语⾔实现猜拳游戏⼀、问题C语⾔实现猜拳游戏,⽤户⾃⼰选择对⼿,可以创建玩家⾓⾊。
可以记录当前对战情况(对战局数,得分情况)⼆、解决思路猜拳游戏⼤家都不陌⽣,从⼩玩到⼤,遇到棘⼿的选择,猜拳往往是最能服众的处理办法。
那么今天我们就⽤C语⾔来实现这个⼩游戏。
这题⽐较简单,创建两个字符数组,对应对⼿和玩家。
接着⽤户选择要出的(⽯头,剪⼑,布),然后是电脑选择,最后把两个选择进⾏对⽐,判断输赢。
三、代码实现第⼀步,编写game.h头⽂件,把需要⽤到的函数声明及⼀些宏定义写在⾥⾯#ifndef __GAME_H__#define __GAME_H__#include <stdio.h>#include <windows.h>#include <time.h>#pragma warning(disable:4996)void menu();void gamestart(int com, char* comname, char* name);int judge(int choice, int c);int computer_round();void show(int count, int ptimes, int ctimes, char* comname, char* name);#endif第⼆步,编写main函数,从这⾥调⽤函数#include "game.h"int main(){menu();//调⽤menu函数system("pause");return 0;}第三步,编写game.c,把需要⽤到的函数都写在⾥⾯。
menu函数,指引⽤户做出选择void menu()//menu函数,指引⽤户做出选择{printf("**************\n");printf("**猜拳,开始**\n");printf("**************\n");printf("请选择对⽅⾓⾊(1.奥特曼2.葫芦娃3.孙悟空)\n");int com = 0;char comname[20] = { 0 };int flag = 1;while (flag) { //为⽤户选择的对⼿创建名字scanf("%d", &com);switch (com) {case 1:strcpy(comname,"奥特曼");flag = 0;break;case 2:strcpy(comname, "葫芦娃");flag = 0;break;case 3:strcpy(comname, "孙悟空");flag = 0;break;default:printf("输⼊有误!\n");break;}}printf("请输⼊你的名字:");char name[20] = { 0 };scanf("%s", name);//⽤户⾃⼰创建⾓⾊printf("%sVS%s\n", name,comname);printf("要开始吗?(y/n)\n");char choice = 0;while (1) {if (flag) { // 判断⽤户是不是第⼀次进⾏游戏printf("要继续吗?(y/n)\n");}flag = 1;getchar();scanf("%c", &choice);switch (choice) {case 'y': gamestart(comname,name);//'y',开始游戏,调⽤gamestart函数break;case 'n': printf("拜拜!\n");//'n',游戏结束,函数调⽤结束return;default: printf("输⼊有误,请重新输⼊!\n");break;}}}gamestart函数,游戏开始void gamestart(char* comname,char* name){int static ptimes = 0;//⽤户赢的次数int static ctimes = 0;//电脑赢得次数int static count = 0; //游戏对战次数if (count) {show(count,ptimes,ctimes,comname,name); //如果不是第⼀次进⼊游戏,则显⽰当前对战情况 }count++;//每进⾏⼀次游戏,count⾃加⼀printf("请出拳:1.⽯头2.剪⼑3.布\n");int choice = 0;printf("你出拳:");int flag = 1;while (flag) {scanf("%d", &choice);switch (choice) {case 1:printf("⽯头\n");flag = 0;break;case 2:printf("剪⼑\n");flag = 0;break;case 3:printf("布\n");flag = 0;break;default:printf("输⼊有误,请重新输⼊!\n");}}printf("%s出拳:", comname);int result = judge(choice, computer_round());//先调⽤computer_round函数,得到电脑的选择//然后调⽤judge函数,判断输赢switch (result) {case -1:printf("很遗憾,你输了!\n");ctimes++; //记录电脑赢的次数break;case 0:printf("还不错,平局!\n");break;case 1:printf("恭喜你,你赢了!\n");ptimes++; //记录⽤户赢的次数break;}}judge函数,判断输赢int judge(int choice, int c)//judge函数,判断输赢{if (choice == c) { //如果两个选择相同,则平局return 0;}if (choice - c == 1 || choice - c == -2) { // choice是⽤户选择,若符合这两个结果,则证明⽤户输return -1;}else {return 1; //否则⽤户赢}}computer_round函数,电脑回合int computer_round()//computer_round函数,电脑选择出什么{srand((unsigned long)time(NULL));int c = rand() % 2 + 1; //与⼈的选项⼀样,1.⽯头2.剪⼑3.布if (c == 1) {printf("⽯头\n");}else if (c == 2) {printf("剪⼑\n");}else {printf("布\n");}return c;}show函数,显⽰当前对战情况void show(int count, int ptimes, int ctimes, char* comname, char* name) {system("cls");printf("%sVS%s\n", name, comname);printf("对战次数:%d\n", count);printf("姓名得分\n");printf("%6s %d\n", name, ptimes);printf("%6s %d\n", comname, ctimes);}四、运⾏结果五、写在最后既然在家都闲着没事,不如写个⼩游戏;不耽误学习,不耽误娱乐。
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数字代码:nsrand((unsigned)time(NULL));nint radio = rand() % 5 + 1;//radio 为随机 1~5的整数●如果金额少于下注数,将不能进行猜拳,給出充值提示1.5充值属性:必选描述:用户可以进行充值●充值金额●充值的时候,必须输入充值密码(由5个字符组成,随机包括数字0~9和所有小写字母)●如果充值密码正确,充值成功,不然充值失败1.6修改用户信息属性:必选描述:用户可以注销(删除)自己的账户、或者修改个人信息● 修改个人信息n修改用户密码● 注销用户(本人)n删除用户所有信息(删除完毕将返回登录界面,用户账号已经不存在)1.7查看用户信息属性:必选描述:用户登录成功后,可以选择查看用户自己信息或者所有用户信息● 查看用户自己信息:(本人)用户名密码金额胜率● 查看所有用户信息:所有用户名金额胜率1.8排序属性:必选描述:用户可以对所有用户信息进行排序操作,便于查看● 金额排序● 胜率排序对性能的规定本系统在设计方面本着方便、实用的宗旨,性能方面应遵循如下原则:●执行效率(时间):软件运行应该尽量高效;避免没有必要的循环处理、重复处理;●资源损耗(空间):设计尽量节约资源(内存、数组、链表等);不用的资源要及时释放;●初始化:变量、数组、内存块;●健壮性:不能出现野指针、内存泄露、数组越界访问等等:◎声明指针后,立即将指针设置为NULL,防止产生“野指针”;◎函数的入参必须进行有效性判断;用户输入、函数返回值(如果用到的话)都要判断;◎switch-case一定要有default;if-else if等后要有else,除非if满足后返回或退出;◎不允许出现goto语句;◎数组的下标不要溢出。
C语⾔实现的猜拳游戏代码分享这是⼀个简单的猜拳游戏(剪⼦包⼦锤),让你与电脑对决。
你出的拳头由你⾃⼰决定,电脑则随机出拳,最后判断胜负。
下⾯的代码会实现⼀个猜拳游戏,让你与电脑对决。
你出的拳头由你⾃⼰决定,电脑则随机出拳,最后判断胜负。
启动程序后,让⽤户出拳,截图:⽤户出拳,显⽰对决结果:截图:代码实现:#include <stdio.h>#include <stdlib.h>#include <time.h>int main(){char gamer; // 玩家出拳int computer; // 电脑出拳int result; // ⽐赛结果// 为了避免玩⼀次游戏就退出程序,可以将代码放在循环中while (1){printf("这是⼀个猜拳的⼩游戏,请输⼊你要出的拳头:\n");printf("A:剪⼑\nB:⽯头\nC:布\nD:不玩了\n");scanf("%c%*c",&gamer);switch (gamer){case 65: //Acase 97: //agamer=4;break;case 66: //Bcase 98: //bgamer=7;break;case 67: //Ccase 99: //cgamer=10;break;case 68: //Dcase 100: //dreturn 0;default:printf("你的选择为 %c 选择错误,退出...\n",gamer);getchar();system("cls"); // 清屏return 0;break;}srand((unsigned)time(NULL)); // 随机数种⼦computer=rand()%3; // 产⽣随机数并取余,得到电脑出拳result=(int)gamer+computer; // gamer 为 char 类型,数学运算时要强制转换类型printf("电脑出了");switch (computer){case 0:printf("剪⼑\n");break; //4 1case 1:printf("⽯头\n");break; //7 2case 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),然后给出⽂字提⽰,让玩家出拳。
c课程设计猜拳游戏一、教学目标本课程的目标是让学生掌握猜拳游戏的基本原理和编程技巧。
知识目标:让学生了解猜拳游戏的规则和逻辑,掌握Python编程语言的基本语法。
技能目标:培养学生运用Python编程语言实现猜拳游戏的能力,提高学生的编程实践能力。
情感态度价值观目标:培养学生对编程的兴趣,增强学生解决问题的自信心,培养学生团队合作的精神。
二、教学内容本课程的教学内容主要包括猜拳游戏的基本原理、Python编程语言的基本语法和猜拳游戏的编程实践。
具体包括以下几个部分:1.猜拳游戏的基本规则和逻辑;2.Python编程语言的基本语法;3.用Python编程语言实现猜拳游戏的步骤和方法;4.猜拳游戏的编程实践。
三、教学方法本课程采用讲授法、案例分析法和实验法等多种教学方法。
1.讲授法:通过讲解猜拳游戏的基本规则和逻辑、Python编程语言的基本语法,使学生掌握相关知识。
2.案例分析法:通过分析已有的猜拳游戏代码,使学生了解猜拳游戏的编程实践。
3.实验法:让学生动手编写猜拳游戏代码,提高学生的编程实践能力。
四、教学资源本课程的教学资源包括教材、参考书、多媒体资料和实验设备。
1.教材:主要包括《Python编程:从入门到实践》等书籍,用于引导学生学习Python编程语言的基本语法。
2.参考书:主要包括《猜拳游戏编程指南》等书籍,用于引导学生了解猜拳游戏的基本原理和编程技巧。
3.多媒体资料:包括教学视频、PPT等,用于辅助讲解和演示猜拳游戏的规则和逻辑、Python编程语言的基本语法。
4.实验设备:包括计算机、网络等,用于让学生进行猜拳游戏的编程实践。
五、教学评估本课程的评估方式包括平时表现、作业和考试三个部分。
平时表现主要评估学生在课堂上的参与程度和表现,包括提问、回答问题、团队合作等,占总评的30%。
作业主要评估学生的编程实践能力,包括猜拳游戏的代码实现和优化,占总评的40%。
考试主要评估学生对猜拳游戏原理和Python编程语言的理解和应用能力,占总评的30%。
猜拳小游戏课程设计一、课程目标知识目标:1. 学生能理解并掌握基本的计算机编程概念,如变量、循环和条件语句;2. 学生能运用所学知识设计并实现一个简单的猜拳小游戏;3. 学生了解猜拳游戏的规则,并能将其与编程知识相结合。
技能目标:1. 学生能运用编程软件进行代码编写,培养编程实践能力;2. 学生通过团队合作,提高沟通协作能力;3. 学生学会分析问题、解决问题,具备一定的逻辑思维能力。
情感态度价值观目标:1. 学生培养对计算机编程的兴趣,增强学习动力;2. 学生在团队合作中,学会互相尊重、互相帮助,培养团队精神;3. 学生在编程过程中,体验成功的喜悦,增强自信心。
课程性质:本课程为信息技术课程,旨在通过猜拳小游戏的设计与实现,让学生掌握编程基本概念和技能,培养其逻辑思维和动手能力。
学生特点:本课程针对的是四年级学生,他们对新鲜事物充满好奇心,有一定的逻辑思维能力,但注意力容易分散。
教学要求:结合学生特点,课程要求教师采用生动有趣的方式进行教学,引导学生主动参与,注重培养学生的实践能力和团队协作能力。
通过本课程的学习,使学生达到预设的课程目标,实现具体的学习成果。
二、教学内容1. 知识点讲解:- 变量的概念与使用;- 循环结构(for循环、while循环);- 条件语句(if-else语句);- 随机数的生成与运用。
2. 教学大纲:第一课时:引入编程概念,讲解变量及其作用,指导学生进行变量练习;第二课时:讲解循环结构,通过实例演示循环的使用方法;第三课时:介绍条件语句,结合猜拳游戏讲解条件判断;第四课时:教授随机数的生成,指导学生运用随机数实现猜拳游戏的不确定性;第五课时:综合运用所学知识,分组设计并实现猜拳小游戏。
3. 教材章节关联:- 变量:《信息技术》四年级上册第二章第二节;- 循环结构:《信息技术》四年级上册第三章第一节;- 条件语句:《信息技术》四年级上册第三章第二节;- 随机数:《信息技术》四年级上册第四章第二节。