用c语言编写猜拳程序,[用c语言编写小游戏]用C# Winform写个猜拳小游戏

篇一 : 用C# Winform写个猜拳小游戏

简介

猜拳游戏,也叫划拳游戏. 顾名思义就是: 2个人在一起划拳,比谁赢,比谁输. 这里的猜拳游戏是人和电脑之间的较量.

原理

原理很简单, 给人3个值(字符串): 剪刀 石头 布. 电脑的出拳用的随机的Random函数得到整型值,然后将其转换成相应的字符串 用于显示在窗体界面上.同时再写一个方法将字符串(剪刀 石头 布)转成成相应的整型值. 写一个裁判的方法 将两者的整型值进行比较,得出输,赢,平局的结果.

界面设计(如图)

126707_0.jpg

代码:

public FingerGuessingGame()

{

InitializeComponent();

//注册各个按钮的鼠标单击事件

this.btnJiandao.Click += (s, e) => { Jiandao(); };

this.btnShitou.Click += (s, e) => { Shitou(); };

this.btnBu.Click += (s, e) => { Bu(); };

}

///

/// 玩家出剪刀

///

public void Jiandao()

{

//将玩家单击按钮的内容显示在玩家出了的label框中

lblPlayer.Text = btnJiandao.Text;

//获取label框中的内容并转换成整数

int vPlayer = ChangeStrToInt(lblPlayer.Text);

//调用裁判的方法 将玩家和电脑的数据进行对比 并显示在结果框中

lblResult.Text = Judge(vPlayer, PC());

}

///

/// 玩家出石头

///

public void Shitou()

{

lblPlayer.Text = btnShitou.Text;

int vPlayer = ChangeStrToInt(btnShitou.Text);

lblResult.Text = Judge(vPlayer, PC());

}

///

/// 玩家出布

///

public void Bu()

{

lblPlayer.Text = btnBu.Text;

int vPlayer = ChangeStrToInt(btnBu.Text);

lblResult.Text = Judge(vPlayer, PC());

}

///

/// 写一个将鼠标点击事件 将字符串转换成相应数值的方法

///

/// 玩家点击的按钮内容

/// 按钮相对应的整数值

public int ChangeStrToInt(string str)

{

int n = 0;

//对传入的字符串进行判断

switch (str)

{

case "剪刀":

n = 1;

break;

case "石头":

n = 2;

break;

case "布":

n = 3;

break;

default:

throw new Exception("未知出法");

}

return n;

}

///

/// 写一个电脑随机出拳的方法

///

/// 电脑的出拳值

public int PC()

{

Random ran = new Random();

//random.Next方法 取最小值,但不取最大值, 所以在1-3内随机取值

int vPC = ran.Next(1, 4);

string strPC = string.Empty;

//进行简单判定 获取的随机值 同时转换成相应的字符串

switch (vPC)

{

case 1:

strPC = "剪刀";

break;

case 2:

strPC = "石头";

break;

case 3:

strPC = "布";

break;

default:

throw new Exception("未知错误:无法判断玩家出的拳!");

}

lblPC.Text = strPC;//显示电脑出的拳

return vPC;

}

///

/// 比较玩家和电脑的值 判断谁赢谁输

///

/// 玩家的出拳值

/// 电脑的出拳值

public string Judge(int Player, int PC)

{

//剪刀1 石头2 布3

//赢的情况有2种 1种是 玩家比电脑值大1 一种是小2

int tmp = Player - PC;

string judgedResult = string.Empty;

if (tmp == 1 || tmp == -2)

judgedResult = "你赢了";

//平的情况只有1种 即为出拳相同

else if (tmp == 0)

judgedResult = "平局";

//除此之外 只有输的情况了

else

judgedResult = "你输了";

return judgedResult;

}效果测试:

126707_1.jpg

126707_2.jpg

126707_3.jpg

这样一个猜拳小游戏就做好了!~~~:)

篇二 : 用c语言编一个小游戏

用c语言编一个小游戏

#include "stdio.h"

