用C++编写石头剪刀布游戏,编程实现计算机与人进行游戏 用C++编写 石头-剪刀-布游戏。

\u5982\u4f55\u7528c++\u6570\u636e\u7ed3\u6784\u7684\u77e5\u8bc6\u7f16\u77f3\u5934\uff0c\u526a\u5200\uff0c\u5e03\u7684\u6e38\u620f

#include #include #include using namespace std; void main () { char a, b; srand ((unsigned)time (NULL)); //\u4ea7\u751f\u968f\u673a\u6570\u79cd\u5b50 while (1) { cout > a; int m = (int) (3 * rand () / (RAND_MAX + 1)); //\u4ea7\u751f\u4ece0\u52302\u7684\u968f\u673a\u6570,a+(int)(n*rand()...

\u5982\u4e0b\uff0c\u7528C++\u7c7b\u5199\u4e86\u4e0b\uff0c\u6709\u70b9\u5197\u4f59\u2026\u2026

好了,写得有点冗余,呵呵,人懒了点,函数的实现都写在了头文件中
// RSC.h
#ifndef _RSC_H_
#define _RSC_H_

#include <iostream>
#include <string>

#include <ctime>

using std::cout;
using std::cin;
using std::endl;

//////////////////////////////////////////////////////////////////////////
#ifndef NULL
#define NULL 0
#endif // NULL
const int MAX_SIZE = 80;

//////////////////////////////////////////////////////////////////////////
// 选项
typedef enum { ROCK, SCISSOR, CLOTH, DISPLAY, HELP, QUIT } SelectType;
// 结果
typedef enum { WIN, LOSE, TIE } ResultType;

//////////////////////////////////////////////////////////////////////////
class CRSCGame
{
public:
CRSCGame(void);
~CRSCGame(void);
// 游戏主框架,为游戏主体开始处
void Game(void);
// 显示提示信息(这里相当地简陋) 可以写为内联
void Helps(void);

protected:
// 获得输入,处理玩家的选择
void GetChoice(void);
// 对电脑和玩家选择的选项的处理,并产生结果
void MsgProc(void);
// 输出游戏信息,选择的选项,游戏结果如何
void Informations(SelectType comsLastChoice);

// 转换函数,将选择的选项转换为相应的字符串
std::string ChoiceToStr(SelectType selectType);

private:
SelectType m_select; // 选择
ResultType m_result; // 结果

int m_sum[3]; // 统计游戏结果(输赢次数)
};

//////////////////////////////////////////////////////////////////////////
CRSCGame::CRSCGame()
: m_select(HELP), m_result(TIE)
{
for (int i=0; i<3; ++i)
{// sum[0]为游戏已进行的总局数,sum[1]为玩家赢的次数,sum[2]为平局次数
m_sum[i] = 0;
}
}

CRSCGame::~CRSCGame()
{
}

// public
void CRSCGame::Game()
{
while (true)
{
try
{
GetChoice();
}
catch (const char *szInfo)
{
std::cout << szInfo << std::endl;
continue;
}

if (QUIT == m_select)
{
break;
}

MsgProc();
}

return ;
}

void CRSCGame::Helps()
{
std::cout << "设定如下:\n" << "输入\t\t对应的选择\n"
<< " r\t\t ROCK\n" << " s\t\t SCISSOR\n" << " c\t\t CLOTH\n"
<< "\n d\t\t DISPLAY\n" << " h\t\t HELP\n" << " q\t\t QUIT\n";

return ;
}

// protected
void CRSCGame::MsgProc()
{
// 电脑随机选取
SelectType comsSelect = SelectType(rand()%3);

switch (m_select)
{
case HELP:
Helps();
return ;
break;

case DISPLAY:
{
std::cout << "已进行局数:" << m_sum[0] << std::endl;
std::cout << "玩家获胜:" << m_sum[1] << " "
<< "平局数:" << m_sum[2] << std::endl;
}
return ;
break;

default:
break;
}

++m_sum[0];
if (((ROCK==m_select)&&(SCISSOR==comsSelect))
|| ((SCISSOR==m_select)&&(CLOTH==comsSelect))
|| ((CLOTH==m_select)&&(ROCK==comsSelect)))
{
m_result = WIN; // 该局获胜
++m_sum[1];
}
else if (m_select == comsSelect)
{
m_result = TIE; // 平手
++m_sum[2];
}
else
{
m_result = LOSE; // 玩家输了
}
Informations(comsSelect);

return ;
}

