战士类代码:

class Fight
{
String name;
int attack, speed, crit, armor;// 生命、攻击力,攻速,暴击,护甲
public int life;
public Form1 main_Form;
public void set_MainForm(Form1 x)
{
main_Form = x;
} public void set_Fight(String a, int a1, int a2, int a3, int a4, int a5)//可改为构造函数
{
name = a;
life = a1;
attack = a2;
speed = a3;
crit = a4;
armor = a5;
} public void attack_Sb(Fight x)
{
int send_attack;
Random r1 = new Random();
if (r1.Next(100) <= crit)
{
send_attack = attack * speed * 2;
}
else
{
send_attack = attack * speed;
}
main_Form.set_Text(name + "发出攻击:" + send_attack);
x.be_Attack(send_attack);
} public void be_Attack(int x)
{
life = (int)(life - x * 100.0 / (100 + armor));
show_Me();
}
void show_Me()
{
main_Form.set_Text(name + ",life:" + life);
}
}

  窗体调用代码:

private void button1_Click(object sender, EventArgs e)
{
Fight shoot, soldier;
shoot = new Fight();
soldier = new Fight();
shoot.set_MainForm(this);
soldier.set_MainForm(this);
shoot.set_Fight("射手", 300, 75, 2, 10, 30);
soldier.set_Fight("战士", 500, 90, 1, 20, 45);
textBox1.Text = "";
while (true)
{
shoot.attack_Sb(soldier);
if (soldier.life <= 0)
{
break;
}
soldier.attack_Sb(shoot);
if (shoot.life <= 0)
{
break;
}
set_Text("------------");
}
}
public void set_Text(string s)
{
textBox1.Text += "\r\n" + s;
}

  

类例程_c#战斗程序(窗体版)的更多相关文章

  1. 类例程_java战斗程序

    代码如下: package t11; import java.util.Random; public class Fight { String name; int life, attack, spee ...

  2. C#通过WIN32 API实现嵌入程序窗体

    本文实例讲述了C#通过WIN32 API实现嵌入程序窗体的方法,分享给大家供大家参考.具体如下: 这是一个不使用COM,而是通过WIN32 API实现的示例, 它把写字板程序嵌在了自己的一个面板中. ...

  3. Android应用程序窗体设计框架介绍

    在Android系统中,一个Activity相应一个应用程序窗体.不论什么一个Activity的启动都是由AMS服务和应用程序进程相互配合来完毕的.AMS服务统一调度系统中全部进程的Activity启 ...

  4. Android应用程序窗体View的创建过程

    View类是android中非常重要的一个类.view是应用程序界面的直观体现,我们看到的应用程序界面就能够看作是View(视图)组成的. 那么我们应用程序的界面是怎么创建的呢,也就是应用程序的Vie ...

  5. J2msi 自己制作的把exe打成安装包简易GUI程序(第二版 带DLL注册)

    J2msi 自己制作的把exe打成安装包简易GUI程序(第二版 带DLL注册) 之前那一版本(http://www.cnblogs.com/rojas/p/4794684.html)没考虑 DLL 注 ...

  6. chrome常用扩展程序汇总(程序员版)

    chrome常用扩展程序之程序员版 1.chrome扩展程序 Chrome插件是一个由Web技术开发.用来增强浏览器功能的小程序,其实就是一个由HTML.CSS.JS.图片等静态资源组成的一个.crx ...

  7. 数独求解程序 php版

    数独求解程序 php版 <?php class Sudoku { var $matrix; function __construct($arr = null) { if ($arr == nul ...

  8. 微信小程序横版日历,tab栏

    代码地址如下:http://www.demodashi.com/demo/14243.html 一.前期准备工作 软件环境:微信开发者工具 官方下载地址:https://mp.weixin.qq.co ...

  9. ROS Learning-015 learning_tf(编程) 编写一个监听器程序 (Python版)

    ROS Indigo learning_tf-02 编写一个 监听器 程序 (Python版) 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 1 ...

随机推荐

  1. Bash Shell中的特殊位置变量及其应用

    Bash Shell中的特殊位置变量及其应用 众所周知bash shell中有许多特殊的位置变量,灵活使用它们可以更好地发挥Shell脚本的功用. 即位置变量:$1,$2,...来表示,用于让脚本在脚 ...

  2. windows 桌面文件变成.link解决方案

    在注册表中右键删除下面这个注册表项: HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\.ln ...

  3. vmware虚拟机安装T6客户端

    1.虚拟机安装T6 经过测试,vmware 里系统装T6  网络适配器必须使用桥接,nat模式是无法连接数据库的

  4. linux常见性能分析工具

     vmstat    sar  (来源于sysstat工具包,需要yum  sysstat)iostat  (来源于sysstat工具包,需要yum  sysstat)free  -muptimene ...

  5. python 解决粘包问题的例子(ftp文件的上传与下载)简单版本

    服务端 ! /user/bin/env python3 -- coding:utf_8 -- """ Author:Markli # 2019/9/9,16:41 &qu ...

  6. Winform 弹框增加确定按钮并点击确定后进行下一步操作

    //审核完毕后调用打印 MessageBoxButtons messButton = MessageBoxButtons.OKCancel; DialogResult dr = MsgBox.Show ...

  7. [RN] React Native 使用 图片预览和放大 插件 react-native-image-zoom-viewer 过程中,放大报错问题

    React Native 使用 图片预览和放大 插件 react-native-image-zoom-viewer 过程中,放大报错问题 报错如下: Cannot record touch end w ...

  8. SpringBoot之邮件服务

    springboot 邮件服务 今天在看网上学习微服务的时候顺遍看到了一些关于springboot的文章,写的springboot拓展功能就顺遍学习了一下,接下来给大家分享一下springboot封装 ...

  9. React创建组件的方法,组件的props属性、state属性的用法和特点,父子组件传值,兄弟组件传值

    创建组件的方法,组件的props属性.state属性的用法和特点,父子组件传值,兄弟组件传值 1.react组件 1.1.创建组件的方法 1.1.1.函数组件 定义一个组件最简单的方式是使用JavaS ...

  10. 日常运维--rsync同步工具

    rsync命令是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件.rsync使用所谓的“rsync算法”来使本地和远程两个主机之间的文件达到同步,这个算法只传送两个文件的不同部分,而 ...