using System;
using System.Collections .Generic ;
using System.ComponentModel ;
using System.Data ;
using System.Drawing ;
using System.Linq ;
using System.Net ;
using System.Text ;
using System.Text .RegularExpressions ;
using System.Threading .Tasks ;
using System.Windows .Forms ;
namespace ThreadMovement
{
public partial class Form1 : Form
{
List< List< string>> qu = new List< List< string>> ( ) ;
bool working = false ;
Point mp = new Point( - 1 , - 1 ) ;
public Form1( )
{
InitializeComponent( ) ;
}
private void Form1_Load( object sender, EventArgs e)
{
}
private async void timer1_Tick( object sender, EventArgs e)
{
if ( working) return ;
working = true ;
var url = "https://h...content-available-to-author-only...h.net/livejupiter/subject.txt" ;
byte[ ] data;
using ( var wc = new WebClient( ) )
{
data = await wc.DownloadDataTaskAsync ( new Uri( url) ) ;
}
var text = Encoding.GetEncoding ( "Shift-JIS" ) .GetString ( data) ;
var rawList = text.Trim ( ) .Split ( '\n ' ) ;
var list = rawList.Select ( line => WebUtility.HtmlDecode ( line.Split ( new[ ] { "<>" } , StringSplitOptions.None ) [ 1 ] .Split ( '\t ' ) [ 0 ] .Trim ( ) ) ) .ToList ( ) ;
list.RemoveRange ( list.Count - 3 , 3 ) ;
qu.Add ( list) ;
if ( qu.Count > 200 )
{
qu.RemoveAt ( 0 ) ;
}
working = false ;
PictureBox1.Invalidate ( ) ;
}
private void PictureBox1_MouseMove( object sender, MouseEventArgs e)
{
var p = e.Location ;
var yi = p.Y / 5 ;
var xi = p.X / 5 ;
label1.Text = xi + "," + yi;
if ( xi < qu.Count )
{
if ( yi < qu[ xi] .Count )
{
label1.Text = qu[ xi] [ yi] ;
}
else
{
label1.Text = "" ;
}
}
else
{
label1.Text = "" ;
}
mp = p;
PictureBox1.Invalidate ( ) ;
}
private void PictureBox1_MouseLeave( object sender, EventArgs e)
{
label1.BackColor = Color.Transparent ;
mp = new Point( - 1 , - 1 ) ;
PictureBox1.Invalidate ( ) ;
}
private void PictureBox1_MouseDown( object sender, MouseEventArgs e)
{
var p = e.Location ;
var yi = p.Y / 5 ;
var xi = p.X / 5 ;
label1.Text = xi + "," + yi;
if ( xi < qu.Count )
{
if ( yi < qu[ xi] .Count )
{
var text = " " + qu[ xi] [ yi] .Split ( new[ ] { ' ' , ' ' } , StringSplitOptions.RemoveEmptyEntries ) [ 0 ] ;
if ( textBox1.Text .Contains ( text) )
{
textBox1.Text = textBox1.Text .Replace ( text, "" ) ;
}
else
{
textBox1.Text += text;
}
}
}
}
private void PictureBox1_Paint( object sender, PaintEventArgs e)
{
e.Graphics .Clear ( Color.White ) ;
for ( var h = 0 ; h < qu.Count ; h++ )
{
for ( var i = 0 ; i < qu[ h] .Count ; i++ )
{
var title = qu[ h] [ i] ;
var sum = title.Aggregate ( 0 , ( _r, c) => c + _r) ;
var col = Color.FromArgb ( ( ( byte) ( sum * 1242135 ) ) , ( ( byte) ( sum * 3215125 ) ) , ( ( byte) ( sum * 12542 ) ) ) ;
if ( textBox1.Text != "" )
{
col = Color.FromArgb ( col.R / 2 , col.G / 2 , col.B / 2 ) ;
}
if ( textBox1.Text != "" && textBox1.Text .Split ( new[ ] { ' ' , ' ' } , StringSplitOptions.RemoveEmptyEntries ) .ToList ( ) .Any ( word => title.Contains ( word) ) )
{
col = Color.Gold ;
}
using ( var b = new SolidBrush( col) )
{
e.Graphics .FillRectangle ( b, h * 5 , i * 5 , 5 , 5 ) ;
}
}
}
e.Graphics .DrawLine ( Pens.Gray , 0 , mp.Y , PictureBox1.Width , mp.Y ) ;
e.Graphics .DrawLine ( Pens.Gray , mp.X , 0 , mp.X , PictureBox1.Height ) ;
}
}
}
dXNpbmcgU3lzdGVtOwp1c2luZyBTeXN0ZW0uQ29sbGVjdGlvbnMuR2VuZXJpYzsKdXNpbmcgU3lzdGVtLkNvbXBvbmVudE1vZGVsOwp1c2luZyBTeXN0ZW0uRGF0YTsKdXNpbmcgU3lzdGVtLkRyYXdpbmc7CnVzaW5nIFN5c3RlbS5MaW5xOwp1c2luZyBTeXN0ZW0uTmV0Owp1c2luZyBTeXN0ZW0uVGV4dDsKdXNpbmcgU3lzdGVtLlRleHQuUmVndWxhckV4cHJlc3Npb25zOwp1c2luZyBTeXN0ZW0uVGhyZWFkaW5nLlRhc2tzOwp1c2luZyBTeXN0ZW0uV2luZG93cy5Gb3JtczsKCm5hbWVzcGFjZSBUaHJlYWRNb3ZlbWVudAp7CiAgICBwdWJsaWMgcGFydGlhbCBjbGFzcyBGb3JtMSA6IEZvcm0KICAgIHsKICAgICAgICBMaXN0PExpc3Q8c3RyaW5nPj4gcXUgPSBuZXcgTGlzdDxMaXN0PHN0cmluZz4+KCk7CiAgICAgICAgYm9vbCB3b3JraW5nID0gZmFsc2U7CiAgICAgICAgUG9pbnQgbXAgPSBuZXcgUG9pbnQoLTEsIC0xKTsKCiAgICAgICAgcHVibGljIEZvcm0xKCkKICAgICAgICB7CiAgICAgICAgICAgIEluaXRpYWxpemVDb21wb25lbnQoKTsKICAgICAgICB9CgogICAgICAgIHByaXZhdGUgdm9pZCBGb3JtMV9Mb2FkKG9iamVjdCBzZW5kZXIsIEV2ZW50QXJncyBlKQogICAgICAgIHsKICAgICAgICB9CgogICAgICAgIHByaXZhdGUgYXN5bmMgdm9pZCB0aW1lcjFfVGljayhvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkKICAgICAgICB7CiAgICAgICAgICAgIGlmICh3b3JraW5nKSByZXR1cm47CiAgICAgICAgICAgIHdvcmtpbmcgPSB0cnVlOwogICAgICAgICAgICB2YXIgdXJsID0gImh0dHBzOi8vaC4uLmNvbnRlbnQtYXZhaWxhYmxlLXRvLWF1dGhvci1vbmx5Li4uaC5uZXQvbGl2ZWp1cGl0ZXIvc3ViamVjdC50eHQiOwogICAgICAgICAgICBieXRlW10gZGF0YTsKICAgICAgICAgICAgdXNpbmcgKHZhciB3YyA9IG5ldyBXZWJDbGllbnQoKSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZGF0YSA9IGF3YWl0IHdjLkRvd25sb2FkRGF0YVRhc2tBc3luYyhuZXcgVXJpKHVybCkpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIHZhciB0ZXh0ID0gRW5jb2RpbmcuR2V0RW5jb2RpbmcoIlNoaWZ0LUpJUyIpLkdldFN0cmluZyhkYXRhKTsKICAgICAgICAgICAgdmFyIHJhd0xpc3QgPSB0ZXh0LlRyaW0oKS5TcGxpdCgnXG4nKTsKICAgICAgICAgICAgdmFyIGxpc3QgPSByYXdMaXN0LlNlbGVjdChsaW5lID0+IFdlYlV0aWxpdHkuSHRtbERlY29kZShsaW5lLlNwbGl0KG5ld1tdIHsgIjw+IiB9LCBTdHJpbmdTcGxpdE9wdGlvbnMuTm9uZSlbMV0uU3BsaXQoJ1x0JylbMF0uVHJpbSgpKSkuVG9MaXN0KCk7CiAgICAgICAgICAgIGxpc3QuUmVtb3ZlUmFuZ2UobGlzdC5Db3VudCAtIDMsIDMpOwogICAgICAgICAgICBxdS5BZGQobGlzdCk7CiAgICAgICAgICAgIGlmIChxdS5Db3VudCA+IDIwMCkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcXUuUmVtb3ZlQXQoMCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgd29ya2luZyA9IGZhbHNlOwogICAgICAgICAgICBQaWN0dXJlQm94MS5JbnZhbGlkYXRlKCk7CiAgICAgICAgfQoKICAgICAgICBwcml2YXRlIHZvaWQgUGljdHVyZUJveDFfTW91c2VNb3ZlKG9iamVjdCBzZW5kZXIsIE1vdXNlRXZlbnRBcmdzIGUpCiAgICAgICAgewogICAgICAgICAgICB2YXIgcCA9IGUuTG9jYXRpb247CiAgICAgICAgICAgIHZhciB5aSA9IHAuWSAvIDU7CiAgICAgICAgICAgIHZhciB4aSA9IHAuWCAvIDU7CiAgICAgICAgICAgIGxhYmVsMS5UZXh0ID0geGkgKyAiLCIgKyB5aTsKICAgICAgICAgICAgaWYgKHhpIDwgcXUuQ291bnQpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGlmICh5aSA8IHF1W3hpXS5Db3VudCkKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICBsYWJlbDEuVGV4dCA9IHF1W3hpXVt5aV07CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgbGFiZWwxLlRleHQgPSAiIjsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGxhYmVsMS5UZXh0ID0gIiI7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgbXAgPSBwOwogICAgICAgICAgICBQaWN0dXJlQm94MS5JbnZhbGlkYXRlKCk7CiAgICAgICAgfQoKICAgICAgICBwcml2YXRlIHZvaWQgUGljdHVyZUJveDFfTW91c2VMZWF2ZShvYmplY3Qgc2VuZGVyLCBFdmVudEFyZ3MgZSkKICAgICAgICB7CiAgICAgICAgICAgIGxhYmVsMS5CYWNrQ29sb3IgPSBDb2xvci5UcmFuc3BhcmVudDsKICAgICAgICAgICAgbXAgPSBuZXcgUG9pbnQoLTEsIC0xKTsKICAgICAgICAgICAgUGljdHVyZUJveDEuSW52YWxpZGF0ZSgpOwogICAgICAgIH0KCiAgICAgICAgcHJpdmF0ZSB2b2lkIFBpY3R1cmVCb3gxX01vdXNlRG93bihvYmplY3Qgc2VuZGVyLCBNb3VzZUV2ZW50QXJncyBlKQogICAgICAgIHsKICAgICAgICAgICAgdmFyIHAgPSBlLkxvY2F0aW9uOwogICAgICAgICAgICB2YXIgeWkgPSBwLlkgLyA1OwogICAgICAgICAgICB2YXIgeGkgPSBwLlggLyA1OwogICAgICAgICAgICBsYWJlbDEuVGV4dCA9IHhpICsgIiwiICsgeWk7CiAgICAgICAgICAgIGlmICh4aSA8IHF1LkNvdW50KQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZiAoeWkgPCBxdVt4aV0uQ291bnQpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgdmFyIHRleHQgPSAiICIgKyBxdVt4aV1beWldLlNwbGl0KG5ld1tdIHsgJyAnLCAn44CAJyB9LCBTdHJpbmdTcGxpdE9wdGlvbnMuUmVtb3ZlRW1wdHlFbnRyaWVzKVswXTsKICAgICAgICAgICAgICAgICAgICBpZiAodGV4dEJveDEuVGV4dC5Db250YWlucyh0ZXh0KSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIHRleHRCb3gxLlRleHQgPSB0ZXh0Qm94MS5UZXh0LlJlcGxhY2UodGV4dCwgIiIpOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICB0ZXh0Qm94MS5UZXh0ICs9IHRleHQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgICAgICBwcml2YXRlIHZvaWQgUGljdHVyZUJveDFfUGFpbnQob2JqZWN0IHNlbmRlciwgUGFpbnRFdmVudEFyZ3MgZSkKICAgICAgICB7CiAgICAgICAgICAgIGUuR3JhcGhpY3MuQ2xlYXIoQ29sb3IuV2hpdGUpOwogICAgICAgICAgICBmb3IgKHZhciBoID0gMDsgaCA8IHF1LkNvdW50OyBoKyspCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGZvciAodmFyIGkgPSAwOyBpIDwgcXVbaF0uQ291bnQ7IGkrKykKICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICB2YXIgdGl0bGUgPSBxdVtoXVtpXTsKICAgICAgICAgICAgICAgICAgICB2YXIgc3VtID0gdGl0bGUuQWdncmVnYXRlKDAsIChfciwgYykgPT4gYyArIF9yKTsKICAgICAgICAgICAgICAgICAgICB2YXIgY29sID0gQ29sb3IuRnJvbUFyZ2IoKChieXRlKShzdW0gKiAxMjQyMTM1KSksICgoYnl0ZSkoc3VtICogMzIxNTEyNSkpLCAoKGJ5dGUpKHN1bSAqIDEyNTQyKSkpOwogICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0Qm94MS5UZXh0ICE9ICIiKQogICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgY29sID0gQ29sb3IuRnJvbUFyZ2IoY29sLlIgLyAyLCBjb2wuRyAvIDIsIGNvbC5CIC8gMik7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIGlmICh0ZXh0Qm94MS5UZXh0ICE9ICIiICYmIHRleHRCb3gxLlRleHQuU3BsaXQobmV3W10geyAnICcsICfjgIAnIH0sIFN0cmluZ1NwbGl0T3B0aW9ucy5SZW1vdmVFbXB0eUVudHJpZXMpLlRvTGlzdCgpLkFueSh3b3JkID0+IHRpdGxlLkNvbnRhaW5zKHdvcmQpKSkKICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgIGNvbCA9IENvbG9yLkdvbGQ7CiAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIHVzaW5nICh2YXIgYiA9IG5ldyBTb2xpZEJydXNoKGNvbCkpCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBlLkdyYXBoaWNzLkZpbGxSZWN0YW5nbGUoYiwgaCAqIDUsIGkgKiA1LCA1LCA1KTsKICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgIH0KICAgICAgICAgICAgZS5HcmFwaGljcy5EcmF3TGluZShQZW5zLkdyYXksIDAsIG1wLlksIFBpY3R1cmVCb3gxLldpZHRoLCBtcC5ZKTsKICAgICAgICAgICAgZS5HcmFwaGljcy5EcmF3TGluZShQZW5zLkdyYXksIG1wLlgsIDAsIG1wLlgsIFBpY3R1cmVCb3gxLkhlaWdodCk7CiAgICAgICAgfQogICAgfQp9Cg==
compilation info
prog.cs(4,14): error CS0234: The type or namespace name `Data' does not exist in the namespace `System'. Are you missing `System.Data' assembly reference?
prog.cs(11,22): error CS0234: The type or namespace name `Forms' does not exist in the namespace `System.Windows'. Are you missing `System.Windows.Forms' assembly reference?
prog.cs(15,34): error CS0246: The type or namespace name `Form' could not be found. Are you missing an assembly reference?
prog.cs(53,59): error CS0246: The type or namespace name `MouseEventArgs' could not be found. Are you missing an assembly reference?
prog.cs(85,59): error CS0246: The type or namespace name `MouseEventArgs' could not be found. Are you missing an assembly reference?
prog.cs(108,55): error CS0246: The type or namespace name `PaintEventArgs' could not be found. Are you missing an assembly reference?
Compilation failed: 6 error(s), 0 warnings
stdout