void CRSCGame::GetChoice()
{
char szSelectBuf[MAX_SIZE];

std::cout << "请输入(r/s/c/d/h/q):";
std::cin.getline(szSelectBuf, MAX_SIZE);
switch (szSelectBuf[0])
{
case 'd':
m_select = DISPLAY;
break;

case 'h':
m_select = HELP;
break;

case 'r':
m_select = ROCK;
break;

case 's':
m_select = SCISSOR;
break;

case 'c':
m_select = CLOTH;
break;

case 'q':
m_select = QUIT;
break;

default:
throw "Unknown Input!Try again please...";
break;
}

return ;
}

void CRSCGame::Informations(SelectType comsLastChoice)
{
std::cout << "此次电脑的选择:" << ChoiceToStr(comsLastChoice) << std::endl;
std::cout << "此次你的选择:\t" << ChoiceToStr(m_select) << std::endl;
switch (m_result)
{
case WIN:
{
std::cout << "你赢了!" << std::endl;
}
break;

case LOSE:
{
std::cout << "唉,你输嘞!" << std::endl;
}
break;

case TIE:
{
std::cout << "咦,是个平局!" << std::endl;
}
break;

default:
break;
}

return ;
}

std::string CRSCGame::ChoiceToStr(SelectType selectType)
{
switch (selectType)
{
case ROCK:
return "ROCK";
break;

case SCISSOR:
return "SCISSOR";
break;

case CLOTH:
return "CLOTH";
break;

default:
break;
}
return "";
}

#endif // _RSC_H_

// Main_RSC.cpp

#include "RSC.h"

//////////////////////////////////////////////////////////////////////////
int main(int argc, char **argv)
{
CRSCGame theGame;

srand(unsigned(time(NULL)));
theGame.Helps();
theGame.Game();

return 0;
} // end main

用类比较烦,以前我学习语言时用BASIC语言写过这个游戏,改成C语言应该还用不到类,只要用简单的结构控制语句就行了。