#include "graphics.h"

#include "conio.h"

#include "stdlib.h"

#include "math.h"

void initgr(void){

int gd=DETECT,gm;

registerbgidriver(EGAVGA_driver);

initgraph(&gd,&gm,"");

}

int x1=200,y1=100;

char accept,*p,*q;

int *you;

void turn_right(char accept);

void turn_left(char accept) ;

void turn_down(char accept) ;

void change();

void main()

{

int i;

int polygon1[18],polygon2[18],polygon3[18],polygon4[18];

/*第一方块*/

polygon1[0]=x1;

polygon1[1]=y1;

polygon1[2]=x1+30;

polygon1[3]=y1;

polygon1[4]=x1+30;

polygon1[5]=y1+10;

polygon1[6]=x1+20;

polygon1[7]=y1+10;

polygon1[8]=x1+20;

polygon1[9]=y1+20;

polygon1[10]=x1+10;

polygon1[11]=y1+20;

polygon1[12]=x1+10;

polygon1[13]=y1+10;

polygon1[14]=x1;

polygon1[15]=y1+10;

polygon1[16]=x1;

polygon1[17]=y1;

/*第二方块*/

polygon2[0]=x1+10;

polygon2[1]=y1;

polygon2[2]=x1+20;

polygon2[3]=y1;

polygon2[4]=x1+20;

polygon2[5]=y1+30;

polygon2[6]=x1+10;

polygon2[7]=y1+30;

polygon2[8]=x1+10;

polygon2[9]=y1+20;

polygon2[10]=x1;

polygon2[11]=y1+20;

polygon2[12]=x1;

polygon2[13]=y1+10;

polygon2[14]=x1+10;

polygon2[15]=y1+10;

polygon2[16]=x1+10;

polygon2[17]=y1;

you=polygon2;

initgr();

/*设置方块*/

setcolor(RED);

setbkcolor(8);

setfillstyle(1,RED);

drawpoly(9,polygon2);

floodfill(x1+14,y1+14,RED);

setcolor(14);

drawpoly(9,polygon2);

/*把方块信息载入*/

p=malloc(imagesize(x1,y1,x1+30,y1+20)); /*enter=13*/

getimage(x1,y1,x1+30,y1+30,p);

/*接受字符判断和实现方块的具体移动*/

accept=getch();

while(accept!='*'){

if(accept=='d'||accept=='D')

turn_right(accept);

else if(accept=='a'||accept=='A')

turn_left(accept);

else if(accept=='s'||accept=='S')

turn_down(accept);

accept=getch();

/* if(accept==13) change(); */

}

/*结束函数*/

closegraph();

}

void turn_right(char accept) /*把方块向右移动*/

{

while(accept=='d'||accept=='D'){

putimage(x1,y1,p,1);

x1+=10;

putimage(x1,y1,p,1);

accept=getch();

/* if(accept==13) change(); */

delay(100000000000000000000000000);

}

}

void turn_left(char accept) /*把方块向左移动*/

{

while(accept=='a'||accept=='A'){

putimage(x1,y1,p,1);

x1-=10;

putimage(x1,y1,p,1);

accept=getch();

/* if(accept==13) change(); */

delay(100000000000000000000000000);

}

}

void turn_down(char accept) /*把方块向下移动*/

{

while(accept=='s'||accept=='S'){

putimage(x1,y1,p,1);

y1+=3;

putimage(x1,y1,p,1);

accept=getch();

/* if(accept==13) change(); */

delay(1000000);

}

}

/*void change()

{

setcolor(8);

setfillstyle(1,8);

rectangle(x1,y1,x1+30,y1+30);

floodfill(x1+15,y1+15,8);

setcolor(RED);

setbkcolor(8);

setfillstyle(1,RED);

drawpoly(9,you);

floodfill(x1+14,y1+14,RED);

setcolor(14);

drawpoly(9,you);

p=malloc(imagesize(x1,y1,x1+30,y1+20));

getimage(x1,y1,x1+30,y1+30,p);

}

*/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值