我的想法是:把所有备选答案当做正确答案和猜的数字对比,如果得出XAXB和给出的XAXB相同则保留

代码

        int a = ;
int b = ;
List<string> number = new List<string>(); private void button1_Click(object sender, EventArgs e)
{
if (textBox2.Text == "")
{
return;
}
if (button1.Text == "重置")
{
init();
return;
}
try
{
string[] state = textBox2.Text.Split('.');
a = Int32.Parse(state[]);
b = Int32.Parse(state[]);
if (a + b > || a < || b < )
{
return;
}
if (a == )
{
button1.Text = "重置";
return;
} for (int i = number.Count - ; i >= ; i--)
{
if (check(number[i], number[], a, b))
{
continue;
}
number.RemoveAt(i);
} richTextBox1.Text = "";
for (int i = ; i < number.Count; i++)
{
richTextBox1.Text += number[i] + "\n";
}
textBox2.Text = "";
textBox1.Text = number[];
}
catch
{
return;
}
} private void Form1_Load(object sender, EventArgs e)
{
init();
} private void init()
{
a = ;
b = ;
button1.Text = "确定";
number.Clear();
textBox1.Text = "";
textBox2.Text = "";
richTextBox1.Text = "";
for (int aa = ; aa < ; aa++)
{
for (int bb = ; bb < ; bb++)
{
if (bb == aa) continue;
for (int cc = ; cc < ; cc++)
{
if (cc == aa || cc == bb) continue;
for (int dd = ; dd < ; dd++)
{
if (dd == aa || dd == bb || dd == cc) continue;
number.Add(aa + "," + bb + "," + cc + "," + dd);
}
}
}
}
textBox1.Text = number[];
} private bool check(string num, string guess, int a, int b)
{
int a1 = ;
int b1 = ;
string[] nums = num.Split(',');
string[] guesss = guess.Split(',');
for (int i = ; i < nums.Length; i++)
{
for (int j = ; j < guesss.Length; j++)
{
if (nums[i] == guesss[j])
{
if (i == j)
{
a1++;
}
else
{
b1++;
}
}
}
}
if (a == a1 && b == b1)
{
return true;
}
else
{
return false;
}
} private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == (char)Keys.Enter)
{
button1.PerformClick();
}
}

展现页面

解猜数字(XAXB)的更多相关文章

  1. 详解 leetcode 猜数字大小 II

    375. 猜数字大小 II 原题链接375. 猜数字大小 II 题目下方给出了几个提示: 游戏的最佳策略是减少最大损失,这引出了 Minimax 算法,见这里,和这里 使用较小的数开始(例如3),看看 ...

  2. 猜数字游戏 在控制台运行--java详解!了;来玩

    import java.util.Scanner;//导入包 import java.util.Scanner; 注意格式 符号的使用 public class Demo{ //猜数字游戏 练习 pu ...

  3. 不一样的猜数字游戏 — leetcode 375. Guess Number Higher or Lower II

    好久没切 leetcode 的题了,静下心来切了道,这道题比较有意思,和大家分享下. 我把它叫做 "不一样的猜数字游戏",我们先来看看传统的猜数字游戏,Guess Number H ...

  4. P3868 [TJOI2009]猜数字

    [TJOI2009]猜数字 中国剩余定理 求解i=1 to n : x≡a[i] (mod b[i])的同余方程组 设 t= ∏i=1 to n b[i] 我们先求出 i=1 to n : x≡1 ( ...

  5. hdu 1172 猜数字

    猜数字 Time Limit: 20000/10000 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Total Submi ...

  6. noip模拟赛 猜数字

    题目描述 LYK在玩猜数字游戏. 总共有n个互不相同的正整数,LYK每次猜一段区间的最小值.形如[li,ri]这段区间的数字的最小值一定等于xi. 我们总能构造出一种方案使得LYK满意.直到…… LY ...

  7. C语言猜数字游戏

    猜数字游戏,各式各样的实现方式,我这边提供一个实现方式,希望可以帮到新手. 老程序猿就不要看了,黑呵呵 源代码1 include stdio.h include stdlib.h include ti ...

  8. java 猜数字游戏

    作用:猜数字游戏.随机产生1个数字(1~10),大了.小了或者成功后给出提示. 语言:java 工具:eclipse 作者:潇洒鸿图 时间:2016.11.10 >>>>> ...

  9. 【原创Android游戏】--猜数字游戏Version 0.1

    想当年高中时经常和小伙伴在纸上或者黑板上或者学习机上玩猜数字的游戏,在当年那个手机等娱乐设备在我们那还不是很普遍的时候是很好的一个消遣的游戏,去年的时候便写了一个Android版的猜数字游戏,只是当时 ...

随机推荐

  1. NOI 2015 荷马史诗【BZOJ 4198】k叉Huffman树

    抱歉因为NOIP集训,好长时间没再写题解了. NOI 2015也就只有这道题一看就能懂了-- 4198: [Noi2015]荷马史诗 Time Limit: 10 Sec  Memory Limit: ...

  2. [小北De编程手记] : Lesson 03 玩转 xUnit.Net 之 Fixture(上)

    在使用xUnit.Net Framework构建单元测试或自动化测试项目的时候,无论是针对一些比较耗费资源的对象亦或是为了支持Test case预设数据的能力,我们都需要有一些初始化或是清理相关的动作 ...

  3. Python自动化测试工具Splinter简介和使用实例

    Splinter 快速介绍 官方网站:http://splinter.cobrateam.info/ 官方介绍: Splinter is an open source tool for testing ...

  4. Java Selenium封装--RemoteWebDriver

    package com.selenium.driver; import java.io.File; import java.io.IOException; import java.net.URL; i ...

  5. c# tabcontrol事件以及上下文菜单

    今天在搞中间件的客户端管理工具时,遇到需要管理tabcontrol子页的问题,希望在右击标签页是弹出关闭.关闭其他的提示框,如下所示: 可通过增加一个ContextMenuStrip,并在tabCon ...

  6. 用事实说话,成熟的ORM性能不是瓶颈,灵活性不是问题:EF5.0、PDF.NET5.0、Dapper原理分析与测试手记

    [本文篇幅较长,可以通过目录查看您感兴趣的内容,或者下载格式良好的PDF版本文件查看] 目录 一.ORM的"三国志"    2 1,PDF.NET诞生历程    2 2,Linq2 ...

  7. Dropplets – 极简的 Markdown 博客平台

    Dropplets 是一个简单的博客平台,专注于提供正是你在博客解决方案中需要的.当涉及到基础的博客功能,你真正想要做的是写和发表,而这就是 Dropplets 的过人之处.Dropplets 是一个 ...

  8. go语言 类型:整型

    整型是所有编程语言里最基础的数据类型.

  9. 一款实用的viewer.js 图片相册

    Viewer.js 是一款强大的图片相册插件,像SNS交友网站一般都会用到点击缩略图,弹出层大图片,而且弹出层有多个控制按钮,比如放大缩小.旋转.撤回等,底部有缩略图列表可切换. 支持移动设备触摸事件 ...

  10. Android ANR产生的原理和如何避免

    在Android上,如果你的应用程序有一段时间响应不够灵敏,系统会向用户显示一个对话框,这个对话框称作应用程序无响应(ANR:Application Not Responding)对话框.用户可以选择 ...