需要结合图形的显示吗?把具体要求发我邮箱吧,我帮你编编。[email protected]

  • 鐢╟璇█缂栧啓涓涓牴鎹娓告垙瑙勫垯杈撳嚭鍒ゆ柇缁撴灉
    绛旓細include<stdio.h> int main(){ int flag=1,p=0; int a,b,t; printf("娓告垙瑙勫垯濡備笅:\n"); printf("1-鐭冲ご,2-鍓垁,3-甯 0-缁撴潫 (鍏朵粬鏁板瓧鏃犳晥锛岄渶閲嶆柊杈撳叆)\n\n"); printf("**===**===**===**===**===**===**===**===**\n\n"); while(flag==1) { ...
  • 鐢–璇█缂栧啓涓涓鐭冲ご鍓瓙甯冩父鎴,鍏蜂綋瑕佹眰濡備笅,楂樺垎鎬ユ眰
    绛旓細printf("/***鐭冲ご鍓瓙甯冩父鎴 ***\n");printf("***鐜╁:\t%s\n",name);printf("***姣旇禌鎯呭喌:\t璧:\t%d\t杈:\t%d\t骞:\t%d\n",win,lose,tide);printf("***褰撳墠妯″紡:\t%s\n",mode_name[mode]);printf("***N -- 寮濮嬫父鎴忥紱\tC -- 鍒囨崲妯″紡锛沑tQ -- 閫鍑猴紱\n");fget...
  • c璇█缂栫▼妯℃嫙鐭冲ご鍓垁甯冩父鎴銆傝鎯呭鍥
    绛旓細include <stdio.h>#include <stdlib.h>#include int main() {int cnt = 0,win = 0,cmpsel,y;char yousel[10],an[10];char s[][6] = {"鍓垁","鐭冲ご","甯"};srand((unsigned)time(NULL));do {cmpsel = rand() % 3 + 1;printf("鐢佃剳鐨勬嫵宸茬粡鍑嗗濂斤紝璇蜂綘鍑烘嫵\n");printf...
  • 鐢╟璇█缂栧啓鐭冲ご鍓垁甯鐨娓告垙瑕佹眰濡備笅
    绛旓細璇█缂栧啓鐭冲ご鍓垁甯鐨娓告垙锛瑕佹眰濡備笅鐭冲ご鍓垁甯冿紝灏辨槸浣犲嚭鐭冲ご锛屾垜鍑哄竷锛岀劧鍚庤繕鑳藉嚭鍓垁锛岃繖涓変釜娓告垙鏄垜浠皬鏃跺欑粡甯哥帺鐨
  • 鐢–璇█缂栧啓涓涓娓告垙:鍓垁,鐭冲ご,甯鐨,鐢ㄩ殢鍗虫暟鏉ュ疄鐜般傚摢浣嶅ぇ澶у府甯...
    绛旓細/ Copyright(C) 2007 babybubble Author: babybubble Date: 2007-9-20 Description: 0琛ㄧず鍓垁锛1琛ㄧず鐭冲ご锛2琛ㄧず甯 / include<stdio.h> include include<stdlib.h> / a涓巄娓告垙 濡傛灉a璧紝杩斿洖1 濡傛灉a杈擄紝杩斿洖-1 濡傛灉鐩稿悓锛岃繑鍥0 / int fight(int a, int b){ int result;result=a-b;if ...
  • C璇█ 鎬庝箞鐢–璇█璁捐涓涓寽鎷娓告垙 鍓垁鐭冲ご甯鐢1.2.3浠f浛 瑕佺帺5灞3...
    绛旓細include <stdio.h> include int main(){ int a,b,i,m=0,n=0;srand(time(NULL));for(i=0;i<10;i++){ a=rand()%3+1;printf("%d",a);b=rand()%3+1;printf("%d\n",b);if(a>b) m++;else if(a3){ printf("a is the winner");break;} if(n>3){ printf("b is...
  • C璇█鐭冲ご鍓垁甯濡備綍寰幆缁х画娓告垙
    绛旓細int main(){ while(1){ printf(" 鎮ㄦ鍦ㄨ繘鍏鍓垁鐭冲ご甯冩父鎴\n");printf("鎿嶄綔璇存槑:\n");printf(" 1-鍓垁 2-鐭冲ご 3-甯 4-閫鍑篭n");char Song,Com;int w=0,l=0,p=0;srand(time(NULL));printf(" 璇峰嚭鎷:\n");scanf("%d",&Song);if( Song == 4)break;printf(" 鍐虫垬...
  • C++缂栧啓鐭冲ご鍓瓙甯!!!
    绛旓細else if(a==2) printf("I'm sorry I lose the game.\n");} } void main(){ char x;do { customer();computer();compare(a,b);printf("Do you want to continue?(Y/N)");scanf(" %c",&x);}while(x=='y' || x=='Y')...
  • C璇█涓殑鐭冲ご鍓垁甯鐨勭▼搴忎腑鐨勬牳蹇冧唬鐮 (man 鈥 computer + 4) %...
    绛旓細杩欐槸涓涓畝鍗曠殑鍒嗘鍑芥暟闂锛屼笅闈㈡垜浠潵鍒嗘瀽杩囩▼锛0 鍓垁 1 鐭冲ご 2 甯---man={0,1,2} /*娓告垙鑰呭彧鑳介夊彇0-2涓殑涓涓暟*/computer={0,1,2} /*鐢佃剳闅忔満鍊间篃鍙兘浜х敓0-2涓殑涓涓暟*/鏍规嵁缁勫悎鍘熺悊鍏辨湁9绉嶇粨鏋 锛坢an锛宑omputer锛={(0,0),(0,1),(0,2),(1,0),(1,1),(1,2...
  • 鐭冲ご銆鍓垁銆甯冩父鎴杈撳叆3娆,闄や簡骞虫墜,鐪嬭皝璧㈠緱娆℃暟澶氬氨鏄皝璧,C璇█绋...
    绛旓細鎴戞敼浜嗕笅,浣犺嚜宸辩湅鐪嬪惂.include<stdio.h> include<stdlib.h> include int main(){ int ren,computer;printf("0-stone,1-scissor,2-paper\n");srand(time(0));int i = 0, sum = 0;while(i++ <= 2){ sum = 0;printf("Please make a choice:\n");scanf("%d",&ren);computer=r...
  • 扩展阅读:一把剪刀一块石头儿歌 ... 石头剪子布歌曲儿歌 ... 输一局少一件衣服游戏 ... 石头剪刀布脱身服游戏 ... 剪刀石头布律动儿歌 ... 剪刀石头布撕衣服 ... 剪刀石头布c++编程 ... 用剪刀一步一步剪衣服 ... 剪刀石头布解衣服游戏下载 ...

    本站交流只代表网友个人观点,与本站立场无关
    欢迎反馈与建议,请联系电邮
    2024© 车视网