就C语言中 猜拳游戏的代码 C语言猜拳游戏代码 帮忙 改改 能运行就行 五局三胜制是关键

\u6c42C\u8bed\u8a00\u731c\u62f3\u6e38\u620f\u4ee3\u7801

DOS\u6a21\u5f0f\u4e0b\u7684\uff08\u6587\u5b57\u6e38\u620f\uff09\uff1a

#define SHITOU 0
#define JIANDAO 1
#define BU 2


#include
#include
#include


int main()
{
int x,y;

srand ((unsigned)time(NULL));
x = rand() % 3; //\u968f\u673a\u751f\u62100\u30011\u30012

printf ("\u8be5\u4f60\u51fa\uff1a0-\u77f3\u5934\uff0c1-\u526a\u5200\uff0c2-\u5e03\n");
scanf ("%d", &y);

switch (x){

case SHITOU:

switch (y){

case SHITOU:
printf("\u7535\u8111-\u77f3\u5934\uff0c\u73a9\u5bb6-\u77f3\u5934\uff0c\u5e73\n");
break;

case JIANDAO:
printf("\u7535\u8111-\u77f3\u5934\uff0c\u73a9\u5bb6-\u526a\u5200\uff0c\u7535\u8111\u8d62\n");
break;

case BU:
printf("\u7535\u8111-\u77f3\u5934\uff0c\u73a9\u5bb6-\u5e03\uff0c\u73a9\u5bb6\u8d62\n");
break;

}

break;

case JIANDAO:

switch (y){

case SHITOU:
printf("\u7535\u8111-\u526a\u5200\uff0c\u73a9\u5bb6-\u77f3\u5934\uff0c\u73a9\u5bb6\u8d62\n");
break;

case JIANDAO:
printf("\u7535\u8111-\u526a\u5200\uff0c\u73a9\u5bb6-\u526a\u5200\uff0c\u5e73\n");
break;

case BU:
printf("\u7535\u8111-\u526a\u5200\uff0c\u73a9\u5bb6-\u5e03\uff0c\u7535\u8111\u8d62\n");
break;

}

break;

case BU:

switch (y){

case SHITOU:
printf("\u7535\u8111-\u5e03\uff0c\u73a9\u5bb6-\u77f3\u5934\uff0c\u7535\u8111\u8d62\n");
break;

case JIANDAO:
printf("\u7535\u8111-\u5e03\uff0c\u73a9\u5bb6-\u526a\u5200\uff0c\u73a9\u5bb6\u8d62\n");
break;

case BU:
printf("\u7535\u8111-\u5e03\uff0c\u73a9\u5bb6-\u5e03\uff0c\u5e73\n");
break;

}

break;
}

return 0;
}

WINDOWS\u6a21\u5f0f\u4e0b\u7684\uff0c\u7528MFC\u5199\u6210\uff08\u53ef\u89c6\uff0c\u4f46\u6211\u4e0d\u4f1a\u753b\u90a3\u4e9b\u56fe\u6848\uff0c\u53ea\u597d\u7528\u6587\u5b57\u4ee3\u66ff\uff09\uff1a
\uff08PRS.h\uff09
#define SHITOU 0
#define JIANDAO 1
#define BU 2

class CMyApp: public CWinApp
{
public:
virtual BOOL InitInstance ();
};

class CMainWindow: public CFrameWnd
{
protected:
int m_nPlayer;
int m_nComputer;
int m_nWinner;

static CRect m_Buttons[3];
static CRect m_ViewPart[2];
static CRect m_Text[2];

public:
CMainWindow ();

protected:
int GetIndex(CPoint& point);
void Judge ();
void ComputerTurn();
void DrawGameText (CDC *pDC, int pos);
void DrawButton (CDC *pDC);
void DrawTittle (CDC *pDC);

protected:
afx_msg void OnPaint ();
afx_msg void OnLButtonDown (UINT nFlags, CPoint point);

DECLARE_MESSAGE_MAP()
};


\uff08PRS.cpp)

#include
#include
#include
#include "PRS.h"

CMyApp theApp;

BOOL CMyApp::InitInstance ()
{
m_pMainWnd = new CMainWindow;
m_pMainWnd->ShowWindow (m_nCmdShow);
m_pMainWnd->UpdateWindow();

return TRUE;
}

BEGIN_MESSAGE_MAP (CMainWindow, CFrameWnd)
ON_WM_PAINT ()
ON_WM_LBUTTONDOWN ()
END_MESSAGE_MAP ()

