小游戏●两人对战

利用结构体编写的两人对战小游戏,代码及简要分析如下

 1         public struct Fighter
 2         {
 3             public string name;
 4             public int blood;
 5             public int attack;
 6             public int defense;
 7             public int hit;
 8             public int hide;
 9         }
10
11
12         static void Main(string[] arge)
13         {
14
15             //定义一组对手
16             Fighter f1 = new Fighter();
17             Fighter f2 = new Fighter();
18             Console.Write("第一位:");
19             f1.name = Console.ReadLine();
20             Console.Write("第二位:");
21             f2.name = Console.ReadLine();
22
23
24             //利用名字的前两个字,创建随机数生成器
25             int r1 = (int)Convert.ToChar(f1.name.Substring(0, 1)) + (int)Convert.ToChar(f1.name.Substring(1, 1));
26             int r2 = (int)Convert.ToChar(f2.name.Substring(0, 1)) + (int)Convert.ToChar(f2.name.Substring(1, 1));
27             Random rand1 = new Random(r1);
28             Random rand2 = new Random(r2);
29
30             f1.blood = 100;    //对战双方初始血量都为100
31             f2.blood = 100;
32
33             for (int i = 1; (f1.blood > 0 && f2.blood > 0); i++)
34             {
35                 //利用各自创建的随机数生成器赋值攻击力、防御力、命中、躲避
36                 System.Threading.Thread.Sleep(2000);
37                 f1.attack = rand1.Next(30);
38                 f1.defense = rand1.Next(10);
39                 f1.hit = rand1.Next(100);
40                 f1.hide = rand1.Next(100);
41
42                 f2.attack = rand2.Next(30);
43                 f2.defense = rand2.Next(10);
44                 f2.hit = rand2.Next(100);
45                 f2.hide = rand2.Next(100);
46
47                 if (f1.hit <= 95 && f2.hide <= 95)    //都设95%命中,5%躲避,判断是否命中
48                 {
49                     Console.WriteLine(f1.name + "发起攻击……");
50                     if (f1.attack > f2.defense)    //判断2号本次防御力是否高于1号攻击力
51                     {
52                         f2.blood = f2.blood - f1.attack + f2.defense;
53                         Console.WriteLine("{0}被打掉了{1}血!", f2.name, (f1.attack - f2.defense));
54                     }
55                     else
56                         Console.WriteLine(f2.name + "挡住了攻击!");
57                     if (f2.blood <= 0)    //假如2号血量掉到0,游戏结束
58                     {
59                         break;
60                     }
61                 }
62                 else if (f1.hit <= 95 && f2.hide > 95)    //判断1号攻击未失误时,2号是否躲避
63                 {
64                     Console.WriteLine(f2.name + "躲开了攻击!");
65                 }
66                 else
67                     Console.WriteLine(f1.name + "攻击失误!");
68
69                 if (f2.hit <= 95 && f1.hide <= 95)    //都设95%命中,5%躲避
70                 {
71                     Console.WriteLine(f2.name + "发起攻击……");
72                     if (f2.attack > f1.defense)
73                     {
74                         f1.blood = f1.blood - f2.attack + f1.defense;
75                         Console.WriteLine("{0}被打掉了{1}血!", f1.name, (f2.attack - f1.defense));
76                     }
77                     else
78                         Console.WriteLine(f1.name + "挡住了攻击!");
79                     if (f1.blood <= 0)
80                     {
81                         break;
82                     }
83                 }
84                 else if (f2.hit <= 95 && f1.hide > 95)
85                 {
86                     Console.WriteLine(f1.name + "躲开了攻击!");
87                 }
88                 else
89                     Console.WriteLine(f1.name + "攻击失误!");
90                 Console.WriteLine("{0}剩余血量{1},{2}剩余血量{3}",    //每回合结束,显示双方剩余血量
91                     f1.name, (f1.blood <= 0 ? 0 : f1.blood),
92                     f2.name, (f2.blood <= 0 ? 0 : f2.blood) + "\n");
93
94             }
95             Console.WriteLine("{0}剩余血量{1},{2}剩余血量{3}",    //游戏结束,显示双方剩余血量
96                     f1.name, (f1.blood <= 0 ? 0 : f1.blood),
97                     f2.name, (f2.blood <= 0 ? 0 : f2.blood));
98
99         }

执行过程截图

时间: 2024-10-18 00:19:15

小游戏●两人对战的相关文章

介绍一款Android小游戏--交互式人机对战五子棋

文章转载至CSDN社区罗升阳的安卓之旅,原文地址:http://blog.csdn.net/luoshengyang/article/details/6589025 学习Android系统开发之余,编写了一个小游戏--交互式人机对战五子棋,自娱自乐.之所以称之为交互式人机对战五子棋,一是因为在进入人机对战模式这前,你可以任意设置好开局,同时,在对战过程中,你可以看到机器的思考过程,还可以标识出每一个落子点的优劣势:二是因为可以为机器增加游戏经验,使得机器越来越聪明.希望喜欢五子棋的同学能够喜欢,

小游戏二之---------------五子棋

