Ask Java Expert


Home >> Java

Chatbots

Create a small, networked chat application that is populated by bots.

Introduction

On an old server park, filled with applications from the early days of the internet, a few servers still run one of the earliest chat applications. The number of servers has dwindled, so everyone who uses it knows all the servers there are. Humans have long since left the place, but for some reason the bots never left.

While the servers run bots themselves, either for moderation or simply to keep the chat lively, there are also migratory bots that fly to the southern servers when the chats get cold, as well as free bots that participate in many chats at a time.

These bots, despite being old, manage interesting levels of interaction. They copy each others messages, and have a remarkable level of variety in the number of messages they produce.

Concrete Processes

Your application will consist of a number of chatrooms. These chatrooms have a feed. If a message is sent to the feed, that message is forwarded to every participant. Chatrooms are listed as a global resource, and are accessible by everyone. They are accessible via Port and IP-address.

A local bot can be in only one particular chatroom. Local bots have an AI that is limited to
- Changing its message
- Sending a message
- Crashing

They are added to a chatroom, and never leave again.

A migratory bot can also migrate to other chatrooms. When it does, it forgets the old chatroom, and upon arriving in the new chatroom, the chatroom informs it of its feed, so it can send messages to the feed and receive messages as well.

Independent bots are run of separate machines, and as such need to connect to each chatroom with a handler, that handles traffic between the remote bot and the server by forwarding posts from the bot to the feed, and sending updates from the feed to the bot. Independent bots expand upon migratory bots through:
- Not migrating, instead
- Joining a server
- Leaving a server
This provides a lively ecosystem of bots. Naturally all bots are independent, which means that you need a thread for every single one.

Changing Messages

Changing a message is one of the ways bots try to keep things fresh in their chatrooms. Of course a good bit of spamming is never off, so copying the message of another bot verbatim is always an option. In some cases however, a bot will try a more sophisticated algorithm.

At the start, the bot will select a number close to the average number of words in a sentence among the messages it receives (but at most the maximum). Then, it will create a new sentence by, for each physical position in the sentence, copying a word in that place. For example, if it chooses 3, and receives the sentences "I see green", "I am not" and "Do you understand?" It will generate: "I am understand?".

View

It will be interesting to see what kind of spam bots see and create. Because multiple threads printing to one console is difficult to track, make a simple UI: A frame displaying print statements, used for each bot or chatroom. Do not spend any more time than necessary on your UI. Do not make a fancy configurator. Only a simple view is sufficient.

Requirements

In summary, the concise functionality is:
- Chatrooms
- Three kinds of bots with random AIs
- A view for bots and chatrooms. Achieved by means of:
- A Client-Server pair
- Copious amounts of Threads
Some useful resources: Server-Client pair, Server Socket, Socket, ObjectOutputStream, ObjectInputStream, Thread, Synchronized Methods, Random .
As extras you could think of adding human interaction, more sophisticated message generation or chat modes such as r9k.
Assignments in 2017 LuL > LUL

Java, Programming

  • Category:- Java
  • Reference No.:- M93108043
  • Price:- $130

Guranteed 48 Hours Delivery, In Price:- $130

Have any Question?


Related Questions in Java

Chatbotscreate a small networked chat application that is

Chatbots Create a small, networked chat application that is populated by bots. Introduction On an old server park, filled with applications from the early days of the internet, a few servers still run one of the earliest ...

Assignment taskwrite a java console application that allows

Assignment task Write a java console application that allows the user to read, validate, store, display, sort and search data such as flight departure city (String), flight number (integer), flight distance (integer), fl ...

Assignment game prototypeoverviewfor this assessment task

Assignment: Game Prototype Overview For this assessment task you are expected to construct a prototype level/area as a "proof of concept" for the game that you have designed in Assignment 1. The prototype should function ...

Assignment taskwrite a java console application that allows

Assignment task Write a java console application that allows the user to read, validate, store, display, sort and search data such as flight departure city (String), flight number (integer), flight distance (integer), fl ...

In relation to javaa what is constructor the purpose of

(In relation to Java) A. What is constructor? the purpose of default constructor? B. How do you get a copy of the object but not the reference of the object? C. What are static variables and instance variables? D. Compar ...

Project descriptionwrite a java program to traverse a

Project Description: Write a java program to traverse a directory structure (DirWalker.java) of csv files that contain csv files with customer info. A simple sample in provided in with the sample code but you MUST will r ...

Fundamentals of operating systems and java

Fundamentals of Operating Systems and Java Programming Purpose of the assessment (with ULO Mapping) This assignment assesses the following Unit Learning Outcomes; students should be able to demonstrate their achievements ...

Assessment -java program using array of Assessment -JAVA Program using array of objects

Assessment -JAVA Program using array of objects Objectives This assessment item relates to the course learning outcomes as stated in the Unit Profile. Details For this assignment, you are required to develop a Windowed G ...

Applied software engineering assignment 1 -learning

Applied Software Engineering Assignment 1 - Learning outcomes - 1. Understand the notion of software engineering and why it is important. 2. Analyse the risk factors associated with phases of the software development lif ...

Retail price calculatorwrite a java program that asks the

Retail Price Calculator Write a JAVA program that asks the user to enter an item's wholesale cost and its markup percentage. It should then display the item's retail price. For example: (If an item's wholesale cost is 5. ...

  • 4,153,160 Questions Asked
  • 13,132 Experts
  • 2,558,936 Questions Answered

Ask Experts for help!!

Looking for Assignment Help?

Start excelling in your Courses, Get help with Assignment

Write us your full requirement for evaluation and you will receive response within 20 minutes turnaround time.

Ask Now Help with Problems, Get a Best Answer

Why might a bank avoid the use of interest rate swaps even

Why might a bank avoid the use of interest rate swaps, even when the institution is exposed to significant interest rate

Describe the difference between zero coupon bonds and

Describe the difference between zero coupon bonds and coupon bonds. Under what conditions will a coupon bond sell at a p

Compute the present value of an annuity of 880 per year

Compute the present value of an annuity of $ 880 per year for 16 years, given a discount rate of 6 percent per annum. As

Compute the present value of an 1150 payment made in ten

Compute the present value of an $1,150 payment made in ten years when the discount rate is 12 percent. (Do not round int

Compute the present value of an annuity of 699 per year

Compute the present value of an annuity of $ 699 per year for 19 years, given a discount rate of 6 percent per annum. As