CRect CMainWindow::m_Buttons[3] =
{
CRect (0, 540, 200, 600),
CRect (200, 540, 400, 600),
CRect (400, 540, 600, 600)
};

CRect CMainWindow::m_ViewPart[2] =
{
CRect (0, 200, 300, 540),
CRect (300, 200, 600, 540)
};

CRect CMainWindow::m_Text[2] =
{
CRect (0, 0, 300, 200),
CRect (300, 0, 600, 200)
};

CMainWindow::CMainWindow ()
{
CString strWnd = AfxRegisterWndClass (
CS_HREDRAW | CS_VREDRAW,
AfxGetApp () -> LoadStandardCursor (IDC_ARROW),
(HBRUSH)(COLOR_3DFACE + 1),
AfxGetApp () -> LoadStandardIcon (IDI_WINLOGO)
);

CreateEx (0, strWnd, _T("\u731c\u62f3"),
WS_OVERLAPPED | WS_SYSMENU |
WS_CAPTION | WS_MINIMIZEBOX,
CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
NULL, NULL);

CRect rect (0, 0, 600, 600);
CalcWindowRect (&rect);
SetWindowPos(NULL, 0, 0, rect.Width(), rect.Height(),
SWP_NOZORDER | SWP_NOMOVE | SWP_NOREDRAW);

}

void CMainWindow::OnPaint()
{
CPaintDC dc(this);
DrawTittle(&dc);
DrawButton(&dc);

CPen pen(PS_SOLID, 5, RGB(0, 255, 255));
CPen* pOldPen = dc.SelectObject (&pen);

dc.MoveTo (300, 200);
dc.LineTo (300, 480);

dc.SelectObject (pOldPen);
}

void CMainWindow::OnLButtonDown(UINT nFlags, CPoint point)
{
int i;
i = GetIndex(point);

if (i == -1)
return;

switch (i){

case SHITOU:
m_nPlayer = SHITOU;
break;

case JIANDAO:
m_nPlayer = JIANDAO;
break;

case BU:
m_nPlayer = BU;
break;
}

ComputerTurn();
Judge();
}

void CMainWindow::DrawTittle(CDC *pDC)
{
CFont font;
font.CreatePointFont (300, _T("\u9ed1\u4f53"));
pDC->SetBkMode(TRANSPARENT);
CFont* pOldFont = pDC->SelectObject (&font);
pDC->DrawText (_T("\u7535\u8111"), -1, &m_Text[0], DT_CENTER | DT_SINGLELINE | DT_VCENTER);
pDC->DrawText (_T("\u73a9\u5bb6"), -1, &m_Text[1], DT_CENTER | DT_SINGLELINE | DT_VCENTER);
pDC->SelectObject (pOldFont);
}

void CMainWindow::DrawButton(CDC *pDC)
{
CBrush brushes[3];
brushes[0].CreateSolidBrush(RGB(100, 60, 30));
brushes[1].CreateSolidBrush(RGB(20, 120, 90));
brushes[2].CreateSolidBrush(RGB(30, 80, 150));

for (int i = 0; i<3; i++){
pDC->Draw3dRect(&m_Buttons[i], RGB(255, 0, 0), RGB(0, 0, 255));
pDC->FillRect(&m_Buttons[i], &brushes[i]);
}

CFont font;
font.CreatePointFont(300, _T("\u9ed1\u4f53"));
pDC->SetBkMode (TRANSPARENT);
CFont* pOldFont = pDC->SelectObject(&font);

pDC->DrawText(_T("\u77f3"), -1, &m_Buttons[0], DT_VCENTER | DT_SINGLELINE | DT_CENTER);
pDC->DrawText(_T("\u526a"), -1, &m_Buttons[1], DT_VCENTER | DT_SINGLELINE | DT_CENTER);
pDC->DrawText(_T("\u5e03"), -1, &m_Buttons[2], DT_VCENTER | DT_SINGLELINE | DT_CENTER);

}

void CMainWindow::ComputerTurn()
{
srand((unsigned)time(NULL));
m_nComputer = rand()%3;
}

