Ask Question, Ask an Expert

+61-413 786 465

info@mywordsolution.com

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

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 ...

Assessment instructionsin this assessment you will complete

Assessment Instructions In this assessment, you will complete the programming of two Java class methods in a console application that registers students for courses in a term of study. The application is written using th ...

Solving 2nd degree equationsbull write the following java

Solving 2nd degree equations • Write the following Java methods • boolean real-sols(double a, double b, double c): it returns true if the 2nd degree equation ax2 + bx + c has real solutions • double solution1(double a, d ...

Assignment - java program using array of objectsobjectives

Assignment - 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 Menu ...

Can someone kindly help me to consider whether java

Can someone kindly help me to consider whether Java provides the facility of operator overloading? If it does, may you kindly describe how overloading operators can be accomplished? If not, may you kindly describe why yo ...

Overviewyou are required to use java se 80 and javafx to

Overview You are required to use Java SE 8.0 and JavaFX to develop a Graphical User Interface (GUI) for the FlexiRent rental property management program created in Assignment 1. This assignment is designed to help you: 1 ...

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. ...

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 ...

Answer the following question whats the difference public

Answer the following Question : What's the difference public inheritance and private inheritance? What can derived classes inherit from base classes? What cannot be inherited from base classes?

Assessment database and multithread programmingtasktask 1

Assessment: Database and Multithread Programming Task Task 1: Grade Processing University grading system maintains a database called "GradeProcessing" that contains number of tables to store, retrieve and manipulate stud ...

  • 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