1.五子棋是一比较容易写的小游戏,很适合用来练手,作为练手,不必弄太复杂,所以就不弄电脑AI了,只是玩家之间的对战(AI下次再写). 2.五子棋的难点在于如何判断输赢,其实很简单.每次下棋,就判断该棋子的四个方向,横竖方向,还有两个对角线(分成四个部分,左上,左下,右上,右下)方向是否满足五个棋子. 3.用一个二维数组来表示棋盘(chessBoard[N][N]),值等于0,就表示该位置没有棋子,1表示该位置是玩家1的棋子,2则是玩家2的棋子. 4.运行结果如下: 代码如下(C++),有详细注释

两人五子棋

该五子棋通过服务器与客户端实现了两人对战的五子棋 两人五子棋

three.js-打造微信爆款小游戏跳一跳

第1章 课程介绍介绍了微信小游戏的概念以及相关的由来,从宏观上对于微信小游戏的定位和价值有一个明确的认识 1-1 导学介绍1-2 什么是微信小游戏1-3 微信小游戏与H5小游戏1-4 为什么要学习微信小游戏第2章 微信小游戏平台与特性讲了微信小游戏平台的相关特性,包括微信小游戏工程的建立,微信小游戏开发工具的详细使用,以及微信小游戏相关API的实战等 2-1 微信开发者工具介绍2-2 小游戏项目工程初始模板建立2-3 微信开发者工具(模拟器介绍)2-4 微信开发者工具(编辑器介绍)2-5 微信开

借助实时数据推送快速制作在线对战五子棋小游戏丨实战

1 项目概述 游戏开发,尤其是微信小游戏开发,是最近几年比较热门的话题. 本次「云开发」公开课,将通过实战「在线对战五子棋」,一步步带领大家,在不借助后端的情况下,利用「小程序 ? 云开发」,独立完成一款微信小游戏的开发与上线. 2 任务目标 根据项目初始框架,阅读教程的同时,逐步完成棋盘绘制.音乐播放.玩家对战.输赢判定等功能,最终实现一个可以快乐玩耍的在线对战五子棋. 在这个过程中,会了解到 Serverless 的一些概念,并且实际应用它们,比如:云数据库.云存储.云函数.增值能力.除了这

两人项目---打飞机的游戏

成员:081李国松 055张倩 1.结对题目:关于打飞机的设想 需求分析:游戏是一个娱乐的方式,随着电子设备的普及,游戏已经占领着人们的大量的时间.本小组决定开发一个打飞机的小游戏,由JAVA语言写成,利用键盘操作,操作简单,游戏机制简单. 2.代码截图及合影 具体代码地址:http://github.com/lgspath/- 3.约定的规范 操作界面继承frame,由于时间有限,子弹判定采用方形判定,飞机判定采用方形判定,子弹弹射机制采用镜面反射机制. 4.记录时间 选题讨论:10% 设计思

两个Canvas小游戏

或许连小游戏都算不上,可以叫做mini游戏. 没有任何框架或者稍微有点深度的东西,所以有js基础的或者要追求炫酷效果的可以直接ctrl+w了. 先贴出两个游戏的试玩地址: 是男人就走30步 是男人就忍30秒 基础 接下来简单说说怎样开发这样的基础游戏. 首先你要懂得canvas上的基本api,可以参考w3cschool:如果你喜欢e文,也可以参考岑安推荐的HTML5 Canvas — the Basics 接着进入主流程,这样的canvas小游戏基本上都是基于每帧重绘,一般有下面这样的过程: 重

1、两人做游戏,轮流报数,报出的数只能是1、2、3、4、5、6、7、8其中之一,把两个人报出的数连加起来,谁报数后加起来的和是123,谁就获胜,让你先报,为了确保胜利,你第一个数报多少?

看到一道奥数题,如下 两人做游戏,轮流报数,报出的数只能是1.2.3.4.5.6.7.8其中之一,把两个人报出的数连加起来,谁报数后加起来的和是123,谁就获胜,让你先报,为了确保胜利,你第一个数报多少? 看了网上一些答案,觉得不太好理解,下面说说自己的解题思路. 首先用123去除9,得到商为13余数为6.   于是我们可以先报6然后让此后每一轮的大家报数的和为9. 这样可以保证最后一轮中对方无论报什么数都无法让总数到达123,因为到了最后一轮时,若用123去减此前所有报数之和肯定为9.这时,对

[OpenGL] 小游戏 - 太空对战

写的比较粗糙的一个小游戏,算是对游戏编程流程的一个入门认识. OpenGL中,如何加载纹理,如何绘制透明纹理,如何显示文字,如何制作简单动画(画面刷新机制),如何使用键盘和鼠标回调函数,这些我们已经很熟悉了.当然,这些都是最基本的要求. 那么,如何实现游戏基本逻辑?一般而言,用oop的思想能够很好地完成这一点,我们给每类对象维护一些状态量和方法,每个对象可以通过下标索引访问到这些状态量,我们把代码分成两部分 -- 第一部分,当达到一个触发条件时,我们改变状态量的值:第二部分,根据状态量,我们绘制