Delphi 实现刘谦春晚魔术

这篇具有很好参考价值的文章主要介绍了Delphi 实现刘谦春晚魔术。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

看了博友的C# 实现刘谦春晚魔术很好,改成了delphi版的。 

  1 program Project1;
  2 
  3 {$APPTYPE CONSOLE}
  4 {$R *.res}
  5 
  6 uses
  7   System.SysUtils,
  8   System.Classes;
  9 
 10 var
 11   list, removeElement: TStringList;
 12   i, NameCount, insertIndex, directCount, sexCount: Integer;
 13   tmp, element, hiddenEle1, hiddenEle2: String;
 14 
 15 procedure Fun1(NameCount: Integer);
 16 begin
 17   if NameCount < list.Count then
 18   begin
 19     for i := 0 to NameCount - 1 do
 20     begin
 21       element := list[0]; // 获取第0个元素
 22       list.Delete(0); // 移除第0个元素
 23       list.Add(element); // 将第0个元素添加到最后
 24     end;
 25 
 26   end;
 27 end;
 28 
 29 procedure Fun2(forCount: Integer);
 30 begin
 31   // 被删除掉的三张牌
 32   removeElement := TStringList.Create;
 33   for i := 0 to forCount - 1 do
 34   begin
 35     removeElement.Add(list[0]);
 36     list.Delete(0);
 37   end;
 38   Writeln(Format('被删除掉的%D张牌:%s', [forCount, removeElement.CommaText]));
 39   Writeln('删除之后:' + list.CommaText);
 40 
 41   // 把拿到的三张牌插到中间
 42   Randomize;
 43   insertIndex := Random(list.Count - 1) + 1; // 生成一个介于第一个和倒数第二个位置之间的随机插入位置
 44   Writeln('插入位置:' + insertIndex.ToString);
 45   for i := removeElement.Count - 1 downto 0 do
 46   begin
 47     list.Insert(insertIndex, removeElement[i]);
 48   end;
 49 
 50 end;
 51 
 52 procedure Fun3();
 53 begin
 54   // 藏起来第一张牌
 55   hiddenEle1 := list.Strings[0];
 56   list.Delete(0);
 57 end;
 58 
 59 procedure Fun4(Count: Integer);
 60 begin
 61   for i := 0 to Count - 1 do
 62   begin
 63     list.Delete(0);
 64   end
 65 end;
 66 
 67 procedure Fun5();
 68 begin
 69   for i := 0 to 6 do
 70   begin
 71     element := list[0];
 72     list.Delete(0);
 73     list.Add(element);
 74   end;
 75 end;
 76 
 77 function Fun6(sexCount: Integer): string;
 78 var
 79   forCount: Integer;
 80 begin
 81   forCount := 0;
 82   if sexCount = 1 then
 83     forCount := 5 // 男生要5次
 84   else
 85     forCount := 4;
 86   for i := 0 to forCount - 1 do
 87   begin
 88     // 把第一张牌放到数组最后面 (好运留下来)
 89     element := list[0];
 90     list.Delete(0);
 91     list.Add(element);
 92 
 93     // 烦恼丢出去
 94     list.Delete(0);
 95   end;
 96   result := list[0];
 97 end;
 98 
 99 begin
100   try
101     try
102       list := TStringList.Create;
103       list.CommaText := 'A,B,C,D,A,B,C,D';
104       Writeln('初始牌组:' + list.CommaText);
105       Writeln('请输入你的名字有几个字:');
106       ReadLn(tmp);
107       NameCount := tmp.ToInteger;
108 
109       Fun1(NameCount);
110       Writeln('变化之后:' + list.CommaText);
111 
112       Fun2(3);
113       Writeln('插入三张牌后:' + list.CommaText);
114       Fun3();
115       Writeln('藏起来第一张牌后:' + list.CommaText);
116 
117       Writeln('北方-1 南方-2 不南不北-3,请输入对应数字:');
118       ReadLn(tmp);
119       directCount := tmp.ToInteger;
120       Fun2(directCount);
121       Writeln('南北方人后:' + list.CommaText);
122 
123       Writeln('男-1 女-2,请输入对应数字:');
124       ReadLn(tmp);
125       sexCount := tmp.ToInteger;
126       Fun4(sexCount);
127       Writeln('男女生后:' + list.CommaText);
128 
129       Fun5();
130 
131       Writeln('见证奇迹后:' + list.CommaText);
132 
133       Writeln('开始好运留下了 烦恼丢出去');
134       hiddenEle2 := Fun6(sexCount);
135       Writeln(Format('牌1:%s  牌2:%s', [hiddenEle1, hiddenEle2]));
136 
137       ReadLn;
138     except
139       on E: Exception do
140         Writeln(E.ClassName, ': ', E.Message);
141     end;
142 
143   finally
144     removeElement.Free;
145     list.Free;
146 
147   end;
148 
149 end.

 文章来源地址https://www.toymoban.com/news/detail-832898.html