void CMainWindow::Judge()
{
CClientDC dc(this);
CFont font;
font.CreatePointFont (500, _T("\u9ed1\u4f53"));
dc.SetTextColor(RGB(255, 0, 0));
dc.SetBkMode (TRANSPARENT);
CFont* pOldFont = dc.SelectObject(&font);

switch(m_nComputer){

case SHITOU:
dc.DrawText(_T("\u77f3\u5934"), &m_ViewPart[0], DT_CENTER | DT_VCENTER | DT_SINGLELINE);

dc.SetTextColor(RGB(0, 0, 255));

switch(m_nPlayer){

case SHITOU:

dc.DrawText(_T("\u77f3\u5934"), &m_ViewPart[1], DT_CENTER | DT_VCENTER | DT_SINGLELINE);
m_nWinner = 0;

break;

case JIANDAO:

dc.DrawText(_T("\u526a\u5200"), &m_ViewPart[1], DT_CENTER | DT_VCENTER | DT_SINGLELINE);
m_nWinner = 1;

break;

case BU:

dc.DrawText(_T("\u5e03"), &m_ViewPart[1], DT_CENTER | DT_VCENTER | DT_SINGLELINE);
m_nWinner = 2;

break;
}
break;

case JIANDAO:

dc.SetTextColor(RGB(255, 0, 0));

dc.DrawText(_T("\u526a\u5200"), &m_ViewPart[0], DT_CENTER | DT_VCENTER | DT_SINGLELINE);

dc.SetTextColor(RGB(0, 0, 255));
switch(m_nPlayer){

case SHITOU:

dc.DrawText(_T("\u77f3\u5934"), &m_ViewPart[1], DT_CENTER | DT_VCENTER | DT_SINGLELINE);
m_nWinner = 2;

break;

case JIANDAO:

dc.DrawText(_T("\u526a\u5200"), &m_ViewPart[1], DT_CENTER | DT_VCENTER | DT_SINGLELINE);
m_nWinner = 0;

break;

case BU:

dc.DrawText(_T("\u5e03"), &m_ViewPart[1], DT_CENTER | DT_VCENTER | DT_SINGLELINE);
m_nWinner = 1;

break;
}
break;

case BU:

dc.SetTextColor(RGB(255, 0, 0));

dc.DrawText(_T("\u5e03"), &m_ViewPart[0], DT_CENTER | DT_VCENTER | DT_SINGLELINE);

dc.SetTextColor(RGB(0, 0, 255));

switch(m_nPlayer){

case SHITOU:

dc.DrawText(_T("\u77f3\u5934"), &m_ViewPart[1], DT_CENTER | DT_VCENTER | DT_SINGLELINE);
m_nWinner = 1;

break;

case JIANDAO:

dc.DrawText(_T("\u526a\u5200"), &m_ViewPart[1], DT_CENTER | DT_VCENTER | DT_SINGLELINE);
m_nWinner = 2;

break;

case BU:

dc.DrawText(_T("\u5e03"), &m_ViewPart[1], DT_CENTER | DT_VCENTER | DT_SINGLELINE);
m_nWinner = 0;

break;
}
break;
}

switch(m_nWinner){

case 0:
MessageBox (_T("\u5e73\u5c40"), _T("Result"));
Invalidate();
break;
case 1:
MessageBox (_T("\u7535\u8111\u80dc"), _T("Result"));
Invalidate();
break;
case 2:
MessageBox (_T("\u73a9\u5bb6\u80dc"), _T("Result"));
Invalidate();
break;

}

}


int CMainWindow::GetIndex(CPoint &point)
{
register int i;
for (i = 0; i < 3; i++)
if (m_Buttons[i].PtInRect(point))
return i;

return -1;
}

#include
#include
#include
int main()
{
int a,b,i,s,s1;
i=1;
s=0;
s1=0;
srand((unsigned)time(NULL));
printf("\u731c\u62f3\u6e38\u620f\n0\u77f3\u59341\u526a\u52002\u5e03\n***********\n");
printf("\u89c4\u5219:\u5171\u67095\u5c40");
printf("\u8bf7\n\u51fa\n\u62f3\n..\n");
do
{
scanf("%d",&b);
a=rand()%3;
if(a==0&&b==0)
{printf("\u7535\u8111\u51fa\u7684\u662f\u62f3\u5934\uff0c\u60a8\u51fa\u7684\u662f\u62f3\u5934\uff0c\u5e73\n");s=s+0;}
else if(a==0&&b==1)
printf("\u7535\u8111\u51fa\u7684\u662f\u62f3\u5934\uff0c\u60a8\u51fa\u7684\u662f\u526a\u5200\uff0c\u8d1f\n");
else if(a==0&&b==2)
{printf("\u7535\u8111\u51fa\u7684\u662f\u62f3\u5934\uff0c\u60a8\u51fa\u7684\u662f\u5e03\uff0c\u8d62\n");s=s+1;}
else if(a==1&&b==0)
{printf("\u7535\u8111\u51fa\u7684\u662f\u526a\u5200\uff0c\u60a8\u51fa\u7684\u662f\u77f3\u5934\uff0c\u8d62\n");s=s+1;}
else if(a==1&&b==1)
{printf("\u7535\u8111\u51fa\u7684\u662f\u526a\u5200\uff0c\u60a8\u51fa\u7684\u662f\u526a\u5200\uff0c\u5e73\n");s=s+0;}
else if(a==1&&b==2)
printf("\u7535\u8111\u51fa\u7684\u662f\u526a\u5200\uff0c\u60a8\u51fa\u7684\u662f\u5e03\uff0c\u8d1f\n");
else if(a==2&&b==0)
printf("\u7535\u8111\u51fa\u7684\u662f\u5e03\uff0c\u60a8\u51fa\u7684\u662f\u77f3\u5934\uff0c\u8d1f\n");
else if(a==2&&b==1)
{printf("\u7535\u8111\u51fa\u7684\u662f\u5e03\uff0c\u60a8\u51fa\u7684\u662f\u526a\u5200\uff0c\u8d62\n");s=s+1;}
else if(a==2&&b==2)
{printf("\u7535\u8111\u51fa\u7684\u662f\u5e03,\u60a8\u51fa\u7684\u662f\u5e03\uff0c\u5e73\n");s=s+0;}
else
{printf("\u5b58\u5728\u9519\u8bef\n");s=s+0;}
}while(i++>5);
printf("\n\u60a8\u7684\u5f97\u5206\u4e3a:%d\u5206\n",s);
if(s>2)
printf("\u60a8\u8d62\u4e86");
else
printf("\u60a8\u8f93\u4e86");
return 0;
}
\u4f30\u8ba1\u8fd9\u6837\u5c31\u8fbe\u5230\u4f60\u7684\u76ee\u7684\u4e86

这是一个简单的猜拳游戏(剪子包子锤),让你与电脑对决。你出的拳头由你自己决定,电脑则随机出拳,最后判断胜负。
下面的代码会实现一个猜拳游戏,让你与电脑对决。你出的拳头由你自己决定,电脑则随机出拳,最后判断胜负。
启动程序后,让用户出拳,截图:

用户出拳,显示对决结果:截图:

代码实现:
#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: //A
case 97: //a
gamer=4;
break;
case 66: //B
case 98: //b
gamer=7;
break;
case 67: //C
case 99: //c
gamer=10;
break;
case 68: //D
case 100: //d
return 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 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);

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
#include<time.h>
char s[3][10] = {"石头","剪刀","布"};
int main()
{
int a,b,i;
char ok[10];
srand(time(0));
while(1) {
int sheng = 0,fu = 0,ping = 0;
printf("游戏说明 : 1 代表石头  2  代表剪刀  3 代表布
");
for(i=0;i<5;i++) {
printf("【第%d局】
请出拳:",i+1);
scanf("%d",&a);
b = rand()%3+1;
printf("这一局您出的【%s】,电脑出的【%s】,",s[a-1],s[b-1]);
if(a==b) {
printf("平局!
");//请根据需要自行修改输出内容
ping ++;
}
else if(a - b%3 == 1){
sheng++;
printf("您赢了
");//请根据需要自行修改输出内容
}
else {
fu ++;
printf("您输了
");//请根据需要自行修改输出内容
}


}
printf("【猜拳结果】:");
if(sheng>fu) printf("您赢了!
");
else if(sheng == fu) printf("平局
");
else printf("您输了
");
printf("*************************************************
");
printf("您的战绩:%d胜 %d负 %d平
",sheng,fu,ping);
printf("电脑的战绩:%d胜 %d负 %d平
",fu,sheng,ping);
printf("*************************************************
");
if(sheng>fu) printf("您这次运气不错!");
else printf("您这次运气一般。");
printf("需要再来一次么(y/n)?
");
scanf("%s",ok);
if(ok[0] == 'n' || ok[0] == 'N') break;


}
printf("谢谢使用,祝您生活愉快!
");
return 0;

}


扩展阅读:elevatorgirt游戏下载 ... 恶魔的呼唤lovecraft1.7 ... milk gallery像素游戏 ... drainmansion像素安卓 ... 打女生小游戏 ... maxtoa for 3ds max ... 免费小游戏代码 ... 可以玩游戏的代码 ... 100个小游戏代码 ...

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