到了这里,关于Delphi 实现刘谦春晚魔术的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • DELPHI7实现XP菜单风格

    在DELPHI7中不使用任何第三方控件,实现放在工具栏上可拖动的XP风格菜单 今天有点空闲时间,顺便写点东西,不是什么深奥的东西,但实用,对于不想第三方控件但又想加点效果的朋友可能有点用.实现的效果如图:  步骤一:把Win32面板上把CoolBar组件加到窗体上 步骤二:把Additional面板

    2024年02月06日
    浏览(29)
  • 安卓底部导航栏几种实现方式,小白菜看了都说简单。

    在创建项目时可以选择Bottom Navigation Activity进行创建。这种方式最为简单。 创建后生成的目录结构还是比较清晰的。 主布局即Activity由BottomNavigationView和fragment 构成。 BottomNavigationView 用于呈现底部导航栏,fragment组件 用于显示每个导航栏对应的Fragment Activity中的代码就很魔性

    2023年04月08日
    浏览(37)
  • lazarus、delphi文件Http下载断点续传的实现

    下载大文件时,断点续传是很有必要的,特别是网速度慢且不稳定的情况下,很难保证不出意外,一旦意外中断,又要从头下载,会很让人抓狂。断点续传就能很好解决意外中断情况,再次下载时不需要从头下载,从上次中断处继续下载即可,这样下载几G或十几G大小的一个

    2024年02月13日
    浏览(39)
  • 春晚为什么失去了观众?

       ​春晚失去了观众,这是近年来不可忽视的现象。春晚作为中国的一项传统文化活动,曾经吸引了亿万观众的眼球,但如今却面临着越来越多的挑战和质疑。那么,春晚为什么失去了观众呢? 首先,随着时代的变迁,观众的口味和需求也在不断变化。过去,春晚的节目形

    2024年01月18日
    浏览(33)
  • 【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)

    👉博__主👈:米码收割机 👉技__能👈:C++/Python语言 👉公众号👈:测试开发自动化【获取源码+商业合作】 👉荣__誉👈:阿里云博客专家博主、51CTO技术博主 👉专__注👈:专注主流机器人、人工智能等相关领域的开发、测试技术。 官网下载SWIG并解压。官网[传送门] 将SW

    2024年02月07日
    浏览(37)
  • 怎么用PS的魔术棒抠图?PS魔术棒抠图的操作方法

    使用PS的魔术棒抠图教程: 1、首先,在ps界面上方点击“文件”选项,再在其弹出的选项栏中选择“打开”选项。然后,打开你所需要的图片。 2、然后,单击左侧的“魔术棒”工具。 3、然后,用鼠标点击图片的背景,这时候就能看到包裹的蚂蚁线了。 4、然后单击鼠标右键

    2024年02月13日
    浏览(25)
  • 12 Php学习:魔术常量

    PHP 向它运行的任何脚本提供了大量的预定义常量。 不过很多常量都是由不同的扩展库定义的,只有在加载了这些扩展库时才会出现,或者动态加载后,或者在编译时已经包括进去了。 有八个魔术常量它们的值随着它们在代码中的位置改变而改变。 ​​__LINE__​:当前行号,

    2024年04月14日
    浏览(30)
  • Python魔术方法

    Python实用教程_spiritx的博客-CSDN博客 所有以双下划线 __ 包起来的方法,统称为 Magic Method(魔术方法) ,它是一种的特殊方法,普通方法需要调用,而魔术方法不需要 显示 调用就可以执行。 魔术方法在类或对象的某些事件出发后会自动执行,让类具有神奇的“魔力”。如果

    2024年02月10日
    浏览(34)
  • Python中魔术方法汇总

    1. Python中魔术方法的定义 Python的魔术方法(Magic Methods)是面向对象编程中一系列特殊的方法,它们以双下划线 __ 开始和结束。这些方法允许类定义特定的行为或响应特定的操作。以下是一份详细的魔术方法列表及其用途并附带部分常用魔术方法的Python代码实例说明: 2. 魔术

    2024年01月17日
    浏览(27)
  • 组合,反射,魔术方法

    组合 反射 魔术方法

    2024年02月08日
    浏览(29)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包